Contributing to the Opik Python SDK
The Opik Python SDK is a key component of our platform, allowing developers to integrate Opik into their Python applications seamlessly. The SDK source code is located in the sdks/python
directory of the main comet-ml/opik
repository.
Before you start, please review our general Contribution Overview and the Contributor License Agreement (CLA).
Getting Started
1. Set up Opik Locally
To develop and test Python SDK features, you’ll need a local Opik instance running. You can set this up by following the instructions in the Docker Compose README or by using the helper scripts provided in the root of the repository:
Linux/Mac
Windows
Your local Opik server will be accessible at http://localhost:5173
.
Windows Users
- Ensure the Python
Scripts
directory (e.g.,C:\Users\<name>\AppData\Local\Programs\Python<version>\Scripts\
) is in your system’s PATH for theopik
CLI command to work after installation. Restart your terminal after adding it. - Using a Python virtual environment is highly recommended:
2. Install SDK for Development
Navigate to the sdks/python
directory (or use the path from your virtual environment setup) and install the SDK in editable mode:
3. Review Coding Guidelines
Familiarize yourself with the coding guidelines for our Python SDK. This will cover style, conventions, and other important aspects.
4. Implement Your Changes
Make your desired code changes, additions, or bug fixes within the sdks/python
directory.
5. Test Your Changes
Testing is crucial. For most SDK contributions, you should run the end-to-end (e2e) tests:
If you’re making changes to specific integrations (e.g., OpenAI, Anthropic):
- Install the integration-specific requirements:
pip install -r tests/integrations/openai/requirements.txt
(example for OpenAI). - Configure any necessary API keys for the integration as environment variables or per your test setup.
- Run the specific integration tests:
pytest tests/integrations/openai
(example for OpenAI).
7. Update Documentation (If Applicable)
If your changes impact public-facing methods, parameters, or docstrings, please also update the documentation. Refer to the Documentation Contribution Guide for how to update the Python SDK Reference Documentation (Sphinx).