Metadata-Version: 2.1
Name: ngoschema
Version: 0.2.1
Summary: definition of classes with json-schema, object management and code-generation
Home-page: https://github.com/numengo/python-ngoschema
Author: ('C\xc3\xa9dric ROMAN',)
Author-email: roman@numengo.com
License: GNU General Public License v3
Keywords: json-schema, schema, class_builder, data_validation, type_checking, mixins, object_serialization, code_generation
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
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: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Utilities
Requires: pathlib
Requires: future
Requires: click
Requires: ngofile
Requires: attrs
Requires: dpath
Requires: pyrsistent
Requires: configparser2
Requires: appdirs
Requires: wrapt
Requires: jinja2
Requires: arrow
Requires: inflection
Requires: six
Requires-Dist: pathlib
Requires-Dist: future
Requires-Dist: click
Requires-Dist: ngofile
Requires-Dist: attrs
Requires-Dist: dpath
Requires-Dist: pyrsistent
Requires-Dist: configparser2
Requires-Dist: appdirs
Requires-Dist: wrapt
Requires-Dist: jinja2
Requires-Dist: arrow
Requires-Dist: inflection
Requires-Dist: six

========
Overview
========



Description
===========

I'm Cédric ROMAN.

``ngoschema`` aims at building classes based on a `JSON schema
<https://spacetelescope.github.io/understanding-json-schema/index.html>`_.

User can declare its attributes in a schema (along with their type, default
value) and the class will be built with accessors to check and validate data.

User can add methods and override setters/getters, but the library provides a
boiler plate to automatically create the class, nicely instrumented (with loggers,
exception handling, type checking, data validation, etc...).

Objects created are come with managers to load/save them into files.

Serialization tools are provided that can be used to do code generation.

The library is build on top of `python-jsonschema-object
<https://github.com/cwacek/python-jsonschema-objects>`_, with a lot of hacking,
which allows to create classes
from a JSON-schema.

Both projects use the library `python-jsonchema
<http://python-jsonschema.readthedocs.io/en/latest/validate/>`_, a python
implementation for JSON schema validation.

* Free software: GNU General Public License v3

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

::

    pip install ngoschema

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

https://python-ngoschema.readthedocs.io/

Development
===========

To run the all tests run::

    tox

Note, to combine the coverage data from all the tox environments run:

.. list-table::
    :widths: 10 90
    :stub-columns: 1

    - - Windows
      - ::

            set PYTEST_ADDOPTS=--cov-append
            tox

    - - Other
      - ::

            PYTEST_ADDOPTS=--cov-append tox


Changelog
=========

0.1.0 (2018-06-04)
------------------

* First release on PyPI.


