Contributing¶
Thanks for your interest in contributing to sqbooster!
Development Setup¶
git clone https://github.com/daradege/sqbooster.git
cd sqbooster
pip install -e ".[dev]"
Running Tests¶
python tests/test_real_tables.py
python tests/test_backward_compat.py
Building Documentation¶
make docs
open docs/_build/html/index.html
Project Structure¶
sqbooster/
├── sqbooster/
│ ├── types.py # Column types
│ ├── schema.py # Column + TableSchema
│ ├── query.py # Query + InMemoryQuery
│ ├── backends/ # DatabaseBackend ABC + SQL backends
│ └── databases/ # JSON, Pickle, Redis, Mongo backends
├── docs/ # Sphinx documentation
├── examples/ # Full example applications
└── tests/ # Test suite
Adding a New Backend¶
Create
sqbooster/databases/<name>/__init__.pyImplement
DatabaseBackendfromsqbooster.backendsAdd optional dependency in
pyproject.tomlUpdate safe imports in
sqbooster/databases/__init__.pyAdd tests in
tests/
Code Style¶
Type hints on all public methods
Docstrings in Google style for Sphinx autodoc
No unnecessary comments
License¶
By contributing, you agree that your contributions will be licensed under the MIT License.