1. typepy¶
2. Summary¶
typepy is a Python library for variable type checker/validator/converter at a run time.
3. Features¶
checking a value type
validate a value for a type
convert a value from one type to the other type
The correspondence between Python types and typepy
classes are as follows:
Python Type |
typepy: Type Class |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4. Installation¶
4.1. Installation: pip¶
pip install typepy
Install additional dependency packages with the following command if using typepy.DateTime
class
pip install typepy[datetime]
4.2. Installation: conda¶
conda install -c conda-forge typepy
4.3. Installation: apt¶
sudo add-apt-repository ppa:thombashi/ppa
sudo apt update
sudo apt install python3-typepy
5. Dependencies¶
5.1. Optional dependencies¶
These packages can be installed via pip install typepy[datetime]
:
6. Usage¶
6.1. Type Check Method¶
- Examples
>>> from typepy import Integer >>> Integer(1).is_type() True >>> Integer(1.1).is_type() False
6.2. 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'>
6.3. Type Conversion Methods¶
6.3.1. 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
6.3.2. 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
6.3.3. 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 was not convertible ... print(e) ... failed to force_convert to int: type=<class 'str'>
6.4. For more information¶
Type check/validate/convert results differed according to
strict_level
value which can pass to typepy class constructors as an argument.
More information can be found in the
API reference.