Combines most popular python parsers (json, jprops, pickle...) with user-defined parsers and type converters to read objects from files. Supports multifile & multiparser objects, typically useful to organize test data. Leverages PEP484 type hints in order to intelligently use the best parser/converter chain, and to try several combinations if relevant


Keywords
parsing, framework, file, converter, conversion, parser, object, folder, dict, yaml, propertiescollection, complex, simple, benchmark, type, class, PEP484, type-hint, data, binding, collection, properties, python
License
BSD-3-Clause
Install
pip install parsyfiles==2.9.1

Documentation

python simple file collection parsing framework (parsyfiles)

Build Status Tests Status codecov Documentation PyPI

Project page : https://smarie.github.io/python-parsyfiles/

What's new

  • Travis and codecov integration
  • Doc now generated from markdown using mkdocs

Want to contribute ?

Contributions are welcome ! Simply fork this project on github, commit your contributions, and create_not_able_to_convert pull requests.

Here is a non-exhaustive list of interesting open topics: https://github.com/smarie/python-parsyfiles/issues

Running the tests

This project uses pytest.

pytest -v parsyfiles/tests/

You may need to install requirements for setup beforehand, using

pip install -r ci_tools/requirements-test.txt

Generating the documentation page

This project uses mkdocs to generate its documentation page. Therefore building a local copy of the doc page may be done using:

mkdocs build -f docs/mkdocs.yml

You may need to install requirements for doc beforehand, using

pip install -r ci_tools/requirements-doc.txt

Generating the test reports

The following commands generate the html test report and the associated badge.

pytest --junitxml=junit.xml -v parsyfiles/tests/
ant -f ci_tools/generate-junit-html.xml
python ci_tools/generate-junit-badge.py

PyPI Releasing memo

This project is now automatically deployed to PyPI when a tag is created. Anyway, for manual deployment we can use:

twine upload dist/* -r pypitest
twine upload dist/*