A Python library for variable type checker/validator/converter at a run time.
Project description
typepy
Summary
A Python library for variable type checker/validator/converter at a run time.
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 |
|
datetime |
|
dict |
|
float/decimal.Decimal (not infinity/NaN) |
|
float/decimal.Decimal (infinity) |
|
float/decimal.Decimal (NaN) |
|
int |
|
list |
|
None |
|
str (not null) |
|
str (null) |
|
str (IP address) |
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.
Installation
pip install typepy
Dependencies
Python 2.7+ or 3.4+
Test dependencies
Documentation
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
Hashes for typepy-0.2.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f767235b3d21a2bd7c13f7c875c47179885c3e90d08b0096a889a3c00b1b8ab |
|
MD5 | d0231fd7af1f676690b65bd493d0c3cd |
|
BLAKE2b-256 | ba5d6ae5f4d96aa58431779c60ca6527a68551d6715b52d688c66c30e13b01f2 |