Metadata-Version: 2.4
Name: bbconf
Version: 0.14.9
Summary: Configuration and data management tool for BEDbase
Project-URL: Homepage, https://github.com/databio/bbconf
Author-email: Oleksandr Khoroshevskyi <bnt4me@virginia.edu>
License-Expression: BSD-2-Clause
License-File: LICENSE.txt
Keywords: BED,bioinformatics,configuration,genomics
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3.10
Requires-Dist: boto3<1.36.0,>=1.34.54
Requires-Dist: botocore<1.36.0,>=1.34.0
Requires-Dist: coloredlogs
Requires-Dist: geniml[ml]>=0.8.4
Requires-Dist: gtars>=0.5.3
Requires-Dist: pandas<3.0.0
Requires-Dist: pephubclient>=0.4.5
Requires-Dist: psycopg>=3.1.15
Requires-Dist: pybiocfilecache==0.6.1
Requires-Dist: pydantic>=2.9.0
Requires-Dist: pyyaml>=6.0.1
Requires-Dist: qdrant-client>=1.16.1
Requires-Dist: s3fs>=2024.3.1
Requires-Dist: setuptools<70.0.0
Requires-Dist: sqlalchemy-schemadisplay
Requires-Dist: sqlalchemy>=2.0.0
Requires-Dist: umap-learn>=0.5.8
Requires-Dist: yacman==0.9.4
Requires-Dist: zarr<3.0.0
Provides-Extra: dev
Requires-Dist: ruff; extra == 'dev'
Provides-Extra: test
Requires-Dist: coverage; extra == 'test'
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: pytest-mock; extra == 'test'
Requires-Dist: python-dotenv; extra == 'test'
Requires-Dist: smokeshow; extra == 'test'
Description-Content-Type: text/markdown

<h1 align="center">bbconf</h1>

![Run pytests](https://github.com/databio/bbconf/workflows/Run%20pytests/badge.svg)
[![pypi-badge](https://img.shields.io/pypi/v/bbconf?color=%2334D058)](https://pypi.org/project/bbconf/)
[![pypi-version](https://img.shields.io/pypi/pyversions/bbconf.svg?color=%2334D058)](https://pypi.org/project/bbconf)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Github badge](https://img.shields.io/badge/source-github-354a75?logo=github)](https://github.com/databio/bbconf)
[![coverage](https://coverage-badge.samuelcolvin.workers.dev/databio/bbconf.svg)](https://coverage-badge.samuelcolvin.workers.dev/redirect/databio/bbconf)


*BEDBASE* project configuration package (agent)

## What is this?

`bbconf` is a configuration and data management library for the [BEDbase](https://bedbase.org) platform. It serves as the central backbone for all BEDbase tools and pipelines by:

- Reading and validating YAML configuration files
- Setting up and managing connections to PostgreSQL, Qdrant, S3, and PEPHub
- Loading ML models (Region2Vec, text embedders, sparse encoders, UMAP) used for BED file search
- Providing high-level Python interfaces for querying and managing BED files and BED sets
- Exposing a unified `BedBaseAgent` object that all downstream tools use to interact with the platform

---

**Documentation**: <a href="https://docs.bedbase.org/bedboss" target="_blank">https://docs.bedbase.org/bedboss</a>

**Source Code**: <a href="https://github.com/databio/bbconf" target="_blank">https://github.com/databio/bbconf</a>

---

## Installation

To install `bbclient` use this command: 
```
pip install bbconf
```
or install the latest version from the GitHub repository:
```
pip install git+https://github.com/databio/bbconf.git
```


## Quick start

```python
from bbconf import BedBaseAgent

agent = BedBaseAgent(config="config.yaml")

# Access submodules
agent.bed        # BED file operations
agent.bedset     # BED set operations
agent.objects    # Generic object/file operations

# Get platform statistics
stats = agent.get_stats()
print(stats.bedfiles_number, stats.bedsets_number)
```
