Skip to main content

A python library for variable type checker/validator/converter at run time.

Project description

Home-page: https://github.com/thombashi/typepy
Author: Tsuyoshi Hombashi
Author-email: tsuyoshi.hombashi@gmail.com
License: MIT License
Description: typepy
======

.. image:: https://badge.fury.io/py/typepy.svg
:target: https://badge.fury.io/py/typepy

.. image:: https://img.shields.io/pypi/pyversions/typepy.svg
:target: https://pypi.python.org/pypi/typepy

.. image:: https://img.shields.io/travis/thombashi/typepy/master.svg?label=Linux
:target: https://travis-ci.org/thombashi/typepy

.. image:: https://img.shields.io/appveyor/ci/thombashi/typepy/master.svg?label=Windows
:target: https://ci.appveyor.com/project/thombashi/typepy

.. image:: https://coveralls.io/repos/github/thombashi/typepy/badge.svg?branch=master
:target: https://coveralls.io/github/thombashi/typepy?branch=master

.. image:: https://img.shields.io/github/stars/thombashi/typepy.svg?style=social&label=Star
:target: https://github.com/thombashi/typepy

Summary
-------

A python library for variable type checker/validator/converter at run time.

Usage
=====

Type Check Method
----------------------

.. code:: pycon

>>> from typepy.type import Integer
>>> Integer(1).is_type()
True
>>> Integer(1.1).is_type()
False


Type Validation Method
--------------------------------------------

.. code:: pycon

>>> from typepy.type import Integer
>>> Integer(1).validate()
>>> try:
... Integer(1.1).validate()
... except TypeError as e:
... print(e)
...
invalid value type: expected=INTEGER, actual=<type 'float'>


Type Conversion Methods
--------------------------------------------

convert
~~~~~~~~~~~~~~
.. code:: pycon

>>> from typepy.type import Integer
>>> from typepy import TypeConversionError
>>> Integer("1").convert()
1
>>> try:
... Integer(1.1).convert()
... except TypeConversionError as e:
... print(e) # convert method will raise TypeConversionError when conversion failed
...
failed to convert from float to INTEGER

try_convert
~~~~~~~~~~~~~~
.. code:: pycon

>>> from typepy.type import Integer
>>> Integer("1").try_convert()
1
>>> print(Integer(1.1).try_convert()) # try_convert method will return None when conversion failed
None

force_convert
~~~~~~~~~~~~~~
.. code:: pycon

>>> from typepy.type import Integer
>>> Integer("1").force_convert() # force_convert will forcibly convert the value
1
>>> Integer(1.1).force_convert()
1

For more information
====================

Type check/validate/convert results will be changed according to
``strict_level`` value which can be passed to constructors as an argument.
More information can be found in the
`API reference <http://typepy.rtfd.io/en/latest/pages/reference/index.html>`__.

Features
========

The association between Python types and typepy classes is as follows:

==================== =======================================================================================================
Python Type typepy Class
==================== =======================================================================================================
``bool`` `Bool <http://typepy.rtfd.io/en/latest/pages/reference/type.html#bool-type>`__
``datetime`` `DateTime <http://typepy.rtfd.io/en/latest/pages/reference/type.html#datetime-type>`__
``dict`` `Dictionary <http://typepy.rtfd.io/en/latest/pages/reference/type.html#dictionary-type>`__
``inf`` `Infinity <http://typepy.rtfd.io/en/latest/pages/reference/type.html#infinity-type>`__
``int`` `Integer <http://typepy.rtfd.io/en/latest/pages/reference/type.html#integer-type>`__
``list`` `List <http://typepy.rtfd.io/en/latest/pages/reference/type.html#list-type>`__
``float`` `RealNumber <http://typepy.rtfd.io/en/latest/pages/reference/type.html#real-number-type>`__
``NaN`` `Nan <http://typepy.rtfd.io/en/latest/pages/reference/type.html#nan-type>`__
``None`` `None <http://typepy.rtfd.io/en/latest/pages/reference/type.html#none-type>`__
``str`` (not null) `String <http://typepy.rtfd.io/en/latest/pages/reference/type.html#string-type>`__
``str`` (null) `NullString <http://typepy.rtfd.io/en/latest/pages/reference/type.html#null-string-type>`__
``str`` (IP address) `IpAddress <http://typepy.rtfd.io/en/latest/pages/reference/type.html#ip-address-type>`__
==================== =======================================================================================================

Installation
============

::

pip install typepy


Dependencies
============
Python 2.7+ or 3.3+

- `mbstrdecoder <https://github.com/thombashi/mbstrdecoder>`__
- `python-dateutil <https://dateutil.readthedocs.io/en/stable/>`__
- `pytz <https://pypi.python.org/pypi/pytz/>`__
- `six <https://pypi.python.org/pypi/six/>`__


Test dependencies
-----------------
- `pytest <http://pytest.org/latest/>`__
- `pytest-runner <https://pypi.python.org/pypi/pytest-runner>`__
- `tox <https://testrun.org/tox/latest/>`__

Documentation
=============

http://typepy.rtfd.io/


Keywords: type,validator,converter
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

typepy-0.0.12.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

typepy-0.0.12-py2.py3-none-any.whl (29.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file typepy-0.0.12.tar.gz.

File metadata

  • Download URL: typepy-0.0.12.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for typepy-0.0.12.tar.gz
Algorithm Hash digest
SHA256 39922dfd7cadec16517f7b857bf7c8e69fb5311519ee698fb19880e4d5554671
MD5 dc73352bc1ea3804408fa1b6184687f7
BLAKE2b-256 6783fd5e2311deb17edfb149cc28fbb7240e27826e1b45fe5de476b26a9eb943

See more details on using hashes here.

File details

Details for the file typepy-0.0.12-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for typepy-0.0.12-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 97e0c16e106a54beaa52db47ff45fe3cde087f01c0dddbd5527e30a21a09cffb
MD5 506aa8a09dd05e18d40b2e05482b9510
BLAKE2b-256 a58ea626fba953833ad100e66db93fd7b5fada60d794145abfa750032d0880ef

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page