Skip to content

cbg-ethz/PYggdrasil

Repository files navigation

Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. build Ruff Code style: black

PYggdrasil

Python package for inference and analysis of mutation trees and copy number trees.

Usage

import pyggdrasil as yg

Contributing

Setting up the repository

To build package and maintain dependencies we use Poetry. In particular, it's good to install it and become familiar with its basic functionalities by reading the documentation.

To set up the environment (together with development tools) run:

$ poetry install --with dev
$ poetry run pre-commit install

Then, you will be able to run tests:

$ poetry run pytest

... or check the types:

$ poetry run pyright

Alternatively, you may prefer to work with the right Python environment using:

$ poetry shell
$ pytest

Existing code quality checks

The code quality checks run during on GitHub can be seen in .github/workflows/test.yml.

We are using:

Workflow

We use Feature Branch Workflow, in which modifications of the code should happen via small pull requests.

We recommend submitting small pull requests and starting with drafts outlining proposed changes.

Code organisation

  • The package code is in src/pyggdrasil/ and is partitioned into subpackages.
  • The unit tests are in tests/ and the structure of this directory should reflect the one of the package.
  • Experimental workflows are in workflows/, with a description of how to set up the environment in workflows/README.md