Contributing
StaticFrame welcomes contributions to code and documentation via GitHub pull requests. For ideas on what to contribute, please see open issues on GitHub, particularly those marked “good first issue.”
https://github.com/static-frame/static-frame/issues
If you have an idea for a new feature for which there is not already an issue, please create an issue first, before beginning development, so that it can be discussed.
Preparing an Environment
StaticFrame is developed on Python 3.11.
To prepare a StaticFrame repository and environment, follow the following steps.
Clone the git repository (or your fork):
git clone https://github.com/static-frame/static-frame.git
Using Python 3.11, Create a virtual environment with StaticFrame’s development requirements:
cd static-frame
python3 -m venv .env-sf
source .env-sf/bin/activate
pip install -r requirements-dev-3_11.txt
Running Tests & Static Analysis
Note
Running StaticFrame integration tests may clear your clipboard. This is an artifact of using Python’s Tk
for clipboard interaction in Frame.to_clipboard()
and Frame.from_clipboard()
.
PyTest can be used to run StaticFrame tests. Alternatively, Invoke (installed via requirements-test.txt
) can be used to run tests and static analysis. To run all test, enter the following:
invoke test
When iterating on code, running fast unit tests is generally sufficient:
invoke test -u
To run MyPy and Pylint static analysis, use the following:
invoke mypy
invoke lint
All tests and static analysis are run via GitHub Actions on pull requests, and all tests and static analysis must pass for a PR to be accepted.
Awknowledgements & Contributors
Thanks to our many GitHub contributors:
https://github.com/static-frame/static-frame/graphs/contributors
Thanks to former and current Research Affiliates staff who have contributed greatly to the design of StaticFrame:
Brandt Bucher
Charles Burkland
Guru Devanla
John Hawk
John McCloskey
Adam Kay
Mark LeMoine
Myrl Marmarelis
Tom Rutherford
Yu Tomita
Quang Vu