Mercurial > repos > shellac > guppy_basecaller
comparison env/lib/python3.7/site-packages/virtualenv/info.py @ 0:26e78fe6e8c4 draft
"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
| author | shellac |
|---|---|
| date | Sat, 02 May 2020 07:14:21 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:26e78fe6e8c4 |
|---|---|
| 1 from __future__ import absolute_import, unicode_literals | |
| 2 | |
| 3 import logging | |
| 4 import os | |
| 5 import platform | |
| 6 import sys | |
| 7 import tempfile | |
| 8 | |
| 9 IMPLEMENTATION = platform.python_implementation() | |
| 10 IS_PYPY = IMPLEMENTATION == "PyPy" | |
| 11 IS_CPYTHON = IMPLEMENTATION == "CPython" | |
| 12 PY3 = sys.version_info[0] == 3 | |
| 13 PY2 = sys.version_info[0] == 2 | |
| 14 IS_WIN = sys.platform == "win32" | |
| 15 ROOT = os.path.realpath(os.path.join(os.path.abspath(__file__), os.path.pardir, os.path.pardir)) | |
| 16 IS_ZIPAPP = os.path.isfile(ROOT) | |
| 17 WIN_CPYTHON_2 = IS_CPYTHON and IS_WIN and PY2 | |
| 18 | |
| 19 _CAN_SYMLINK = _FS_CASE_SENSITIVE = _CFG_DIR = _DATA_DIR = None | |
| 20 | |
| 21 | |
| 22 def fs_is_case_sensitive(): | |
| 23 global _FS_CASE_SENSITIVE | |
| 24 | |
| 25 if _FS_CASE_SENSITIVE is None: | |
| 26 with tempfile.NamedTemporaryFile(prefix="TmP") as tmp_file: | |
| 27 _FS_CASE_SENSITIVE = not os.path.exists(tmp_file.name.lower()) | |
| 28 logging.debug("filesystem is %scase-sensitive", "" if _FS_CASE_SENSITIVE else "not ") | |
| 29 return _FS_CASE_SENSITIVE | |
| 30 | |
| 31 | |
| 32 def fs_supports_symlink(): | |
| 33 global _CAN_SYMLINK | |
| 34 | |
| 35 if _CAN_SYMLINK is None: | |
| 36 can = False | |
| 37 if hasattr(os, "symlink"): | |
| 38 if IS_WIN: | |
| 39 with tempfile.NamedTemporaryFile(prefix="TmP") as tmp_file: | |
| 40 temp_dir = os.path.dirname(tmp_file.name) | |
| 41 dest = os.path.join(temp_dir, "{}-{}".format(tmp_file.name, "b")) | |
| 42 try: | |
| 43 os.symlink(tmp_file.name, dest) | |
| 44 can = True | |
| 45 except (OSError, NotImplementedError): | |
| 46 pass | |
| 47 logging.debug("symlink on filesystem does%s work", "" if can else " not") | |
| 48 else: | |
| 49 can = True | |
| 50 _CAN_SYMLINK = can | |
| 51 return _CAN_SYMLINK | |
| 52 | |
| 53 | |
| 54 __all__ = ( | |
| 55 "IS_PYPY", | |
| 56 "IS_CPYTHON", | |
| 57 "PY3", | |
| 58 "PY2", | |
| 59 "IS_WIN", | |
| 60 "fs_is_case_sensitive", | |
| 61 "fs_supports_symlink", | |
| 62 "ROOT", | |
| 63 "IS_ZIPAPP", | |
| 64 "WIN_CPYTHON_2", | |
| 65 ) |
