D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
python35
/
lib
/
python3.5
/
site-packages
/
pip
/
_vendor
/
packaging
/
Filename :
_typing.py
back
Copy
"""For neatly implementing static typing in packaging. `mypy` - the static type analysis tool we use - uses the `typing` module, which provides core functionality fundamental to mypy's functioning. Generally, `typing` would be imported at runtime and used in that fashion - it acts as a no-op at runtime and does not have any run-time overhead by design. As it turns out, `typing` is not vendorable - it uses separate sources for Python 2/Python 3. Thus, this codebase can not expect it to be present. To work around this, mypy allows the typing import to be behind a False-y optional to prevent it from running at runtime and type-comments can be used to remove the need for the types to be accessible directly during runtime. This module provides the False-y guard in a nicely named fashion so that a curious maintainer can reach here to read this. In packaging, all static-typing related imports should be guarded as follows: from pip._vendor.packaging._typing import MYPY_CHECK_RUNNING if MYPY_CHECK_RUNNING: from typing import ... Ref: https://github.com/python/mypy/issues/3216 """ MYPY_CHECK_RUNNING = False if MYPY_CHECK_RUNNING: # pragma: no cover import typing cast = typing.cast else: # typing's cast() is needed at runtime, but we don't want to import typing. # Thus, we use a dummy no-op version, which we tell mypy to ignore. def cast(type_, value): # type: ignore return value
Name
Size
Last Modified
Owner
Permissions
Actions
__pycache__
Dir
December 28 2023 9:21:46
root
0755
__about__.py
0.727
KB
December 28 2023 9:20:56
root
0755
__init__.py
0.549
KB
December 28 2023 9:20:56
root
0755
_compat.py
1.111
KB
December 28 2023 9:20:57
root
0755
_structures.py
1.975
KB
December 28 2023 9:20:57
root
0755
_typing.py
1.415
KB
April 29 2020 6:57:10
root
0755
markers.py
9.278
KB
December 28 2023 9:20:56
root
0755
requirements.py
4.798
KB
December 28 2023 9:20:56
root
0755
specifiers.py
30.58
KB
December 28 2023 9:20:56
root
0755
tags.py
23.148
KB
April 29 2020 6:57:10
root
0755
utils.py
1.66
KB
December 28 2023 9:20:57
root
0755
version.py
15.117
KB
December 28 2023 9:20:57
root
0755
2017 © D7net | D704T team