[workspace]
name = "{{ project_slug }}"
authors = [
    "{{ author_full_name }} <{{ author_email }}>"{% if has_additional_authors %}{% for author in additional_authors %},
    "{{ author }}"{% endfor %}{% endif %}
]
description = "{{ project_description }}"
license = "MIT"
channels = ["conda-forge", "bioconda"]
platforms = ["osx-arm64", "linux-64", "win-64", "osx-64"]

[environments]
quality = { features = ["quality"], solve-group = "default" }
docs = { features = ["docs"], solve-group = "default" }

[activation]
# convenient variables which can be used in scripts
env.CONFIG = "${PIXI_PROJECT_ROOT}/config"
env.METADATA = "${PIXI_PROJECT_ROOT}/metadata"
env.LOGS = "${PIXI_PROJECT_ROOT}/logs"
env.RAWDATA = "${PIXI_PROJECT_ROOT}/data/rawdata"
env.PROCDATA = "${PIXI_PROJECT_ROOT}/data/procdata"
env.RESULTS = "${PIXI_PROJECT_ROOT}/data/results"
env.SCRIPTS = "${PIXI_PROJECT_ROOT}/workflow/scripts"

[dependencies]
python = ">={{ python_version }}"
ipython = "*"
ipykernel = "*"
jupyterlab = "*"
pip = "*"

[pypi-dependencies]
damply = ">=0.10.0, <0.11"

[tasks]
example_script = {cmd="python $SCRIPTS/example_script.py", description="Run an example script"}

############################################## QUALITY ###############################################
# Quality includes linting, type checking, and formatting
[feature.quality.dependencies]
ruff = "*"

[feature.quality.tasks]
ruff-check.cmd = ["ruff", "check"]
ruff-check.inputs = ["config/ruff.toml", "workflow"]
ruff-check.description = "Run ruff check"

ruff-format.cmd = ["ruff", "format"]
ruff-format.inputs = ["config/ruff.toml", "workflow"]
ruff-format.depends-on = ["ruff-check"]
ruff-format.description = "Run ruff format, run check first"

qc.depends-on = ["ruff-format", "ruff-check"]
qc.description = "Quality check: ruff check and format"

############################################## DOCS ################################################

[feature.docs.dependencies]
mkdocs = "*"
mkdocs-include-markdown-plugin = ">=7.0.0,<8"

[feature.docs.tasks.doc-build]
cmd = "mkdocs build -f mkdocs.yaml"
description = "Build documentation with mkdocs"

[feature.docs.tasks.doc-serve]
cmd = "mkdocs serve -f mkdocs.yaml"
depends-on = ["doc-build"]
description = "Serve documentation with mkdocs, runs doc-build first"
