summaryrefslogtreecommitdiff
path: root/setuptools/windows_support.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2014-11-16 09:40:21 -0500
committerJason R. Coombs <jaraco@jaraco.com>2014-11-16 09:40:21 -0500
commit4d4dbd3c5c69f63418ca2f22e9d6a3b8185b2e00 (patch)
tree01f6619f3630594bb677a10e4406fd822e9f6c26 /setuptools/windows_support.py
parentc5fa038292a9c7d6fe529c4d8001cec0d3bac9cf (diff)
parent2c33dad04fd11ebd7fc8e15d0017ff2dc617e6a3 (diff)
downloadpython-setuptools-git-4d4dbd3c5c69f63418ca2f22e9d6a3b8185b2e00.tar.gz
Merge with master
--HG-- branch : feature/issue-229
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()