Metadata-Version: 2.1
Name: parselglossy
Version: 0.8.0
Summary: Top-level package for parselglossy.
Home-page: https://parselglossy.readthedocs.io
License: MIT
Author: Roberto Di Remigio
Requires-Python: ~=3.7
Description-Content-Type: text/x-rst
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
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: Operating System :: OS Independent
Requires-Dist: click
Requires-Dist: pyparsing~=3.0
Requires-Dist: pyyaml
Requires-Dist: networkx
Requires-Dist: black==22.3.0 ; extra == "dev"
Requires-Dist: flake8 ; extra == "dev"
Requires-Dist: isort ; extra == "dev"
Requires-Dist: mypy ; extra == "dev"
Requires-Dist: types-PyYAML ; extra == "dev"
Requires-Dist: sphinx ; extra == "doc"
Requires-Dist: furo ; extra == "doc"
Requires-Dist: sphinx-copybutton ; extra == "doc"
Requires-Dist: sphinx-inline-tabs ; extra == "doc"
Requires-Dist: codecov ; extra == "test"
Requires-Dist: coverage ; extra == "test"
Requires-Dist: hypothesis ; extra == "test"
Requires-Dist: pytest ; extra == "test"
Requires-Dist: pytest-black ; extra == "test"
Requires-Dist: pytest-cov ; extra == "test"
Requires-Dist: pytest-flake8 ; extra == "test"
Requires-Dist: pytest-mypy ; extra == "test"
Requires-Dist: pytest-sugar ; extra == "test"
Provides-Extra: dev
Provides-Extra: doc
Provides-Extra: test

============
parselglossy
============


.. image:: https://img.shields.io/pypi/v/parselglossy.svg
        :target: https://pypi.python.org/pypi/parselglossy

.. image:: https://github.com/dev-cafe/parselglossy/workflows/Test%20parselglossy/badge.svg?branch=master
        :target: https://github.com/dev-cafe/parselglossy/actions?query=workflow%3A%22Test+parselglossy%22+branch%3Amaster
        :alt: CI build status
        
.. image:: https://codecov.io/gh/dev-cafe/parselglossy/branch/master/graph/badge.svg
  :target: https://codecov.io/gh/dev-cafe/parselglossy

.. image:: https://readthedocs.org/projects/parselglossy/badge/?version=latest
        :target: https://parselglossy.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status



.. epigraph::

   [...] I speak with tongues more than you all;

   -- **1 Corinthians** 14:18

   Parse it on!

   -- Bobson Dugnutt, **Private communication**


Generic input parsing library, speaking in tongues.

``parselglossy`` generates a fully functional Python input parsing module from a
simple YAML template specification.  The parser has *no dependencies* on
external Python packages.
The documentation for all input keywords is also generated in reStructuredText
format from the YAML specification.


.. image:: https://github.com/dev-cafe/parselglossy/raw/master/docs/gfx/parse.jpg
     :alt: Parse all the inputs!

* Free software: MIT license
* Documentation: https://parselglossy.readthedocs.io.


Requirements
------------

* Python 3.7 or later.


Features
--------

* **Flexible**. It can accommodate different input styles and still generate
  correct parsers.  This is achieved by decoupling input reading and validation.
* **Extensible**. We work with standard Python types and standard JSON format.
  Interfacing and extending to your needs is straightforward.
* **Simple**. Just provide an input specification in YAML format: names of
  keywords/sections, defaults, documentation. The tedious bits are automatically
  handled for you.
* **Correct**. ``parselglossy`` gives two correctness guarantees:

  1. If the YAML specification is valid, the generated parser will be correct.
  2. If validation completes, the input to your application is well-formed.

Projects using parselglossy
---------------------------

*  `MRChem <https://mrchem.readthedocs.io/en/latest/>`_

If your project is using parselglossy, please add a link via a pull request.

