Skip to content

emludei/checktype

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

checktype

Decorator for validating type of function arguments and return value.

Usage:

>>> from checktypes import checktype
>>> @checktype
... def test_func(string: str) -> int:
...     return len(string)
...
>>> test_func(string=2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/marsohod/projects/python/checktypes/src/checktypes/core.py", line 38, in wrapper
    function.__annotations__[arg_key].__name__
checktypes.core.AnnotationsException: Attribute string must be (str)
>>> test_func(string='asd')
3
>>> @checktype
... def test_func(string):
...     return len(string)
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/marsohod/projects/python/checktypes/src/checktypes/core.py", line 19, in checktype
    'for arguments and return value'.format(function.__name__)
checktypes.core.AnnotationsNotExist: Function test_func must provide annotations for arguments and return value
>>> @checktype
... def test_func(string: str) -> int:
...     return string
...
>>> test_func(string='asd')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/marsohod/projects/python/checktypes/src/checktypes/core.py", line 48, in wrapper
    function.__annotations__['return'].__name__
checktypes.core.AnnotationsException: Function test_func must returns value type (int)
>>> test_func('asd')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/marsohod/projects/python/checktypes/src/checktypes/core.py", line 25, in wrapper
    'Function {0} don`t takes positional arguments'.format(function.__name__)
checktypes.core.AnnotationsException: Function test_func does not take positional arguments

About

Decorator for validating type of function arguments and return value

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages