VA-Spec-Python provides Python language support and a reference implementation for the GA4GH Variant Annotation Specification (VA-Spec).
- Pydantic implementation of VA-Spec models
You are encouraged to browse issues. All known issues are listed there. Please report any issues you find.
This section is intended for developers who contribute to VA-Spec-Python.
- Python >= 3.10
- Note: Python 3.12 is required for developers contributing to VA-Spec-Python
Fork the repo at https://github.com/ga4gh/va-spec-python/.
Install development dependencies and pre-commit
:
git clone --recurse-submodules [email protected]:YOUR_GITHUB_ID/va-spec-python.git
cd va-spec-python
make devready
source venv/3.12/bin/activate
pre-commit install
Check style with ruff
:
make format; make lint
va-spec-python embeds va-spec as a submodule, only for testing purposes. When checking
out va-spec-python and switching branches, it is important to make sure that the
submodule tracks va-spec-python correctly. The recommended way to do this is
git config --global submodule.recurse true
. If you don't set submodule.recurse,
developers and reviewers must be extremely careful to not accidentally upgrade or
downgrade schemas with respect to va-spec-python.
If you already cloned the repo, but forgot to include --recurse-submodules
you can run:
git submodule update --init --recursive
To run tests:
make test
A stand-alone security review has been performed on the specification itself. This implementation is offered as-is, and without any security guarantees. It will need an independent security review before it can be considered ready for use in security-critical applications. If you integrate this code into your application it is AT YOUR OWN RISK AND RESPONSIBILITY to arrange for a security audit.