Adding annotations to Python types while still being compatible with mypy and PyCharm
You can write things like:
from annotypes import Anno, WithCallTypes
with Anno("The exposure time for the camera"):
AExposure = float
with Anno("The full path to the text file to write"):
APath = str
class Simple(WithCallTypes):
def __init__(self, exposure, path="/tmp/file.txt"):
# type: (AExposure, APath) -> None
self.exposure = exposure
self.path = path
or the Python3 alternative:
from annotypes import Anno, WithCallTypes
with Anno("The exposure time for the camera"):
AExposure = float
with Anno("The full path to the text file to write"):
APath = str
class Simple(WithCallTypes):
def __init__(self, exposure: AExposure, path: APath = "/tmp/file.txt"):
self.exposure = exposure
self.path = path
And at runtime see what you should pass to call it and what it will return:
>>> from annotypes.py2_examples.simple import Simple
>>> list(Simple.call_types)
['exposure', 'path']
>>> Simple.call_types['exposure']
Anno(name='AExposure', typ=<type 'float'>, description='The exposure time for the camera')
>>> Simple.return_type
Anno(name='Instance', typ=<class 'annotypes.py2_examples.simple.Simple'>, description='Class instance')
For more examples see the Python 2 examples or Python 3 examples.
Installation
To install the latest release, type:
pip install annotypes
To install the latest code directly from source, type:
pip install git+git://github.com/dls-controls/annotypes.git
Changelog
See CHANGELOG
Contributing
See CONTRIBUTING
License
APACHE License. (see LICENSE)
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
annotypes-0.21.tar.gz
(19.4 kB
view details)
File details
Details for the file annotypes-0.21.tar.gz.
File metadata
- Download URL: annotypes-0.21.tar.gz
- Upload date:
- Size: 19.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.6.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b330a35b7ae25ab97741dc40c0fb9c6ce64204a7f100e83d70655e5815dda650
|
|
| MD5 |
497b6853fcc2e218f719dcc824c6e351
|
|
| BLAKE2b-256 |
16c51113740fa4c1279d34b756002ca0ec8e138f4a360a8fcf78abff88cc19e5
|