Skip to main content

bnbpy

Tests Ruff Mypy

A generic, configurable Python framework for solving optimization problems using Branch & Bound. Also supports Column Generation and Branch & Price.

📖 Documentation

Configure | Usage | Base Problems | Development | Contact

See more examples in the notebooks folder:

Configuration

Installation

PyPI

The bnbpy package is available in PyPI. So you can install it with a simple.

pip install bnbpy

Source Code

Alternatively, you can clone the repository and build it locally on your computer. Ensure you have a c++ compiler available due to Cython and c++ core components.

To clone the repository, you can run:

git clone https://github.com/bruscalia/bnbpy.git
cd bnbpy

Install the package and its dependencies via pip from the root of the repository:

python -m pip install .

To include development resources for running bnbprob, tests, and linters, use the dev extra:

python -m pip install .[dev]

For editable (development) mode, which allows you to track changes in the source files:

python -m pip install -e .[dev]

All package dependencies and metadata are specified in setup.cfg. Build requirements and extension settings are in pyproject.toml.

Building

To build Cython extensions, run:

python setup.py build_ext --inplace

Be aware of deprecated commands in setup.py. See here for more information.

To build wheels for distribution, run:

python -m build --wheel

Usage

Branch & Bound

from bnbpy import BranchAndBound, Problem

class MyProblem(Problem):
    # Define your problem specifications by implementing abstract methods

    def calc_bound(self):
        # Compute node lower bound
        pass

    def is_feasible(self):
        # Verify if node is feasible in the complete problem
        pass

    def branch(self):
        # Return a list of subproblems if not fathomed
        pass

# Apply Branch & Bound
problem = MyProblem()
bnb = BranchAndBound()
bnb.solve(problem)
print(bnb.solution)

Branch & Price

import bnbpy as bbp

class MyMaster(bbp.Master):
    def __init__(self, *args):
        # Implement your master problem
        pass

    def add_col(self, c) -> bool:
        # Include a new column and return True if accepted
        return True

    def solve(self) -> bbp.MasterSol:
        # cost = ...
        # duals = ...
        # return MasterSol(cost=cost, duals=duals)
        pass

class MyPricing(bbp.Pricing):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        # Instantiate your pricing problem

    def set_weights(self, c):
        # Modify the instance by incorporating new weights
        pass

    def solve(self) -> bbp.PriceSol:
        # red_cost = ...
        # new_col = ...
        # return PriceSol(red_cost=red_cost, new_col=new_col)
        pass

class MyCG(bbp.ColumnGenProblem):
    def __init__(self, **kwargs):
        master = MyMaster()
        pricing = MyPricing(**kwargs)
        super().__init__(
            master=master,
            pricing=pricing,
        )

    def branch(self) -> list['MyCG'] | None:
        # Create children
        pass

    def is_feasible(self) -> bool:
        # Check for feasibility in the complete formulation
        pass

Base Problems

The bnbprob package incorporates elements of bnbpy to solve classical examples. It is installed alongside bnbpy.

See examples for MILP, Permutation Flow Shop, and Graph Coloring problems below.

MILP

The MILP implementation is based on scipy.optimize.linprog for solving LPs.

import numpy as np

from bnbprob.milpy import MILP
from bnbpy import BranchAndBound

# Simple problem
c = np.array([-5.0, -4.0])

A_ub = np.array([
    [2.0, 3.0],
    [2.0, 1.0]
])
b_ub = np.array([12.0, 6.0])

milp = MILP(c, A_ub=A_ub, b_ub=b_ub)
bfs = BranchAndBound()
sol = bfs.solve(milp)
print(f"Sol: {sol} | x: {sol.x}")
# >>> Sol: Status: OPTIMAL | Cost: -18.0 | LB: -18.0 | x: [2. 2.]

Permutation Flow Shop

In this example, an instance from the literature with 20 jobs on 10 machines is solved. It takes less than 0.1 second, which is an impressive performance even compared to the best commercial MILP solvers.

import json
from bnbprob.pafssp import CallbackBnB, PermFlowShop, plot_gantt

with open("./data/flow-shop/reC11.json", mode="r", encoding="utf8") as f:
    p = json.load(f)

problem = PermFlowShop.from_p(p, constructive='neh')
bnb = CallbackBnB()

# The commercial solver Gurobi took 600s (timeout) to find the near-optimal
# solution 1432
sol = bnb.solve(
    problem, maxiter=1000000, timelimit=600
)
print(sol)
# >>> Status: OPTIMAL | Cost: 1431 | LB: 1431

plot_gantt(sol.sequence, figsize=[8, 3])

pfssp

Graph Coloring

To illustrate the usability of the Branch & Price feature, the implementation of Graph Coloring outperforms commercial solvers with basic MILP modeling.

from bnbprob import gcol
from bnbpy import BranchAndBound

# Instances are available in the 'data' folder
instance = gcol.load_instance("./data/gcol/gcol_70_7.txt")

# Solve a 70-node instance to optimality in 24s
# With only heuristics to generate columns, it took only 14s
# The commercial solver Gurobi took 81s to find the optimal solution
# but could only prove optimality within 51 min
bnb = BranchAndBound()
price_tol = 0.1
pricing = gcol.ColorHybrPricing(
    instance["edges"],
    heur=gcol.TargetMultiStart(
        12, price_tol + 1, 20, 200
    ),
    price_tol=price_tol
)
problem = gcol.ColGenColor(
    instance['edges'],
    pricing=pricing,
    max_iter_price=1000,
)
sol = bnb.solve(problem, maxiter=1000)
print(sol)
# >>> Status: OPTIMAL | Cost: 17 | LB: 17

Development

Code Quality

This project uses Ruff as a linter and Mypy as a static type checker. Both are configured in pyproject.toml.

mypy src/
ruff check src/

Tests

Tests are configured in pyproject.toml. The package pytest is used as the main framework. To run tests, execute:

pytest

To track code coverage of the main package bnbpy, run:

pytest --cov=bnbpy --cov-report=html

Most of the package is already cythonized, so the coverage loses its meaning when raw.

Contact

Reach out to me at bruscalia12@gmail.com if you have any questions.

Metadata

Release files for bnbpy 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bnbpy 0.1.0
File Size Uploaded Provenance Actions
bnbpy-0.1.0.tar.gz 1.3 MB Without provenance Details for bnbpy-0.1.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for bnbpy 0.1.0
File Actions
bnbpy-0.1.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for bnbpy-0.1.0-cp314-cp314-win_amd64.whl
bnbpy-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details for bnbpy-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl
bnbpy-0.1.0-cp314-cp314-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ ARM64 Details for bnbpy-0.1.0-cp314-cp314-musllinux_1_2_aarch64.whl
bnbpy-0.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for bnbpy-0.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
bnbpy-0.1.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.24+ ARM64, Linux glibc 2.28+ ARM64 Details for bnbpy-0.1.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
bnbpy-0.1.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for bnbpy-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
bnbpy-0.1.0-cp314-cp314-macosx_10_15_universal2.whl CPython 3.14 CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64) Details for bnbpy-0.1.0-cp314-cp314-macosx_10_15_universal2.whl
bnbpy-0.1.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for bnbpy-0.1.0-cp313-cp313-win_amd64.whl
bnbpy-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for bnbpy-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
bnbpy-0.1.0-cp313-cp313-musllinux_1_2_aarch64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ ARM64 Details for bnbpy-0.1.0-cp313-cp313-musllinux_1_2_aarch64.whl
bnbpy-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details for bnbpy-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
bnbpy-0.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.24+ ARM64 Details for bnbpy-0.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
bnbpy-0.1.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for bnbpy-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
bnbpy-0.1.0-cp313-cp313-macosx_10_13_universal2.whl CPython 3.13 CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) Details for bnbpy-0.1.0-cp313-cp313-macosx_10_13_universal2.whl
bnbpy-0.1.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for bnbpy-0.1.0-cp312-cp312-win_amd64.whl
bnbpy-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for bnbpy-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
bnbpy-0.1.0-cp312-cp312-musllinux_1_2_aarch64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ ARM64 Details for bnbpy-0.1.0-cp312-cp312-musllinux_1_2_aarch64.whl
bnbpy-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for bnbpy-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
bnbpy-0.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.24+ ARM64, Linux glibc 2.28+ ARM64 Details for bnbpy-0.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
bnbpy-0.1.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for bnbpy-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
bnbpy-0.1.0-cp312-cp312-macosx_10_13_universal2.whl CPython 3.12 CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) Details for bnbpy-0.1.0-cp312-cp312-macosx_10_13_universal2.whl
bnbpy-0.1.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for bnbpy-0.1.0-cp311-cp311-win_amd64.whl
bnbpy-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details for bnbpy-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
bnbpy-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ ARM64 Details for bnbpy-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl
bnbpy-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for bnbpy-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
bnbpy-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.24+ ARM64, Linux glibc 2.28+ ARM64 Details for bnbpy-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
bnbpy-0.1.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for bnbpy-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
bnbpy-0.1.0-cp311-cp311-macosx_10_9_universal2.whl CPython 3.11 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) Details for bnbpy-0.1.0-cp311-cp311-macosx_10_9_universal2.whl
bnbpy-0.1.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for bnbpy-0.1.0-cp310-cp310-win_amd64.whl
bnbpy-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details for bnbpy-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
bnbpy-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ ARM64 Details for bnbpy-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl
bnbpy-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for bnbpy-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
bnbpy-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64, Linux glibc 2.24+ ARM64 Details for bnbpy-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
bnbpy-0.1.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for bnbpy-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
bnbpy-0.1.0-cp310-cp310-macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) Details for bnbpy-0.1.0-cp310-cp310-macosx_10_9_universal2.whl

Total release size: 337.9 MB

Release files / bnbpy-0.1.0.tar.gz

Download URL bnbpy-0.1.0.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
750da1ec4dd4c91ccd9187b8bb1355c218d5fd145f70c680009820ef4f717c1f
BLAKE2b-256 checksum
How to use checksums
f862b07d04e4b4ccec59fb21a084466b8b42b9cb4f34c6db4f2ac7129a6e527f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp314-cp314-win_amd64.whl

Download URL bnbpy-0.1.0-cp314-cp314-win_amd64.whl
Size 720.3 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
be37c4d2c313a4e5a7dd333800459b7fc5665af45a5a1792667f2cb700b6bb27
BLAKE2b-256 checksum
How to use checksums
c70a4a19f60a7ce783ef9f759bf15bd68d1838f516b605a25afc3bf380ab160a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL bnbpy-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl
Size 16.4 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
8eb3decaa61f8a547efe1771f155506bb39774eeec4665a68207254aab214bea
BLAKE2b-256 checksum
How to use checksums
619c6b6fa9477734505f970bf4c458cbf42182677013c5052b341dd020942c44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp314-cp314-musllinux_1_2_aarch64.whl

Download URL bnbpy-0.1.0-cp314-cp314-musllinux_1_2_aarch64.whl
Size 16.0 MB
Tags CPython 3.14 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
a3bea574bee0b2b7c3a136ecb287aeed722cb77683928d176f53321dacb3da62
BLAKE2b-256 checksum
How to use checksums
2015cc8f9d4c4698e3b9c006b8ad464e164f6f3b9bbe4a96d20b81954147efea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL bnbpy-0.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 15.7 MB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
26ea69b0a3e2f945c7067d787ea03bc3e3be9d718dbe787246be71c51fe2e447
BLAKE2b-256 checksum
How to use checksums
7166bd8b764bc73ceaf425106538fe4b1c9e6d9e844e3debf1b2e1f744965040
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL bnbpy-0.1.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 15.5 MB
Tags CPython 3.14 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
877de23e823c4cc61044b69a22913f4be4d1e025b431658735ebb43625447fe7
BLAKE2b-256 checksum
How to use checksums
f851b12b95e9b8476abc9de2ccda10ff24df3c0730062b8a4ded6eec6fbccbac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL bnbpy-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
Size 1.0 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e2835a2a75972951fb8af88a046f3ed7ba234bc8b82ab9a023133e59b3ee5f22
BLAKE2b-256 checksum
How to use checksums
df4ea2e9f74d870433def03e6ae615a30830b4f25623d74897ee527ec14b6ea6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp314-cp314-macosx_10_15_universal2.whl

Download URL bnbpy-0.1.0-cp314-cp314-macosx_10_15_universal2.whl
Size 1.9 MB
Tags CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
3f53f04f0ea4e7f71dad445ccda4439701bcf81ea19b7774d68f664d2c508e89
BLAKE2b-256 checksum
How to use checksums
f2f0db210bf0e913baaf512cd85f6bb3c67c7e8ea805d759fd7a2188189f25b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp313-cp313-win_amd64.whl

Download URL bnbpy-0.1.0-cp313-cp313-win_amd64.whl
Size 703.5 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
2bc3c3310acd967059da7345f6120718fbd32da9c6f7e1180cfce8369e661ee6
BLAKE2b-256 checksum
How to use checksums
623cce1eb8ea4de067103b0df99873412d364c353cca741ff569a80acb913f84
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL bnbpy-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 16.4 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
a9432abf0e0b2a1135ffa8a2d44f596c2783b30e040990a9eb83aaef5d7f412c
BLAKE2b-256 checksum
How to use checksums
e721a6e56f938bcd990c0fb77f9acb76adc341118a6bd7bdca969e6b0f08a752
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp313-cp313-musllinux_1_2_aarch64.whl

Download URL bnbpy-0.1.0-cp313-cp313-musllinux_1_2_aarch64.whl
Size 16.0 MB
Tags CPython 3.13 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
779ad57249823db3be3c4581decebe60589940061023c5e78f4cbfeacfeb54f9
BLAKE2b-256 checksum
How to use checksums
df462bf17cfc69aff13444da6ca90b54890f4e7ced32766b0384e7b7ccfe8809
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL bnbpy-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 15.7 MB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e88f7ce74a741f972ad8a7fbb2074f6c7dc1cfb7183860ac01951fa3cc865cb3
BLAKE2b-256 checksum
How to use checksums
c975c93570de0a9750943a6aa3588219f370baa9326871cbcaaa0da8fb2fb360
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL bnbpy-0.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 15.5 MB
Tags CPython 3.13 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
943952b85c1b93f390ebda928370cefffc4c4ef311e59adf521ae3338032a34b
BLAKE2b-256 checksum
How to use checksums
512343278a2d30c4ebb65abb8c524f9041f09cf15d81e402dac1d10ce40d4a79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL bnbpy-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Size 1.0 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8a75a12fb153885d905211b283ae9738c9e09e73dd79309beaf4d4e19eecbe9c
BLAKE2b-256 checksum
How to use checksums
a6aca02a6739ef2fddee888e2cd01442c5bb2bd5081725d49c4f16e7d75a2a6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp313-cp313-macosx_10_13_universal2.whl

Download URL bnbpy-0.1.0-cp313-cp313-macosx_10_13_universal2.whl
Size 1.9 MB
Tags CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
99c06b951a055cdf9aec666bbc2ec18a9d044c1bb7ef8f755cd818ad137a67ce
BLAKE2b-256 checksum
How to use checksums
e37f937048dc17868fa9c1b56525f151f2efa6552bbd00c613b1343afc3c146f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp312-cp312-win_amd64.whl

Download URL bnbpy-0.1.0-cp312-cp312-win_amd64.whl
Size 710.4 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
1f87ef728e7595bbae87df6299c63293f80e0f07035520fe70f1ff90896f662a
BLAKE2b-256 checksum
How to use checksums
23cb074d5f003354d6525be5cd4dc5f7fe2d1107490c369e8b1fe4f68fd667b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL bnbpy-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 16.5 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
95c1de2a631bffba8c7a9c9837b2ef69c412e20262eced0ab019cb5e81eaa818
BLAKE2b-256 checksum
How to use checksums
ad2f685513daf1ed388c96c9ae7a7398b0a7778c94af8bde594030d646423135
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp312-cp312-musllinux_1_2_aarch64.whl

Download URL bnbpy-0.1.0-cp312-cp312-musllinux_1_2_aarch64.whl
Size 16.1 MB
Tags CPython 3.12 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
ba8f067b641574a1042851da113ec04f0e127f0def8131b63042631807309c30
BLAKE2b-256 checksum
How to use checksums
25497a40154c7ad2e5c8b7902625fedebebfb52abad0a1cbe0577bbc18f99457
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL bnbpy-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 15.8 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c9d763e3a6d32ea2b9f1c35f2c625c0e67dff1b5c32c28a5675d3530e1950713
BLAKE2b-256 checksum
How to use checksums
bbaf1c3b41ad240f8aea7d2b9d3d25034f42f965c5c0624a15c4ea9cb329817d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL bnbpy-0.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 15.6 MB
Tags CPython 3.12 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
58d6fd6c95f40d5ebf013c3cbd00d668f0258e722f8c9e03e6f22977083cab63
BLAKE2b-256 checksum
How to use checksums
23f486f9a600a1c1deb332d3f74ba86724b94e04fda1a90ca59dd50efe124c53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL bnbpy-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Size 1.0 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b9c429dc4003444843cb3f681869f8c1b75a39cf09db6e069f8bf0ba2dce15f1
BLAKE2b-256 checksum
How to use checksums
f298c42cd50e10c2ab78d2cd6f5e211f8dd2c37520f5c9d88e8609162c54f154
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp312-cp312-macosx_10_13_universal2.whl

Download URL bnbpy-0.1.0-cp312-cp312-macosx_10_13_universal2.whl
Size 1.9 MB
Tags CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
4fa49b504f36b3b5ba0a8c7e490b59f722e372b733892b3202c8e23bdee15451
BLAKE2b-256 checksum
How to use checksums
bc271a15ac5129440894f6a5d6a1ca4c557d266df3089ef002bcc7dfe3f0e626
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp311-cp311-win_amd64.whl

Download URL bnbpy-0.1.0-cp311-cp311-win_amd64.whl
Size 716.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
c693c66bd88d4ca5f07bb3d4c180d10c577ead572530b2405461e385cefde162
BLAKE2b-256 checksum
How to use checksums
876daceb9ec8bdb86baae1445d46b48591116b2ae4928ee8f442fef138882199
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL bnbpy-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 16.5 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
10ac511fc2462c66a68443951e2a5c70a95b245fefcf7371346b42cd79bc0c71
BLAKE2b-256 checksum
How to use checksums
dd5567c80d3318e1fedecee846e4d0dd66a42fcf070e9b5e55b65d1bec60fb14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl

Download URL bnbpy-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl
Size 16.1 MB
Tags CPython 3.11 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
9eb993512436fd1df0940ec703bceff703186486d518a2a8cd49aa6065ce256e
BLAKE2b-256 checksum
How to use checksums
6f649604e374bcf8f041c8e946766179e326c4ebb781728dc95ad085e58b832e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL bnbpy-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 15.7 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bc63833b93b982f6260da115034cf6c0675fe9ec4eda4d97be530029b9dd42e7
BLAKE2b-256 checksum
How to use checksums
8daa04b8fb3fc8dc26c24c278acf4f9e11cc97d90ea500427e4fc6ff1626b5ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL bnbpy-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 15.5 MB
Tags CPython 3.11 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2f50aa5444544c63a027a0cc0f9cd859c4eb640328ff27463fde6ebaebdea8bc
BLAKE2b-256 checksum
How to use checksums
5af3a576844574de4223abbb01a4f244d5c6e14bfa64a7c3b85b9212cad0ff9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL bnbpy-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Size 1.0 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
49cc57a1a7e664c5371fb7de1a878153a7678feb6630516b693d9203f61703f4
BLAKE2b-256 checksum
How to use checksums
ba0b56fbe3060df26dac272a992183675507ba547fd3506f13c6dbe8b5f56e39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp311-cp311-macosx_10_9_universal2.whl

Download URL bnbpy-0.1.0-cp311-cp311-macosx_10_9_universal2.whl
Size 2.0 MB
Tags CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
1741d1f053a5364a0490bccf94f7524becb013c5c02eb918cb6cbde77336866b
BLAKE2b-256 checksum
How to use checksums
e64e4b0e37784668a30e3b8ce517dac3e629b62a16a5e55555b651dec6657c33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp310-cp310-win_amd64.whl

Download URL bnbpy-0.1.0-cp310-cp310-win_amd64.whl
Size 711.4 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
0c4965e5c7cdc05b4e0ce5a49ac560b956e4c24e5afa1dbfad40a89e695b24ca
BLAKE2b-256 checksum
How to use checksums
b965466526dbb9bd6743902a904755dfef63ffa5ddbb2f4d4f692c174571887f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL bnbpy-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 16.3 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
d70e1b0b935bbbce63156cd9ca9e04bfd45840cc2f1874da9da794a7ac684cdf
BLAKE2b-256 checksum
How to use checksums
cf6557f88cd9b1a9c9c1f3f3df8b27bc941ae3550ea5798e896afa311ea6c08c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl

Download URL bnbpy-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl
Size 15.9 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
fdff92efc6cf1796f2faea0d173b5c45820351f4ff29283f187641989cafbcda
BLAKE2b-256 checksum
How to use checksums
8a55c7deccdf22f31777cde76ff43678959433ed0b28b2f7bdc4fbd6303b5790
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL bnbpy-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 15.5 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7d22a75fcdd51f1ae91dd0a6f1b3c83e1c76726eac05b76924e950cd410009b3
BLAKE2b-256 checksum
How to use checksums
bc2cba4df4c6713aee7aafaa2d5309960438225a94ce7130e9d2bf5c53e5a972
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL bnbpy-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 15.3 MB
Tags CPython 3.10 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
fd7ea73907240315b30846733dae3fd41a97b956536cca6882ee677b8f24562d
BLAKE2b-256 checksum
How to use checksums
754479647b928f1cab2a9be9b5048f53eb7c8c8b935ebcb1659bd4a4d64771da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL bnbpy-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Size 1.0 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c5d33780af08c177692775f0066ce5b2a2001c2841fbbd7f58d88779c2d1bf68
BLAKE2b-256 checksum
How to use checksums
75db0a97c9dab73d40a003facb40bba1b940d898c7e2e62bcbb9a1242169cc69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / bnbpy-0.1.0-cp310-cp310-macosx_10_9_universal2.whl

Download URL bnbpy-0.1.0-cp310-cp310-macosx_10_9_universal2.whl
Size 2.0 MB
Tags CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
fccc3c22279fc2fa75f47f2563d28cedfed386c10324559e1fe2b3bfee23aefe
BLAKE2b-256 checksum
How to use checksums
3c4563e22e9211906e8e44ab7d9f67a6a03e6fbfe086a5f989f8c3013f28339c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for bnbpy 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page