Skip to content

ga4gh/va-spec-python

Repository files navigation

va-spec-python

VA-Spec-Python provides Python language support and a reference implementation for the GA4GH Variant Annotation Specification (VA-Spec).

Information

license

Releases

gitHub tag pypi DOI

Development

action status issues GitHub Open Pull Requests GitHub license GitHub stars GitHub forks

Features

  • Pydantic implementation of VA-Spec models

Known Issues

You are encouraged to browse issues. All known issues are listed there. Please report any issues you find.

Developers

This section is intended for developers who contribute to VA-Spec-Python.

Installing for development

Prerequisites

  • 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

Submodules

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

Testing

To run tests:

make test

Security Note (from the GA4GH Security Team)

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.