python-enforce-typing icon indicating copy to clipboard operation
python-enforce-typing copied to clipboard

AttributeError: module 'typing' has no attribute '_SpecialForm'

Open DSLituiev opened this issue 3 years ago • 0 comments

running a simple example out of the box fails:

from typing import List
from enforce_typing import enforce_types


@enforce_types
def test(abc: List = []):
    return abc

test([])

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-3-0ef988ae29d7> in <module>
----> 1 test([])

/Applications/anaconda3/envs/slsl/lib/python3.6/site-packages/enforce_typing/decorator.py in wrapper(*args, **kwargs)
     26         @wraps(func)
     27         def wrapper(*args, **kwargs):
---> 28             check_types(*args, **kwargs)
     29             return func(*args, **kwargs)
     30 

/Applications/anaconda3/envs/slsl/lib/python3.6/site-packages/enforce_typing/decorator.py in check_types(*args, **kwargs)
     14             with suppress(KeyError):
     15                 type_hint = spec.annotations[name]
---> 16                 if isinstance(type_hint, typing._SpecialForm):
     17                     continue
     18                 actual_type = getattr(type_hint, "__origin__", type_hint)

AttributeError: module 'typing' has no attribute '_SpecialForm'

system

Python 3.6.7 | packaged by conda-forge | (default, Feb 28 2019, 02:16:08)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin

DSLituiev avatar Jul 08 '21 23:07 DSLituiev