Thank you for considering contributing to 3DCS! This document explains how to set up a development environment and submit changes.
# Clone the repository
git clone https://github.com/ComDec/3DCS.git
cd 3DCS
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate
# Install in editable mode with dev dependencies
pip install -e ".[dev]"
# Install RDKit (required for molecule parsing)
pip install rdkit-pypi
# Install pre-commit hooks
pre-commit install# Run all tests
pytest
# Run with coverage
pytest --cov=three_dbench
# Skip slow tests (those requiring HF downloads)
pytest -m "not slow"This project uses ruff for linting and formatting.
# Check for issues
ruff check src/ tests/
# Auto-fix issues
ruff check --fix src/ tests/
# Format code
ruff format src/ tests/Key style rules:
- Line length: 120 characters
- Python 3.9+ syntax
- Imports sorted with
isortrules (via ruff)
- Create a subpackage under
src/three_dbench/(e.g.,my_task/) - Add dataset conversion in
src/three_dbench/datasets/my_task.py - Add evaluation logic in
src/three_dbench/my_task/evaluation.py - Add a benchmark entry point in
src/three_dbench/benchmarks/my_task.py - Register the task in
src/three_dbench/__main__.py - Add tests under
tests/
- Fork the repository and create a feature branch
- Make your changes with tests
- Run
make lintandmake testto verify - Submit a pull request with a clear description
Use the GitHub issue tracker to report bugs or request features. Please include:
- Python version and OS
- Steps to reproduce the issue
- Expected vs. actual behavior