contributing to dgpost

Contributions are welcome! If you have a function or a module that you’d like to include in the dgpost.transform library, or a design suggestion for dgpost, please make a pull-request or an issue on GitHub.

Developer documentation

The project follows fairly standard developer practices. Every new feature should be implemented in a separate pull-request, and be associated with a unit test. Every pull- request should be formatted using black prior to merging.

Testing

Tests are located in the tests folder of the repository, and are executed using pytest for every commit in every PR.

The tests.utils module contains a convenience @pytest.fixture, called datadir(), which allows you to attach and load additional data (input files, schemas, etc.) as required by your test.

The tests.utils module also contains the compare_dfs() function, which should be used to compare pd.DataFrames, as it handles comparison of tables including data with uncertainties, units, and the provenance information.

Documentation

Each module within the dgpost.transform package should have a top-level docstring, including a short description of the functions in the module, and code author names.

Each function within the modules of the dgpost.transform library should be documented using a docstring within the function itself. Please document any non- obvious maths as equations within the docstring.