typepy is a Python library for variable type checker/validator/converter at a run time.
Project description
typepy
Features
- checking a value type
- validate a value for a type
- convert a value from a type to the other type
The correspondence between Python types and typepy classes are as follows:
Python Type | typepy: Type Class |
---|---|
bool | Bool |
datetime | DateTime |
dict | Dictionary |
float/decimal.Decimal (not infinity/NaN) | RealNumber |
float/decimal.Decimal (infinity) | Infinity |
float/decimal.Decimal (NaN) | Nan |
int | Integer |
list | List |
None | None |
str (not null) | String |
str (null) | NullString |
str (IP address) | IpAddress |
Installation
Installation: pip
pip install typepy
Install additional dependency packages with the following command if using typepy.DateTime class
pip install typepy[datetime]
Installation: conda
conda install -c conda-forge typepy
Installation: apt
sudo add-apt-repository ppa:thombashi/ppa sudo apt update sudo apt install python3-typepy
Dependencies
Optioal dependencies
These packages can be installed via pip install typepy[datetime]:
Usage
Type Check Method
Examples: | >>> from typepy import Integer >>> Integer(1).is_type() True >>> Integer(1.1).is_type() False |
---|
Type Validation Method
Examples: | >>> from typepy import Integer >>> Integer(1).validate() >>> try: ... Integer(1.1).validate() ... except TypeError as e: ... # validate() raised TypeError when the value unmatched the type class ... print(e) ... invalid value type: expected=INTEGER, actual=<type 'float'> |
---|
Type Conversion Methods
convert method
Examples: | >>> from typepy import Integer, TypeConversionError >>> Integer("1").convert() 1 >>> try: ... Integer(1.1).convert() ... except TypeConversionError as e: ... # convert() raised TypeConversionError when conversion failed ... print(e) ... failed to convert from float to INTEGER |
---|
try_convert method
Examples: | >>> from typepy import Integer >>> Integer("1").try_convert() 1 >>> print(Integer(1.1).try_convert()) # try_convert() returned None when conversion failed None |
---|
force_convert
Examples: | >>> from typepy import Integer, TypeConversionError >>> Integer("1").force_convert() # force_convert() forcibly convert the value 1 >>> Integer(1.1).force_convert() 1 >>> try: ... Integer("abc").force_convert() ... except TypeConversionError as e: ... # force_convert() raised TypeConversionError when the value not convertible ... print(e) ... failed to force_convert to int: type=<class 'str'> |
---|
For more information
Type check/validate/convert results differed according to strict_level value which can pass to typepy classes constructors as an argument. More information can be found in the API reference.
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
typepy-1.3.0.tar.gz
(23.4 kB
view hashes)
Built Distribution
typepy-1.3.0-py3-none-any.whl
(31.1 kB
view hashes)