AnnoTypes
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)
Metadata
Release files for annotypes 0.21
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| annotypes-0.21.tar.gz | 19.4 kB | Details |
Release files / annotypes-0.21.tar.gz
| Download URL | annotypes-0.21.tar.gz |
|---|---|
| Size | 19.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b330a35b7ae25ab97741dc40c0fb9c6ce64204a7f100e83d70655e5815dda650
|
|
BLAKE2b-256 checksum How to use checksums |
16c51113740fa4c1279d34b756002ca0ec8e138f4a360a8fcf78abff88cc19e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|