summaryrefslogtreecommitdiff
path: root/setuptools/windows_support.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2021-11-10 12:12:49 -0500
committerJason R. Coombs <jaraco@jaraco.com>2021-11-10 12:13:40 -0500
commit958ce2304e153b274e2ff7b40b1e7d5ddd214904 (patch)
treebb1b77cfc08c31fb69eebdb0c66f5c0dde3f5223 /setuptools/windows_support.py
parent23f63dd44c5d9f75de195833d25a5f2872220c2b (diff)
parent8af23a41194ae747faf3e60f9cc19141b5e7ad24 (diff)
downloadpython-setuptools-git-958ce2304e153b274e2ff7b40b1e7d5ddd214904.tar.gz
Merge pull request #2866 into main.
Diffstat (limited to 'setuptools/windows_support.py')
-rw-r--r--setuptools/windows_support.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/setuptools/windows_support.py b/setuptools/windows_support.py
new file mode 100644
index 00000000..cb977cff
--- /dev/null
+++ b/setuptools/windows_support.py
@@ -0,0 +1,29 @@
+import platform
+import ctypes
+
+
+def windows_only(func):
+ if platform.system() != 'Windows':
+ return lambda *args, **kwargs: None
+ return func
+
+
+@windows_only
+def hide_file(path):
+ """
+ Set the hidden attribute on a file or directory.
+
+ From http://stackoverflow.com/questions/19622133/
+
+ `path` must be text.
+ """
+ __import__('ctypes.wintypes')
+ SetFileAttributes = ctypes.windll.kernel32.SetFileAttributesW
+ SetFileAttributes.argtypes = ctypes.wintypes.LPWSTR, ctypes.wintypes.DWORD
+ SetFileAttributes.restype = ctypes.wintypes.BOOL
+
+ FILE_ATTRIBUTE_HIDDEN = 0x02
+
+ ret = SetFileAttributes(path, FILE_ATTRIBUTE_HIDDEN)
+ if not ret:
+ raise ctypes.WinError()