Contributing
Your contributions are highly appreciated!
Prerequisites
Before proceeding, ensure the following tools and credentials are set up:
- Install uv.
- Install pre-commit.
Tip
Once uv
is installed, you can easily install pre-commit
by running:
uv tool install pre-commit
- Set up
pre-commit
hook:pre-commit install --install-hooks
- Generate an OpenAI API Key:
Installation and Setup
To run timecopilot in your local environment:
- Fork and clone the repository:
git clone git@github.com:<your username>/timecopilot.git
- Navigate into the project folder:
cd timecopilot
- Install the required dependencies for local development:
uv sync --frozen --all-extras --all-packages --group docs
- Export your OpenAI API key as an environment variable:
export OPENAI_API_KEY="<your-new-secret-key>"
- Test timecopilot with a sample forecast:
uvx timecopilot forecast https://otexts.com/fpppy/data/AirPassengers.csv
✅ You're ready to start contributing!
Running Tests
To run tests, run:
uv run pytest
Documentation Changes
To run the documentation page in your local environment, run:
uv run mkdocs serve
Documentation Notes
- Each pull request is tested to ensure it can successfully build the documentation, preventing potential errors.
- Merging into the main branch triggers a deployment of a documentation preview, accessible at preview.timecopilot.dev.
- When a new version of the library is released, the documentation is deployed to timecopilot.dev.
Adding New Datasets
The datasets utilized in our documentation are hosted on AWS at https://timecopilot.s3.amazonaws.com/public/data/
. If you wish to contribute additional datasets for your changes, please contact @AzulGarza for guidance.
Forked Dependencies
TimeCopilot uses some forked Python packages, maintained under custom names on PyPI:
-
chronos-forecasting
- Forked from: amazon-science/chronos-forecasting
- TimeCopilot fork: AzulGarza/chronos-forecasting
- Published on PyPI as:
timecopilot-chronos-forecasting
-
timesfm
- Forked from: google-research/timesfm
- TimeCopilot fork: AzulGarza/timesfm
- Published on PyPI as:
timecopilot-timesfm
-
tirex
- Forked from: NX-AI/tirex
- TimeCopilot fork: AzulGarza/tirex
- Published on PyPI as:
timecopilot-tirex
-
toto
- Forked from: DataDog/toto
- TimeCopilot fork: AzulGarza/toto
- Published on PyPI as:
timecopilot-toto
-
uni2ts:
- Forked from: SalesforceAIResearch/uni2ts
- TimeCopilot fork: AzulGarza/uni2ts
- Published on PyPI as:
timecopilot-uni2ts