Metadata-Version: 2.1
Name: snakebids
Version: 0.7.2
Summary: BIDS integration into snakemake workflows
Home-page: https://github.com/akhanf/snakebids
License: MIT
Author: Ali Khan
Author-email: alik@robarts.ca
Requires-Python: >=3.7,<3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: PyYAML (>=6,<7)
Requires-Dist: attrs (>=21.2.0,<23)
Requires-Dist: boutiques (>=0.5.25,<0.6.0)
Requires-Dist: cached-property (>=1.5.2,<2.0.0)
Requires-Dist: cookiecutter (>=2.1.1,<3.0.0)
Requires-Dist: more-itertools (>=8,<10)
Requires-Dist: numpy (>=1.21.2) ; python_version == "3.10"
Requires-Dist: numpy (>=1.23.2) ; python_version >= "3.11"
Requires-Dist: pandas (>=1.3) ; python_full_version >= "3.7.1"
Requires-Dist: pandas (>=1.5) ; python_version >= "3.11"
Requires-Dist: pybids (>=0.15.0,<0.16.0)
Requires-Dist: scipy (<1.8) ; python_version == "3.7"
Requires-Dist: scipy (>=1.9.2) ; python_version >= "3.11"
Requires-Dist: snakemake (>=5.28.0) ; python_version >= "3.7"
Requires-Dist: snakemake (>=7.18.2) ; python_version >= "3.11"
Requires-Dist: typing-extensions (>=3.10.0)
Project-URL: Documentation, https://snakebids.readthedocs.io/
Project-URL: Repository, https://github.com/akhanf/snakebids
Description-Content-Type: text/markdown


snakebids
=========
[![Tests](https://github.com/akhanf/snakebids/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/akhanf/snakebids/actions/workflows/test.yml?query=branch%3Amain)
[![Documentation Status](https://readthedocs.org/projects/snakebids/badge/?version=stable)](https://snakebids.readthedocs.io/en/stable/?badge=stable)
[![Version](https://img.shields.io/github/v/tag/akhanf/snakebids?label=version)](https://pypi.org/project/snakebids/)
[![Python versions](https://img.shields.io/pypi/pyversions/snakebids)](https://pypi.org/project/snakebids/)
[![DOI](https://zenodo.org/badge/309495236.svg)](https://zenodo.org/badge/latestdoi/309495236)

Snakemake + BIDS
This package allows you to build BIDS Apps using Snakemake. It offers:


* Flexible data grabbing with PyBIDS, configurable solely by config file entries
* Helper function for creating BIDS paths inside Snakemake workflows/rules
* Command-line invocation of snakemake workflows with BIDS App compliance
* Configurable argument parsing specified using the Snakemake workflow config
* Execution either as command-line BIDS apps or via snakemake executable

Contributing
============

Clone the git repository. Snakebids dependencies are managed with Poetry (vesion 1.2 or higher), which you'll need installed on your machine. You can find instructions on the [poetry website](https://python-poetry.org/docs/master/#installation). Then, setup the development environment with the following commands:

```bash
poetry install
poetry run poe setup
```

Snakebids uses [poethepoet](https://github.com/nat-n/poethepoet) as a task runner. You can see what commands are available by running:

```bash
poetry run poe
```

If you wish, you can also run `poe [command]` directly by installing `poethepoet` on your system. Follow the install instructions at the link above.

Tests are done with `pytest` and can be run via:

```bash
poetry run poe test
```

Snakebids uses pre-commit hooks (installed via the `poe setup` command above) to lint and format code (we use [black](https://github.com/psf/black), [isort](https://github.com/PyCQA/isort), [pylint](https://pylint.org/) and [flake8](https://flake8.pycqa.org/en/latest/)). By default, these hooks are run on every commit. Please be sure they all pass before making a PR.

