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.”
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.14.
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.14, 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_14.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:
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