Backports python3.10 typing features into python 3.7 and newer.
Project description
sigparse
Backports python3.10 typing features into python 3.7, 3.8, and 3.9.
Example
import sigparse
def func(param_a: list[str], param_b: str | int, param_c: tuple[int | None]):
...
# This returns the same result in python 3.7, 3.8, 3.9, and 3.10!
sigparse.sigparse(func)
Sigparse also supports classes.
import sigparse
class MyClass:
a: list[str]
b: str | int
c: tuple[int | None]
sigparse.classparse(MyClass)
PEP604
By default PEP 604 (| for unions) is only enabled for sigparse.sigparse
.
To enable globally:
import sigparse
sigparse.global_PEP604()
Notes
Inspect
This module uses inspect behind the scenes. For that reason:
sigparse.Parameter.default
isinspect._empty
when there is no default value.sigparse.Parameter.kind
isinspect._ParameterKind
.sigparse.ClassVar.default
isinspect._empty
when there is no default value to maintain consistency.
Annotated
typing.Annotated
will always be evaluated with include_extras=True
in python3.9.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sigparse-2.0.0.tar.gz
(4.9 kB
view hashes)