Skip to content

Latest commit

History

History
33 lines (23 loc) 路 1.48 KB

CONTRIBUTE.md

File metadata and controls

33 lines (23 loc) 路 1.48 KB

Contribute to tuneflow-py

Overview

tuneflow-py is essentially a set of high-level data models built on top of TuneFlow's data proto. Each model class wraps a raw protocol buffer object, and provides high-level methods to read and modify the proto's data. Therefore, all write operations in a model class should write directly into the proto object, and read operations should return primitive value or a data model class wrapping a proto.

Project setup

If you are developing a project that uses tuneflow-py, it is recommended to put tuneflow-py as a submodule alongside your repo in a larger parent repo, so that you can make changes to tuneflow-py without publishing a new version. For example, your directory structure could be:

---your_dev_folder
    |- ......
    |- tuneflow-py
    |- my-project
    |- ......

Note that if you decide to use tuneflow-py from a submodule, you should UNINSTALL tuneflow-py that was installed through pip or other tools, and then, add tuneflow-py/src into your PYTHONPATH. For example, in your terminal run:

export PYTHONPATH=$PYTHONPATH:$PWD/tuneflow-py/src

Testing

Tests are under the test directory, we use pytest to run tests and generate coverage reports. To run all the tests, run

./scripts/test.sh

Submit changes

To submit a change, create a separate branch, push it to github and then create a Pull Request.