Metadata-Version: 2.2
Name: rios.core
Version: 0.10.0
Summary: Parsing and Validation Library for RIOS Files
Home-page: https://github.com/prometheusresearch/rios.core
Author: Prometheus Research, LLC
Author-email: contact@prometheusresearch.com
License: Apache-2.0
Keywords: rios prismh research instrument assessment standard validation
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
License-File: LICENSE.rst
License-File: NOTICE
Requires-Dist: six
Requires-Dist: colander<2,>=1
Requires-Dist: pyyaml
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: requires-dist
Dynamic: summary

.. image:: https://github.com/prometheusresearch/rios.core/workflows/Test/badge.svg
   :target: https://github.com/prometheusresearch/rios.core/actions
.. image:: https://readthedocs.org/projects/rioscore/badge/?version=stable
   :target: https://rioscore.readthedocs.org
.. image:: https://img.shields.io/pypi/v/rios.core.svg
   :target: https://pypi.python.org/pypi/rios.core
.. image:: https://img.shields.io/pypi/l/rios.core.svg
   :target: https://pypi.python.org/pypi/rios.core

******************
RIOS.CORE Overview
******************

RIOS.CORE is a `Python`_ package that provides basic validation and
formatting functionality for data structures that adhere to the `RIOS`_
specifications (formally known as PRISMH).

.. _`Python`: https://www.python.org
.. _`RIOS`: https://rios.readthedocs.org


Example Usage
=============

This package exposes a handful of simple functions for validating and
formatting the standard RIOS data structures::

    >>> from rios.core import validate_instrument, get_instrument_json

    >>> instrument = {"foo": "bar", "id": "urn:my-instrument", "title": "An Instrument Title", "record": [{"id": "field1","type": "text"}], "version": "1.0"}
    >>> validate_instrument(instrument)
    Traceback (most recent call last):
        ...
    colander.Invalid: {'': u'Unrecognized keys in mapping: "{\'foo\': \'bar\'}"'}

    >>> del instrument['foo']
    >>> validate_instrument(instrument)

    >>> print get_instrument_json(instrument)
    {
      "id": "urn:my-instrument",
      "version": "1.0",
      "title": "An Instrument Title",
      "record": [
        {
          "id": "field1",
          "type": "text"
        }
      ]
    }


For more information on the available functionality, please read the API
documentation.


Contributing
============

Contributions and/or fixes to this package are more than welcome. Please submit
them by forking this repository and creating a Pull Request that includes your
changes. We ask that you please include unit tests and any appropriate
documentation updates along with your code changes.

This project will adhere to the `Semantic Versioning`_ methodology as much as
possible, so when building dependent projects, please use appropriate version
restrictions.

.. _`Semantic Versioning`: http://semver.org

A development environment can be set up to work on this package by doing the
following::

    $ python -m venv rios
    $ cd rios
    $ . bin/activate
    $ git clone git@github.com:prometheusresearch/rios.core.git
    $ cd rios.core
    $ pip install -e .
    $ pip install -r requirements.txt
    $ pytest


License/Copyright
=================

This project is licensed under the Apache v2 license. See the accompanying
``LICENSE.rst`` file for details.

Copyright (c) 2015, Prometheus Research, LLC

