The validate
function in the API of the generated input parser now accepts
a Python dict
as intermediate representation. This might be useful when
wanting to validate input programmatically, i.e. avoiding writing
intermediate files on disk.
Prune docstring
element from template during generation. This reduces the
lines of code produced when creating the input parser module.
Redistribute template validation functions in check_template.py
. This
avoids exposing internal dependencies in the generated parser.
parselglossy
can now reorder noncyclic dependencies between keywords’
defaulting actions at validation time.
See PR #99.
parselglossy
can now detect cyclic dependencies between keywords’
defaulting actions at validation time.
A validation specification like the following:
- name: some_number
type: int
default: "user['another_number']"
docstring: |
Some number which defaults to the value of another_number.
- name: another_number
type: int
default: "user['some_number']"
docstring: |
Another number which defaults to the value of some_number.
will be flagged as invalid due to the cyclic dependency between keywords. See PR #96.
parselglossy
can now generate an input parsing Python module which only
depends on a standard Python distribution.
See PR #84.
Switch to Flit to manage packaging. We recommend a good old virtualenv+pip for dependencies and virtual environment. See PRs #87, #88, #93, #95.
BREAKING parselglossy
provides only a minimal CLI for generating an input parser.
The full-fledged parsing functionality is, for the moment, retained in the API.
See PR #97.
Input parsers generated with parselglossy
will now raise an exception when
keywords have been repeated in an input file.
See PR #89.
Dropped support for Python 3.5
Fix Travis automatic deployment to PyPI.
Fix build of API docs on ReadTheDocs.
Update CONTRIBUTING.rst
.
Dropped support for Python 3.4.
Renamed the section
and keyword
fields in the template to name
.
Renamed the documentation
field in the template to docstring
.
Arbitrary callables of the input dictionary are now allowed in the default
field. Fix #31.
Complex numbers have the proper type after reading in. Fix #26.
Better error reporting. Exceptions are raised after each validation stage and offer detail error messages that give a comprehensive overview of what went wrong. Fix #24.
Fully defaulted sections are now properly taken into account. Fix #33.
Nesting of sections under keywords will throw an exception. Fix #34.
Implementation of the Getkw input grammar.
Implementation of the validation infrastructure.
First release on PyPI.