zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
U
H=®d ã@s.dZddgZdZer"ddlmZndd„ZdS)aGFor 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 TYPE_CHECKING
 
    if TYPE_CHECKING:
        from typing import ...
 
Ref: https://github.com/python/mypy/issues/3216
Ú TYPE_CHECKINGÚcastFé)rcCs|S)N©)Útype_ÚvaluerrúTD:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\pip/_vendor/packaging/_typing.pyr/sN)Ú__doc__Ú__all__rÚtypingrrrrrÚ<module>s