pybbi


Namepybbi JSON
Version 0.4.2 PyPI version JSON
download
home_pageNone
SummaryPython bindings to the UCSC source for Big Binary Indexed (bigWig/bigBed) files.
upload_time2025-10-30 17:09:51
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseMIT
keywords genomics bioinformatics bigwig bigbed bigbinaryindexed bbi ucsc
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pybbi #

![Build Status](https://github.com/nvictus/pybbi/actions/workflows/ci.yml/badge.svg)
[![DOI](https://zenodo.org/badge/58960207.svg)](https://zenodo.org/doi/10.5281/zenodo.10382980)

Python interface to Jim Kent's Big Binary Indexed file (BBI) \[[1](#ref1)\] library from the [UCSC Genome Browser source tree](https://github.com/ucscGenomeBrowser/kent) using Cython.

This provides read-level access to local and remote bigWig and bigBed files but no write capabilitites. The main feature is fast retrieval of range queries into numpy arrays.


## Installation ##

Wheels for `pybbi` are available on PyPI for Python 3.8, 3.9, 3.10, 3.11 on Linux (x86_64 and aarch64) and Mac OSX (x86_64/Intel). Apple Silicon (arm64) wheels will be made available once M1 runners are available in GitHub Actions.

```
$ pip install pybbi
```

## API ##

The `bbi.open` function returns a `BBIFile` object.

```
bbi.open(path) -> BBIFile
```

`path` can be a local file path (bigWig or bigBed) or a URL. `BBIFile` objects are context managers and can be used in a `with` statement to clean up resources without calling `BBIFile.close()`.

```python
>>> with bbi.open('bigWigExample.bw') as f:
...     x = f.fetch('chr21', 1000000, 2000000, bins=40)
```

### Introspection

```
BBIFile.is_bigwig -> bool
BBIFile.is_bigbed -> bool
BBIFile.chromsizes -> OrderedDict
BBIFile.zooms -> list
BBIFile.info -> dict
BBIFile.schema -> dict
BBIFile.read_autosql() -> str
```

Note: `BBIFile.schema['dtypes']` provides numpy data types for the fields in a bigWig or bigBed (matched from the autoSql definition).


### Interval output

The actual interval records in a bigWig or bigBed can be retrieved as a pandas dataframe or as an iterator over records as tuples. The pandas output is parsed according to the file's schema.

```
BBIFile.fetch_intervals(chrom, start, end) -> pandas.DataFrame
BBIFile.fetch_intervals(chrom, start, end, iterator=True) -> interval iterator
```

Summary bin records at each zoom level are also accessible.

```
BBIFile.fetch_summaries(chrom, start, end, zoom) -> pandas.DataFrame
```

### Array output

Retrieve quantitative signal as an array. The signal of a bigWig file is obtained from its "value" field. The signal of a bigBed file is obtained from the genomic coverage of its intervals.

For a single range query:
```
BBIFile.fetch(chrom, start, end, [bins [, missing [, oob, [, summary]]]]) -> 1D numpy array
```

To produce a stacked heatmap from a list of (1) equal-length intervals or (2) arbitrary-length intervals with `bins` specified:
```
BBIFile.stackup(chroms, starts, ends, [bins [, missing [, oob, [, summary]]]]) -> 2D numpy array
```

* **Summary** querying is supported by specifying the number of `bins` for coarsening. The `summary` statistic can be one of: 'mean', 'min', 'max', 'cov', 'std', 'or 'sum'. (default = 'mean'). Intervals need not have the same length, in which case the data from each interval will be interpolated to the same number of bins (e.g., gene bodies).

* **Missing** data can be filled with a custom fill value, `missing` (default = 0). 

* **Out-of-bounds** ranges (i.e. `start` less than zero or `end` greater than the chromosome length) are permitted because of their utility e.g., for generating vertical heatmap stacks centered at specific genomic features. A separate custom fill value, `oob` can be provided for out-of-bounds positions (default = NaN).

### Function API

The original function-based API is still available:

```python
bbi.is_bbi(path: str) -> bool
bbi.is_bigwig(path: str) -> bool
bbi.is_bigbed(path:str) -> bool
bbi.chromsizes(path: str) -> OrderedDict
bbi.zooms(path: str) -> list
bbi.info(path: str) -> dict
bbi.fetch_intervals(path: str, chrom: str, start: int, end: int, iterator: bool) -> Union[Iterable, pd.DataFrame]
bbi.fetch(path: str, chrom: str, start: int, end: int, [bins: int [, missing: float [, oob: float, [, summary: str]]]]) -> np.array[1, 'float64']
bbi.stackup(path: str, chroms: np.array, starts: np.array, ends: np.array, [bins: int [, missing: float [, oob: float, [, summary: str]]]]) -> np.array[2, 'float64']
```

See the docstrings for complete documentation.

## Related projects ##

- [bigtools](https://github.com/jackh726/bigtools): Alternative BBI library written in Rust with Python bindings; by Jack Huey
- [libBigWig](https://github.com/dpryan79/libBigWig): Alternative BBI library written in C; by Devon Ryan
- [pyBigWig](https://github.com/dpryan79/pyBigWig): Python bindings for `libBigWig`
- [bw-python](https://github.com/brentp/bw-python): Alternative Python wrapper to `libBigWig` by Brent Pederson
- [bx-python](https://github.com/bxlab/bx-python): Python bioinformatics library from James Taylor's group that includes tools for bbi files.

This library provides bindings to the reference UCSC bbi library code. Check out [@dpryan79](https://github.com/dpryan79)'s [libBigWig](https://github.com/dpryan79/libBigWig) for an alternative and dedicated C library for big binary files. pyBigWig also provides numpy-based retrieval and bigBed support.

## References ##

<a id="ref1">[1]</a>: http://bioinformatics.oxfordjournals.org/content/26/17/2204.full

## From source ##

If wheels for your platform or Python version aren't available or you want to develop, you'll need to install `pybbi` from source. The source distribution on PyPI ships with (slightly modified) kent utils source, which will compile before the extension module is built.

Requires
- Platform: Linux or Darwin (Windows Subsystem for Linux seems to work too)
- pthreads, zlib, libpng, openssl, make, pkg-config
- Python 3.6+
- `numpy` and `cython`

For example, on a fresh Ubuntu instance, you'll need `build-essential`, `make`, `pkg-config`, `zlib1g-dev`, `libssl-dev`, `libpng16-dev`.

On a Centos/RedHat (rpm) system you'll need `gcc`, `make`, `pkg-config`, `zlib-devel`, `openssl-devel`, `libpng-devel`.

On a Mac, you'll need Xcode and to `brew install pkg-config openssl libpng`.

For development, clone the repo and install in editable mode:

```
$ git clone https://github.com/nvictus/pybbi.git
$ cd pybbi
$ pip install -e .
```

You can use the `ARCH` environment variable to specify a target architecture or `ARCHFLAGS` on a Mac.

### Notes

Unfortunately, Kent's C source is not well-behaved library code, as it is littered with error calls that call `exit()`. `pybbi` will catch and pre-empt common input errors, but if somehow an internal error does get raised, it will terminate your interpreter instance.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pybbi",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "genomics, bioinformatics, bigwig, bigbed, bigbinaryindexed, bbi, ucsc",
    "author": null,
    "author_email": "Nezar Abdennur <nabdennur@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/f5/83/33a52ad666d93564e58986a78226dfb9dc7f52a75b36dcf8271f671f8eb1/pybbi-0.4.2.tar.gz",
    "platform": null,
    "description": "# pybbi #\n\n![Build Status](https://github.com/nvictus/pybbi/actions/workflows/ci.yml/badge.svg)\n[![DOI](https://zenodo.org/badge/58960207.svg)](https://zenodo.org/doi/10.5281/zenodo.10382980)\n\nPython interface to Jim Kent's Big Binary Indexed file (BBI) \\[[1](#ref1)\\] library from the [UCSC Genome Browser source tree](https://github.com/ucscGenomeBrowser/kent) using Cython.\n\nThis provides read-level access to local and remote bigWig and bigBed files but no write capabilitites. The main feature is fast retrieval of range queries into numpy arrays.\n\n\n## Installation ##\n\nWheels for `pybbi` are available on PyPI for Python 3.8, 3.9, 3.10, 3.11 on Linux (x86_64 and aarch64) and Mac OSX (x86_64/Intel). Apple Silicon (arm64) wheels will be made available once M1 runners are available in GitHub Actions.\n\n```\n$ pip install pybbi\n```\n\n## API ##\n\nThe `bbi.open` function returns a `BBIFile` object.\n\n```\nbbi.open(path) -> BBIFile\n```\n\n`path` can be a local file path (bigWig or bigBed) or a URL. `BBIFile` objects are context managers and can be used in a `with` statement to clean up resources without calling `BBIFile.close()`.\n\n```python\n>>> with bbi.open('bigWigExample.bw') as f:\n...     x = f.fetch('chr21', 1000000, 2000000, bins=40)\n```\n\n### Introspection\n\n```\nBBIFile.is_bigwig -> bool\nBBIFile.is_bigbed -> bool\nBBIFile.chromsizes -> OrderedDict\nBBIFile.zooms -> list\nBBIFile.info -> dict\nBBIFile.schema -> dict\nBBIFile.read_autosql() -> str\n```\n\nNote: `BBIFile.schema['dtypes']` provides numpy data types for the fields in a bigWig or bigBed (matched from the autoSql definition).\n\n\n### Interval output\n\nThe actual interval records in a bigWig or bigBed can be retrieved as a pandas dataframe or as an iterator over records as tuples. The pandas output is parsed according to the file's schema.\n\n```\nBBIFile.fetch_intervals(chrom, start, end) -> pandas.DataFrame\nBBIFile.fetch_intervals(chrom, start, end, iterator=True) -> interval iterator\n```\n\nSummary bin records at each zoom level are also accessible.\n\n```\nBBIFile.fetch_summaries(chrom, start, end, zoom) -> pandas.DataFrame\n```\n\n### Array output\n\nRetrieve quantitative signal as an array. The signal of a bigWig file is obtained from its \"value\" field. The signal of a bigBed file is obtained from the genomic coverage of its intervals.\n\nFor a single range query:\n```\nBBIFile.fetch(chrom, start, end, [bins [, missing [, oob, [, summary]]]]) -> 1D numpy array\n```\n\nTo produce a stacked heatmap from a list of (1) equal-length intervals or (2) arbitrary-length intervals with `bins` specified:\n```\nBBIFile.stackup(chroms, starts, ends, [bins [, missing [, oob, [, summary]]]]) -> 2D numpy array\n```\n\n* **Summary** querying is supported by specifying the number of `bins` for coarsening. The `summary` statistic can be one of: 'mean', 'min', 'max', 'cov', 'std', 'or 'sum'. (default = 'mean'). Intervals need not have the same length, in which case the data from each interval will be interpolated to the same number of bins (e.g., gene bodies).\n\n* **Missing** data can be filled with a custom fill value, `missing` (default = 0). \n\n* **Out-of-bounds** ranges (i.e. `start` less than zero or `end` greater than the chromosome length) are permitted because of their utility e.g., for generating vertical heatmap stacks centered at specific genomic features. A separate custom fill value, `oob` can be provided for out-of-bounds positions (default = NaN).\n\n### Function API\n\nThe original function-based API is still available:\n\n```python\nbbi.is_bbi(path: str) -> bool\nbbi.is_bigwig(path: str) -> bool\nbbi.is_bigbed(path:str) -> bool\nbbi.chromsizes(path: str) -> OrderedDict\nbbi.zooms(path: str) -> list\nbbi.info(path: str) -> dict\nbbi.fetch_intervals(path: str, chrom: str, start: int, end: int, iterator: bool) -> Union[Iterable, pd.DataFrame]\nbbi.fetch(path: str, chrom: str, start: int, end: int, [bins: int [, missing: float [, oob: float, [, summary: str]]]]) -> np.array[1, 'float64']\nbbi.stackup(path: str, chroms: np.array, starts: np.array, ends: np.array, [bins: int [, missing: float [, oob: float, [, summary: str]]]]) -> np.array[2, 'float64']\n```\n\nSee the docstrings for complete documentation.\n\n## Related projects ##\n\n- [bigtools](https://github.com/jackh726/bigtools): Alternative BBI library written in Rust with Python bindings; by Jack Huey\n- [libBigWig](https://github.com/dpryan79/libBigWig): Alternative BBI library written in C; by Devon Ryan\n- [pyBigWig](https://github.com/dpryan79/pyBigWig): Python bindings for `libBigWig`\n- [bw-python](https://github.com/brentp/bw-python): Alternative Python wrapper to `libBigWig` by Brent Pederson\n- [bx-python](https://github.com/bxlab/bx-python): Python bioinformatics library from James Taylor's group that includes tools for bbi files.\n\nThis library provides bindings to the reference UCSC bbi library code. Check out [@dpryan79](https://github.com/dpryan79)'s [libBigWig](https://github.com/dpryan79/libBigWig) for an alternative and dedicated C library for big binary files. pyBigWig also provides numpy-based retrieval and bigBed support.\n\n## References ##\n\n<a id=\"ref1\">[1]</a>: http://bioinformatics.oxfordjournals.org/content/26/17/2204.full\n\n## From source ##\n\nIf wheels for your platform or Python version aren't available or you want to develop, you'll need to install `pybbi` from source. The source distribution on PyPI ships with (slightly modified) kent utils source, which will compile before the extension module is built.\n\nRequires\n- Platform: Linux or Darwin (Windows Subsystem for Linux seems to work too)\n- pthreads, zlib, libpng, openssl, make, pkg-config\n- Python 3.6+\n- `numpy` and `cython`\n\nFor example, on a fresh Ubuntu instance, you'll need `build-essential`, `make`, `pkg-config`, `zlib1g-dev`, `libssl-dev`, `libpng16-dev`.\n\nOn a Centos/RedHat (rpm) system you'll need `gcc`, `make`, `pkg-config`, `zlib-devel`, `openssl-devel`, `libpng-devel`.\n\nOn a Mac, you'll need Xcode and to `brew install pkg-config openssl libpng`.\n\nFor development, clone the repo and install in editable mode:\n\n```\n$ git clone https://github.com/nvictus/pybbi.git\n$ cd pybbi\n$ pip install -e .\n```\n\nYou can use the `ARCH` environment variable to specify a target architecture or `ARCHFLAGS` on a Mac.\n\n### Notes\n\nUnfortunately, Kent's C source is not well-behaved library code, as it is littered with error calls that call `exit()`. `pybbi` will catch and pre-empt common input errors, but if somehow an internal error does get raised, it will terminate your interpreter instance.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python bindings to the UCSC source for Big Binary Indexed (bigWig/bigBed) files.",
    "version": "0.4.2",
    "project_urls": {
        "documentation": "https://github.com/nvictus/pybbi#README.md",
        "homepage": "https://github.com/nvictus/pybbi",
        "repository": "https://github.com/nvictus/pybbi"
    },
    "split_keywords": [
        "genomics",
        " bioinformatics",
        " bigwig",
        " bigbed",
        " bigbinaryindexed",
        " bbi",
        " ucsc"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e0a9c2d4dbcc80c5406ca0a532fe632e16b2eda194b1da1754b82bc7d7ca7248",
                "md5": "732c8dd988ef3c4a053e8ae566aa1fad",
                "sha256": "4893409bb7b51c81759d43f6b15e2b4dc6d3de20e5e39b9ea4b8ff1bbfcc17a0"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp310-cp310-macosx_13_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "732c8dd988ef3c4a053e8ae566aa1fad",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 2936500,
            "upload_time": "2025-10-30T17:09:13",
            "upload_time_iso_8601": "2025-10-30T17:09:13.405119Z",
            "url": "https://files.pythonhosted.org/packages/e0/a9/c2d4dbcc80c5406ca0a532fe632e16b2eda194b1da1754b82bc7d7ca7248/pybbi-0.4.2-cp310-cp310-macosx_13_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "33aab6ae0e4fc80d5306a4180efb73d03413a5104953089d6e46b04cf6945b1c",
                "md5": "0bcdd08c8e05ef5ddd25fbe76cb1b833",
                "sha256": "684c76ef134ee2815f02ef8ba0fb5f270fe45a127a092c24204311cd6e45a2bb"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp310-cp310-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "0bcdd08c8e05ef5ddd25fbe76cb1b833",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 3225149,
            "upload_time": "2025-10-30T17:09:15",
            "upload_time_iso_8601": "2025-10-30T17:09:15.736193Z",
            "url": "https://files.pythonhosted.org/packages/33/aa/b6ae0e4fc80d5306a4180efb73d03413a5104953089d6e46b04cf6945b1c/pybbi-0.4.2-cp310-cp310-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "40c1f7c95688e21d9c65717dc088945e31848b66bf904870b8fda1316b4e5490",
                "md5": "0a9627a0f11aa6a74f2a9a04f6e3ff00",
                "sha256": "20914802a4b3a9d46b2eed811ff77f8fb9d26d1bc4af9168ce3f33ffbd564518"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "0a9627a0f11aa6a74f2a9a04f6e3ff00",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 3081199,
            "upload_time": "2025-10-30T17:09:17",
            "upload_time_iso_8601": "2025-10-30T17:09:17.272971Z",
            "url": "https://files.pythonhosted.org/packages/40/c1/f7c95688e21d9c65717dc088945e31848b66bf904870b8fda1316b4e5490/pybbi-0.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6d3a9b3fd6dcf58ead95c267fc819df9647700cc69200e992014b80e43f69b65",
                "md5": "2ed5966638928de97908444f3da23e1f",
                "sha256": "1965c3620f18546d65e85b1b99d5306303ffbc2fdbbeae93ab3a86dc96ac8669"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2ed5966638928de97908444f3da23e1f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.7",
            "size": 3399481,
            "upload_time": "2025-10-30T17:09:18",
            "upload_time_iso_8601": "2025-10-30T17:09:18.944228Z",
            "url": "https://files.pythonhosted.org/packages/6d/3a/9b3fd6dcf58ead95c267fc819df9647700cc69200e992014b80e43f69b65/pybbi-0.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8f50bfdfde6d757c3d986f23467131511350a9de71a766c0063930ff70bc46bf",
                "md5": "f1af75c500f07df2b1ee87bf96f78efa",
                "sha256": "145869f0c8e3ebca352df3477a43e15407b8dc1bf409081ea89d6498ace634de"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp311-cp311-macosx_13_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f1af75c500f07df2b1ee87bf96f78efa",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 2933866,
            "upload_time": "2025-10-30T17:09:21",
            "upload_time_iso_8601": "2025-10-30T17:09:21.063352Z",
            "url": "https://files.pythonhosted.org/packages/8f/50/bfdfde6d757c3d986f23467131511350a9de71a766c0063930ff70bc46bf/pybbi-0.4.2-cp311-cp311-macosx_13_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3f1e9c439b06647a84f769d8cf1ae35a54bfe0ad81c40bc26aea7c5130a1674c",
                "md5": "81d847153238f54850f51f6df02e146b",
                "sha256": "ad8546cd8871a6b112980b00bbcd31ad409e4a24e979a6cd3114cc645b433b91"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp311-cp311-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "81d847153238f54850f51f6df02e146b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 3223265,
            "upload_time": "2025-10-30T17:09:23",
            "upload_time_iso_8601": "2025-10-30T17:09:23.059709Z",
            "url": "https://files.pythonhosted.org/packages/3f/1e/9c439b06647a84f769d8cf1ae35a54bfe0ad81c40bc26aea7c5130a1674c/pybbi-0.4.2-cp311-cp311-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8bc8589d044a3a1e63c772da4446d1d6f452225e45d9fe360eb5aa3f8efdd140",
                "md5": "a3e77abdb5692e42b0ad8ac252cc6fc9",
                "sha256": "7a7aeeb5a3d81a6331d19901e1a2c6cdcee9edb273b3aaa1b3e954e92d165030"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "a3e77abdb5692e42b0ad8ac252cc6fc9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 3109825,
            "upload_time": "2025-10-30T17:09:24",
            "upload_time_iso_8601": "2025-10-30T17:09:24.620979Z",
            "url": "https://files.pythonhosted.org/packages/8b/c8/589d044a3a1e63c772da4446d1d6f452225e45d9fe360eb5aa3f8efdd140/pybbi-0.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "86ceb296d5e51276d88a2e51070ed97f76eedba639767204987cc6a465ae564f",
                "md5": "0192577135936fc5ffb22c320bafa149",
                "sha256": "0a91937f82e3f6f0ae011711fc175d2b2ec1decce0af62435ae0bd297c5d3633"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0192577135936fc5ffb22c320bafa149",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.7",
            "size": 3428525,
            "upload_time": "2025-10-30T17:09:26",
            "upload_time_iso_8601": "2025-10-30T17:09:26.293686Z",
            "url": "https://files.pythonhosted.org/packages/86/ce/b296d5e51276d88a2e51070ed97f76eedba639767204987cc6a465ae564f/pybbi-0.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3f74af3bfdecdacb64e35bffea2513541d71f8ea7358f5004880e37a2414b5f2",
                "md5": "ee876734be51cbd57adfc5f7fa14e188",
                "sha256": "5d1fad3d46787ea5905e5f1080b16dfb83d67c8d83225efe3169d4dcf27eb612"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp312-cp312-macosx_13_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ee876734be51cbd57adfc5f7fa14e188",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 2943529,
            "upload_time": "2025-10-30T17:09:28",
            "upload_time_iso_8601": "2025-10-30T17:09:28.849580Z",
            "url": "https://files.pythonhosted.org/packages/3f/74/af3bfdecdacb64e35bffea2513541d71f8ea7358f5004880e37a2414b5f2/pybbi-0.4.2-cp312-cp312-macosx_13_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "026638380935e7d3856fe5daf0694880f8330631d09bf73b2b30d8e576eeb12b",
                "md5": "29a8c20c618102f8954cae3a4f0cfa11",
                "sha256": "37ed8946551a9a5efc9e426d7b86248e845c51b803d48016027a7c8a1a9fce33"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp312-cp312-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "29a8c20c618102f8954cae3a4f0cfa11",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 3232894,
            "upload_time": "2025-10-30T17:09:31",
            "upload_time_iso_8601": "2025-10-30T17:09:31.132587Z",
            "url": "https://files.pythonhosted.org/packages/02/66/38380935e7d3856fe5daf0694880f8330631d09bf73b2b30d8e576eeb12b/pybbi-0.4.2-cp312-cp312-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "361fabbe9be6b0f501a7ff182f1c6534b8f83b69c97630776d8e482a2d4d9bf7",
                "md5": "e0e4fceb1589061d5282f6e1a478ce65",
                "sha256": "36dc0add6f54d1763bf247b2cff87eaf2c81a26da18d49ac33de164d6baec2df"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e0e4fceb1589061d5282f6e1a478ce65",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 3099983,
            "upload_time": "2025-10-30T17:09:32",
            "upload_time_iso_8601": "2025-10-30T17:09:32.928966Z",
            "url": "https://files.pythonhosted.org/packages/36/1f/abbe9be6b0f501a7ff182f1c6534b8f83b69c97630776d8e482a2d4d9bf7/pybbi-0.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b0e735195b5292b6ccdcaaa655a2dad615b9217f52ac18b9dfdf8afec82521a6",
                "md5": "d89c0ded3d5f5fb4503645ed3c4cf306",
                "sha256": "7d587a05d7eed4d1fb92e3f62ad52e8389c7a6b315bc430a6eb678760106740e"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d89c0ded3d5f5fb4503645ed3c4cf306",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.7",
            "size": 3420434,
            "upload_time": "2025-10-30T17:09:34",
            "upload_time_iso_8601": "2025-10-30T17:09:34.693682Z",
            "url": "https://files.pythonhosted.org/packages/b0/e7/35195b5292b6ccdcaaa655a2dad615b9217f52ac18b9dfdf8afec82521a6/pybbi-0.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5372ac475ad1726f132fc272882b43defddfe09a831815a741850d2c510d7f0e",
                "md5": "d364d6b01da4112496a6777b4134a0c2",
                "sha256": "54b9e541bb455aeb30f88f09c70b7a4b72f6a0ae0e2e7f2bc9798f2e647b3d16"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp313-cp313-macosx_13_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d364d6b01da4112496a6777b4134a0c2",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 2943356,
            "upload_time": "2025-10-30T17:09:36",
            "upload_time_iso_8601": "2025-10-30T17:09:36.180136Z",
            "url": "https://files.pythonhosted.org/packages/53/72/ac475ad1726f132fc272882b43defddfe09a831815a741850d2c510d7f0e/pybbi-0.4.2-cp313-cp313-macosx_13_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1bd34e27f36ae7f0fc933330239d7b76debf6ef67dbd7fef722f3ba1e7cfb9cc",
                "md5": "c9af7d6f869389a7fda784098033d066",
                "sha256": "2c6472900a6688d604ccfd406138337e5d5b9db442a13715ce7abbf2cb98b841"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp313-cp313-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "c9af7d6f869389a7fda784098033d066",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 3232770,
            "upload_time": "2025-10-30T17:09:37",
            "upload_time_iso_8601": "2025-10-30T17:09:37.803684Z",
            "url": "https://files.pythonhosted.org/packages/1b/d3/4e27f36ae7f0fc933330239d7b76debf6ef67dbd7fef722f3ba1e7cfb9cc/pybbi-0.4.2-cp313-cp313-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8e252cbcd423c16ceb6eaedc39d797ff8b31119fcb5d71910b5336dbefb942d5",
                "md5": "ca07c7ceb8a551e5352ba8d4f8a997dc",
                "sha256": "20ee599e318238b177b2c31dbe7789034ea0bfa9716e0aa06d387d7cc9f78938"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "ca07c7ceb8a551e5352ba8d4f8a997dc",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 3095788,
            "upload_time": "2025-10-30T17:09:39",
            "upload_time_iso_8601": "2025-10-30T17:09:39.523300Z",
            "url": "https://files.pythonhosted.org/packages/8e/25/2cbcd423c16ceb6eaedc39d797ff8b31119fcb5d71910b5336dbefb942d5/pybbi-0.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "15b2dbaaaa0901785caad9317c0eedf97eaa3d841e1c05589a9388ce67c9d53f",
                "md5": "d21ae2f5cc4b38fd9dae86589e1db97d",
                "sha256": "ce9afaf149c89b01dfa2926febe53b73b174be0cc5febfd4cfee9f1e72083f50"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d21ae2f5cc4b38fd9dae86589e1db97d",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.7",
            "size": 3414507,
            "upload_time": "2025-10-30T17:09:41",
            "upload_time_iso_8601": "2025-10-30T17:09:41.605062Z",
            "url": "https://files.pythonhosted.org/packages/15/b2/dbaaaa0901785caad9317c0eedf97eaa3d841e1c05589a9388ce67c9d53f/pybbi-0.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0e14183e404d9015b880fde46e452190b6efe6c95dd6bf1cef28265abeba92b8",
                "md5": "0d0139795b97415ea8d018cc0db549f6",
                "sha256": "b685fc3c72a64672e87cc590146ee91bb97b1b5cb061a85fbe5ade679ef7b5fb"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp39-cp39-macosx_13_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0d0139795b97415ea8d018cc0db549f6",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 2936711,
            "upload_time": "2025-10-30T17:09:43",
            "upload_time_iso_8601": "2025-10-30T17:09:43.377148Z",
            "url": "https://files.pythonhosted.org/packages/0e/14/183e404d9015b880fde46e452190b6efe6c95dd6bf1cef28265abeba92b8/pybbi-0.4.2-cp39-cp39-macosx_13_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f6cc27c610695e6e746021d3ae311f9572aa7cd57796806fd54328ae67a8d5ec",
                "md5": "fc42f84a009daa24b77337a30ae28586",
                "sha256": "093c3efb6a6454397be6ffbcd37f8719107300ea02f4ec3066583a0bf87f16b3"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp39-cp39-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "fc42f84a009daa24b77337a30ae28586",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 3225304,
            "upload_time": "2025-10-30T17:09:45",
            "upload_time_iso_8601": "2025-10-30T17:09:45.117392Z",
            "url": "https://files.pythonhosted.org/packages/f6/cc/27c610695e6e746021d3ae311f9572aa7cd57796806fd54328ae67a8d5ec/pybbi-0.4.2-cp39-cp39-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a6c2d73f53bcf6605e8c0740fb486838d1750da2e2091dae4e7b8733aa004110",
                "md5": "c07773e671d5f4d9a0baf64c951868c8",
                "sha256": "31ac2493b598a4568c5a16c0a575e41633afbe5da3084d0ef2cdcbed1b26031b"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "c07773e671d5f4d9a0baf64c951868c8",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 3077589,
            "upload_time": "2025-10-30T17:09:46",
            "upload_time_iso_8601": "2025-10-30T17:09:46.863177Z",
            "url": "https://files.pythonhosted.org/packages/a6/c2/d73f53bcf6605e8c0740fb486838d1750da2e2091dae4e7b8733aa004110/pybbi-0.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a6cac3af682d723805a06868f5d3cb00fe5b4d7f7452db4a672b7526f87285f7",
                "md5": "234bf13e7096d24db30b371b3277fec5",
                "sha256": "be8bf199a520b75c4708b90d3245d183138728895fad0a145eb36bc038d39b3b"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "234bf13e7096d24db30b371b3277fec5",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.7",
            "size": 3396498,
            "upload_time": "2025-10-30T17:09:48",
            "upload_time_iso_8601": "2025-10-30T17:09:48.549263Z",
            "url": "https://files.pythonhosted.org/packages/a6/ca/c3af682d723805a06868f5d3cb00fe5b4d7f7452db4a672b7526f87285f7/pybbi-0.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f58333a52ad666d93564e58986a78226dfb9dc7f52a75b36dcf8271f671f8eb1",
                "md5": "702cf695e2831cc6e66d6b8b97a7a275",
                "sha256": "b9daa5f04cf5641c3addd729737d649c439f440082fe783c28be3353d2aa444b"
            },
            "downloads": -1,
            "filename": "pybbi-0.4.2.tar.gz",
            "has_sig": false,
            "md5_digest": "702cf695e2831cc6e66d6b8b97a7a275",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 34725029,
            "upload_time": "2025-10-30T17:09:51",
            "upload_time_iso_8601": "2025-10-30T17:09:51.165692Z",
            "url": "https://files.pythonhosted.org/packages/f5/83/33a52ad666d93564e58986a78226dfb9dc7f52a75b36dcf8271f671f8eb1/pybbi-0.4.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-30 17:09:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "nvictus",
    "github_project": "pybbi#README.md",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pybbi"
}
        
Elapsed time: 1.00557s