aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobot-piglet <robot-piglet@yandex-team.com>2024-03-14 11:45:40 +0300
committerrobot-piglet <robot-piglet@yandex-team.com>2024-03-14 11:58:54 +0300
commit1dfe5a928b38993a8594691da87b7d9d79fff6cb (patch)
tree7d96d66a6865ba70e00031066762ffb338a2653d
parent43f3e79465b37117220ad19202e4de5971d21cdb (diff)
downloadydb-1dfe5a928b38993a8594691da87b7d9d79fff6cb.tar.gz
Intermediate changes
-rw-r--r--library/python/windows/__init__.py24
1 files changed, 17 insertions, 7 deletions
diff --git a/library/python/windows/__init__.py b/library/python/windows/__init__.py
index fe7a2c0140..45f061878b 100644
--- a/library/python/windows/__init__.py
+++ b/library/python/windows/__init__.py
@@ -27,9 +27,9 @@ RETRIABLE_FILE_ERRORS = (ERRORS['ACCESS_DENIED'], ERRORS['SHARING_VIOLATION'])
RETRIABLE_DIR_ERRORS = (ERRORS['ACCESS_DENIED'], ERRORS['DIR_NOT_EMPTY'], ERRORS['SHARING_VIOLATION'])
-# Check if on Windows
@library.python.func.lazy
def on_win():
+ """Check if code run on Windows"""
return os.name == 'nt'
@@ -48,8 +48,9 @@ class NoCTypesError(RuntimeError):
super(NoCTypesError, self).__init__(message)
-# Decorator for Windows-only functions
def win_only(f):
+ """Decorator for Windows-only functions"""
+
def f_wrapped(*args, **kwargs):
if not on_win():
raise NotOnWindowsError('Windows-only function is called, but platform is not Windows')
@@ -58,8 +59,8 @@ def win_only(f):
return f_wrapped
-# Decorator for functions disabled on Windows
def win_disabled(f):
+ """Decorator for functions disabled on Windows"""
def f_wrapped(*args, **kwargs):
if on_win():
run_disabled()
@@ -83,10 +84,14 @@ def errorfix(f):
return f_wrapped
-# Decorator for diehard wrapper
-# On Windows platform retries to run function while specific WindowsError is thrown
-# On non-Windows platforms fallbacks to function itself
def diehard(winerrors, tries=100, delay=1):
+ """
+ Decorator for diehard wrapper
+
+ On Windows platform retries to run function while specific WindowsError is thrown
+
+ On non-Windows platforms fallbacks to function itself
+ """
def wrap(f):
if not on_win():
return f
@@ -96,6 +101,11 @@ def diehard(winerrors, tries=100, delay=1):
return wrap
+def win_path_fix(path):
+ """Fix slashes in paths on windows"""
+ return path if sys.platform != 'win32' else path.replace('\\', '/')
+
+
if on_win():
import msvcrt
import time
@@ -155,9 +165,9 @@ if on_win():
time.sleep(delay)
reraise(ei[0], ei[1], ei[2])
- # Placeholder for disabled functions
@win_only
def run_disabled(*args, **kwargs):
+ """Placeholder for disabled functions"""
raise DisabledOnWindowsError('Function called is disabled on Windows')
class CustomWinError(WindowsError):