Metadata-Version: 2.1 Name: ValidX Version: 0.8.1 Summary: fast, powerful, and flexible validator with sane syntax Home-page: https://github.com/Cottonwood-Technology/ValidX Author: Cottonwood Technology Author-email: info@cottonwood.tech License: BSD Keywords: validator validation validate schema Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: BSD License Classifier: Programming Language :: Cython Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Development Status :: 5 - Production/Stable Requires-Python: >=3.6 License-File: LICENCE.txt ValidX ====== .. image:: https://github.com/Cottonwood-Technology/ValidX/actions/workflows/main.yaml/badge.svg :target: https://github.com/Cottonwood-Technology/ValidX/actions/workflows/main.yaml .. image:: https://badge.fury.io/py/ValidX.svg :target: https://badge.fury.io/py/ValidX .. image:: https://readthedocs.org/projects/validx/badge/?version=latest :target: https://validx.readthedocs.io/en/latest/?badge=latest ValidX is fast_, powerful, and flexible validator with sane syntax. .. code-block:: python from validx import Dict, Str schema = Dict({"message": Str()}) data = {"message": "ValidX is cool!"} print(schema(data)) :: {'message': 'ValidX is cool!'} The full documentation is available at `Read the Docs`_. .. _fast: https://validx.readthedocs.io/en/latest/benchmarks.html .. _Read the Docs: https://validx.readthedocs.io/en/latest/ Changes ======= 0.8.1 ----- * Fixed ``List`` and ``Set`` restricting mappings from their valid input. * Fixed cloning and representing of ``Const`` validator constructed with ``False`` or ``None`` a value. * Fixed nullable check of ``Type`` validator constructed with ``object`` as a type. 0.8 --- * Dropped Python 3.5 support. * Added Python 3.10, 3.11 support. * Fixed handling UNIX-timestamps by ``Date`` and ``Datetime`` validators. * Added ability to specify default time which is used to implicitly convert ``date`` to ``datetime`` within ``Datetime`` validator. * Fixed handling ``bool`` values by ``Int`` and ``Float`` validators. * Changed behavior of ``Str`` validator, it now strips leading & trailing whitespace by default. Use ``dontstrip=True`` parameter to disable the stripping. * Added ability to normalize spaces by ``Str`` validator, i.e. replace space sequences by single space character. Use ``normspace=True`` parameter to enable the normalization. * Added ``coerce`` parameter to ``Str`` validator, which can be useful to sanitize data from sources with automatic type inferring, where string data might be incorrectly interpreted as another type. * Unified behavior of Python and Cython versions of ``Int`` validator. Both versions support unlimited integer numbers now. * Added new ``Set`` validator. * Added new ``Decimal`` validator. * Renamed ``FloatValueError`` to ``NumberError``, so it is now used for both ``Float`` and ``Decimal`` validators. * Added new ``CoerceError`` which is raised instead of ``InvalidTypeError`` when type coercion fails. 0.7 --- * Dropped Python 2.7 support. * Fixed ``relmin/relmax`` checks for ``Date`` validator with timezone. * Fixed constructing Cython version of ``Type`` validator with type created from metaclass. 0.6.1 ----- * Fixed type declarations for ``Validator.clone()`` method. 0.6 --- * Added Python 3.8 into test matrix. * Made validators immutable. * Added contracts checks on validator initialization. * Added new simplified syntax for cloning validators. * Got rid of global state within ``LazyRef`` validator. It now acts like a pure function. * Fixed raising of ambiguous ``MinLengthError`` on ``List`` and ``Dict`` validation. 0.5.1 ----- * Fixed type declarations. Again. One does not simply make mypy happy. 0.5 --- * Removed confusing nullable check from ``Any`` validator. * Fixed type declarations. 0.4 --- * Fixed library objects pickling. * Fixed checking of length within ``List`` validator. 0.3 --- * Fixed handling of default values and length validation within ``Dict`` validator. 0.2 --- * Added support of timezones into ``Date`` and ``Datetime`` validators. * Added support of custom parsers into ``Date``, ``Time``, and ``Datetime`` validators. * Added ``Type`` validator for custom types. 0.1 --- * Initial release.