Metadata-Version: 2.5
Name: bfabric
Version: 1.22.0
Summary: Python client for the B-Fabric API
Project-URL: Homepage, https://github.com/fgcz/bfabricPy
Project-URL: Repository, https://github.com/fgcz/bfabricPy
Author: Aleksejs Fomins, Marco Schmidt, Maria d'Errico, Witold Eryk Wolski
Author-email: Christian Panse <cp@fgcz.ethz.ch>, Claudio Cannizzaro <claudio.cannizzaro@fgcz.uzh.ch>, Leonardo Schwarz <leonardo.schwarz@fgcz.ethz.ch>
License: GPL-3.0
Requires-Python: >=3.11
Requires-Dist: annotated-types>=0.7.0
Requires-Dist: authlib<2.0,>=1.6.9
Requires-Dist: httpx<0.29,>=0.28.1
Requires-Dist: joserfc<2.0,>=1.6.0
Requires-Dist: loguru<0.8,>=0.7
Requires-Dist: polars<2.0,>=1.34
Requires-Dist: polars[rtcompat]<2.0,>=1.34; platform_machine == 'x86_64' and platform_system == 'Darwin'
Requires-Dist: pydantic<3.0,>=2.9.2
Requires-Dist: python-dateutil<3.0,>=2.9.0
Requires-Dist: pyyaml<7.0,>=6.0.2
Requires-Dist: requests<3.0,>=2.27.0
Requires-Dist: rich<15.0.0,>=14.0.0
Requires-Dist: suds<2.0.0,>=1.2.0
Provides-Extra: dev
Requires-Dist: autodoc-pydantic>=2.2.0; extra == 'dev'
Requires-Dist: black; extra == 'dev'
Requires-Dist: coverage>=7.10.0; extra == 'dev'
Requires-Dist: dirty-equals>=0.10.0; extra == 'dev'
Requires-Dist: ipython; extra == 'dev'
Requires-Dist: isort; extra == 'dev'
Requires-Dist: licensecheck; extra == 'dev'
Requires-Dist: linkify-it-py; extra == 'dev'
Requires-Dist: logot[loguru,pytest]>=1.5.1; extra == 'dev'
Requires-Dist: myst-parser>=4.0.1; extra == 'dev'
Requires-Dist: nox>=2025.11.12; extra == 'dev'
Requires-Dist: pytest-asyncio>=1.2.0; extra == 'dev'
Requires-Dist: pytest-mock>=3.15; extra == 'dev'
Requires-Dist: pytest-random-order>=1.1.0; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: sphinx-autobuild>=2024.10.3; extra == 'dev'
Requires-Dist: sphinx-book-theme>=1.1.4; extra == 'dev'
Requires-Dist: sphinx>=8.0.2; extra == 'dev'
Requires-Dist: tuspy<2,>=1.0; extra == 'dev'
Requires-Dist: uv; extra == 'dev'
Provides-Extra: doc
Requires-Dist: autodoc-pydantic>=2.2.0; extra == 'doc'
Requires-Dist: linkify-it-py; extra == 'doc'
Requires-Dist: myst-parser>=4.0.1; extra == 'doc'
Requires-Dist: sphinx-autobuild>=2024.10.3; extra == 'doc'
Requires-Dist: sphinx-book-theme>=1.1.4; extra == 'doc'
Requires-Dist: sphinx>=8.0.2; extra == 'doc'
Provides-Extra: test
Requires-Dist: coverage>=7.10.0; extra == 'test'
Requires-Dist: dirty-equals>=0.10.0; extra == 'test'
Requires-Dist: logot[loguru,pytest]>=1.5.1; extra == 'test'
Requires-Dist: pytest-asyncio>=1.2.0; extra == 'test'
Requires-Dist: pytest-mock>=3.15; extra == 'test'
Requires-Dist: pytest-random-order>=1.1.0; extra == 'test'
Requires-Dist: pytest>=8; extra == 'test'
Requires-Dist: tuspy<2,>=1.0; extra == 'test'
Provides-Extra: transfer
Requires-Dist: tuspy<2,>=1.0; extra == 'transfer'
Provides-Extra: typing
Requires-Dist: lxml-stubs; extra == 'typing'
Requires-Dist: mypy; extra == 'typing'
Requires-Dist: types-python-dateutil; extra == 'typing'
Requires-Dist: types-pyyaml; extra == 'typing'
Requires-Dist: types-requests; extra == 'typing'
Description-Content-Type: text/markdown

# bfabric

Python client for the [B-Fabric](https://fgcz-bfabric.uzh.ch/bfabric/) API — the system that runs the Functional
Genomics Center Zurich (FGCZ), covering project and service management, data production, annotation, search and
analysis workflows.

- A general client for all B-Fabric web service operations (CRUD) and configuration management.
- A relational API for low-boilerplate read access to B-Fabric entities.

## Installation

```bash
pip install bfabric
```

One extra is available: `bfabric[transfer]` adds
resource download and upload.

## Usage

Credentials are read from `~/.bfabricpy.yml`:

```python
from bfabric import Bfabric

client = Bfabric.connect()
results = client.read(endpoint="workunit", obj={}, max_results=5)

for workunit in results:
    print(workunit["id"], workunit.get("status"))
```

See the [getting started guide](https://fgcz.github.io/bfabricPy) for configuring the client, and the user guides for
the relational entity API, caching and error handling.

## Links

- [Documentation](https://fgcz.github.io/bfabricPy)
- [Changelog](https://github.com/fgcz/bfabricPy/blob/main/bfabric/docs/changelog.md)
- [Source and issue tracker](https://github.com/fgcz/bfabricPy)

This package is part of the bfabricPy monorepo, which also publishes
[bfabric-scripts](https://pypi.org/project/bfabric-scripts/) (command line tools) and
[bfabric-app-runner](https://pypi.org/project/bfabric-app-runner/) (application workflows).

## How to cite

Panse, Christian, Trachsel, Christian and Türker, Can. "Bridging data management platforms and visualization tools to
enable ad-hoc and smart analytics in life sciences" Journal of Integrative Bioinformatics, 2022, pp. 20220031.
[doi: 10.1515/jib-2022-0031](https://doi.org/10.1515/jib-2022-0031).
