Remove Annotations
This transform removes function annotations and variable annotations.
This transform is generally safe to use. Although the annotations have no meaning to the python language, they are made available at runtime. Some python library features require annotations to be kept.
If these are detected, annotations are kept for that class:
dataclasses.dataclass
typing.NamedTuple
typing.NamedDict
If you know the module requires the annotations to be kept, disable this transform.
If a variable annotation without assignment is used the annotation is changed to a literal zero instead of being removed.
The transform is enabled by default.
Disable this source transformation by passing the remove_annotations=False
argument to the python_minifier.minify()
function,
or passing --no-remove-annotations
to the pyminify command.
Example
Input
def compile(source: "something compilable",
filename: "where the compilable thing comes from",
mode: "A string annotation"):
a: int = 1
b: str
def inner():
nonlocal b
b = 'hello'
inner()
print(b)
compile(None, None, None)
Output
def compile(source,filename,mode):
a=1;b:0
def inner():nonlocal b;b='hello'
inner();print(b)
compile(None,None,None)