Decorator which checks whether the function is called with the correct type of parameters
Project description
Strong Typing
Decorator which checks whether the function is called with the correct type of parameters.
And raises TypeMisMatch if the used parameters in a function call where invalid.
See _test_typing.py_ for more informations.
But why??
I really love python and his freedom but with the new option of adding type hints I wanted to get rid of writing
if isinstance(value, whatever)
in my programs.In a bigger project it happened that some developers used a really tiny IDE and others a more advanced one which highlighted typing issues. And there the trouble began, we had a bug and after a longer debugging session we found out that the issue was a wrong type of an argument, it doesn't crashed the program but the output was totally not what we expected.
And this is the reason why I created this package.
Getting Started
As normal decorator
@match_typing
def foo_bar(a: str, b: int, c: list):
...
as class method decorator
class Foo:
...
@match_typing
def foo_bar(self, a: int):
...
Tested for Versions
- 3.6, 3.7, 3.8
Prerequisites
- pytest
Installing
- python setup.py install
- pip install git+https://github.com/FelixTheC/strongtyping.git
Running the tests
- python test_typing.py
Versioning
- For the versions available, see the tags on this repository.
Authors
- Felix Eisenmenger - Initial work
License
- This project is licensed under the MIT License - see the LICENSE.md file for details
Special thanks
- Thanks to Ruud van der Ham for helping me improve my code
- And all how gave me Feedback in the Pythonista Cafe
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
Built Distribution
File details
Details for the file strongtyping-1.1.6.tar.gz
.
File metadata
- Download URL: strongtyping-1.1.6.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 463ef6c1c03480b880abf9d0d670dd1708450034e2445739f077c3c290b1675e |
|
MD5 | 0bfa1e10b08f7470c1b1359b1623d728 |
|
BLAKE2b-256 | afb9e4db15d23733fe85da22c2033abd2ed553ab41dab8ed618a01c40de5db52 |
File details
Details for the file strongtyping-1.1.6-py3-none-any.whl
.
File metadata
- Download URL: strongtyping-1.1.6-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90b81f694c487c1bd04e7ab9a90a36c2dbb61531dbe0d74ffa6b839f4def999e |
|
MD5 | b66eb60cd46ac22017d2467692ab3ecb |
|
BLAKE2b-256 | c3644f95052ee23ee0f22748bc4abf9f197f6a2dfd8f3ac8d3c138f594cb4b7b |