Skip to main content

A Python general Branch & Bound framework.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bnbpy-0.1.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

bnbpy-0.1.0-cp314-cp314-win_amd64.whl (720.3 kB view details)

Uploaded CPython 3.14Windows x86-64

bnbpy-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl (16.4 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

bnbpy-0.1.0-cp314-cp314-musllinux_1_2_aarch64.whl (16.0 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

bnbpy-0.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (15.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

bnbpy-0.1.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (15.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

bnbpy-0.1.0-cp314-cp314-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

bnbpy-0.1.0-cp314-cp314-macosx_10_15_universal2.whl (1.9 MB view details)

Uploaded CPython 3.14macOS 10.15+ universal2 (ARM64, x86-64)

bnbpy-0.1.0-cp313-cp313-win_amd64.whl (703.5 kB view details)

Uploaded CPython 3.13Windows x86-64

bnbpy-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl (16.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

bnbpy-0.1.0-cp313-cp313-musllinux_1_2_aarch64.whl (16.0 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

bnbpy-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (15.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

bnbpy-0.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (15.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

bnbpy-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

bnbpy-0.1.0-cp313-cp313-macosx_10_13_universal2.whl (1.9 MB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

bnbpy-0.1.0-cp312-cp312-win_amd64.whl (710.4 kB view details)

Uploaded CPython 3.12Windows x86-64

bnbpy-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl (16.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

bnbpy-0.1.0-cp312-cp312-musllinux_1_2_aarch64.whl (16.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

bnbpy-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (15.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

bnbpy-0.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (15.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

bnbpy-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

bnbpy-0.1.0-cp312-cp312-macosx_10_13_universal2.whl (1.9 MB view details)

Uploaded CPython 3.12macOS 10.13+ universal2 (ARM64, x86-64)

bnbpy-0.1.0-cp311-cp311-win_amd64.whl (716.2 kB view details)

Uploaded CPython 3.11Windows x86-64

bnbpy-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl (16.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

bnbpy-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl (16.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

bnbpy-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (15.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

bnbpy-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (15.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

bnbpy-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

bnbpy-0.1.0-cp311-cp311-macosx_10_9_universal2.whl (2.0 MB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

bnbpy-0.1.0-cp310-cp310-win_amd64.whl (711.4 kB view details)

Uploaded CPython 3.10Windows x86-64

bnbpy-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl (16.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

bnbpy-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl (15.9 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

bnbpy-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (15.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

bnbpy-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (15.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

bnbpy-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (1.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

bnbpy-0.1.0-cp310-cp310-macosx_10_9_universal2.whl (2.0 MB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file bnbpy-0.1.0.tar.gz.

File metadata

  • Download URL: bnbpy-0.1.0.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for bnbpy-0.1.0.tar.gz
Algorithm Hash digest
SHA256 750da1ec4dd4c91ccd9187b8bb1355c218d5fd145f70c680009820ef4f717c1f
MD5 9c82bdd725b82faec3bfd466bd26625d
BLAKE2b-256 f862b07d04e4b4ccec59fb21a084466b8b42b9cb4f34c6db4f2ac7129a6e527f

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: bnbpy-0.1.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 720.3 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for bnbpy-0.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 be37c4d2c313a4e5a7dd333800459b7fc5665af45a5a1792667f2cb700b6bb27
MD5 f82b6b7ef7d8d3cbba3ce48ca56ae348
BLAKE2b-256 c70a4a19f60a7ce783ef9f759bf15bd68d1838f516b605a25afc3bf380ab160a

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8eb3decaa61f8a547efe1771f155506bb39774eeec4665a68207254aab214bea
MD5 4a20285f91db1ba2d753edde6430a438
BLAKE2b-256 619c6b6fa9477734505f970bf4c458cbf42182677013c5052b341dd020942c44

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a3bea574bee0b2b7c3a136ecb287aeed722cb77683928d176f53321dacb3da62
MD5 ebf8abb034073563abb45f8be8eed8a2
BLAKE2b-256 2015cc8f9d4c4698e3b9c006b8ad464e164f6f3b9bbe4a96d20b81954147efea

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 26ea69b0a3e2f945c7067d787ea03bc3e3be9d718dbe787246be71c51fe2e447
MD5 10f14f4b3481cd93b0e02818eba52d15
BLAKE2b-256 7166bd8b764bc73ceaf425106538fe4b1c9e6d9e844e3debf1b2e1f744965040

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 877de23e823c4cc61044b69a22913f4be4d1e025b431658735ebb43625447fe7
MD5 7e48245de3637b7ffd60d3eee019d082
BLAKE2b-256 f851b12b95e9b8476abc9de2ccda10ff24df3c0730062b8a4ded6eec6fbccbac

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e2835a2a75972951fb8af88a046f3ed7ba234bc8b82ab9a023133e59b3ee5f22
MD5 f8d61a011eb328b26238e71c9a20f736
BLAKE2b-256 df4ea2e9f74d870433def03e6ae615a30830b4f25623d74897ee527ec14b6ea6

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp314-cp314-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 3f53f04f0ea4e7f71dad445ccda4439701bcf81ea19b7774d68f664d2c508e89
MD5 4a078a68e64b46ae9535378d9955a560
BLAKE2b-256 f2f0db210bf0e913baaf512cd85f6bb3c67c7e8ea805d759fd7a2188189f25b9

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: bnbpy-0.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 703.5 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for bnbpy-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2bc3c3310acd967059da7345f6120718fbd32da9c6f7e1180cfce8369e661ee6
MD5 079d3d52602773ecc830845244e68400
BLAKE2b-256 623cce1eb8ea4de067103b0df99873412d364c353cca741ff569a80acb913f84

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a9432abf0e0b2a1135ffa8a2d44f596c2783b30e040990a9eb83aaef5d7f412c
MD5 a65f9306471a8ee531f56ac76daf2eac
BLAKE2b-256 e721a6e56f938bcd990c0fb77f9acb76adc341118a6bd7bdca969e6b0f08a752

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 779ad57249823db3be3c4581decebe60589940061023c5e78f4cbfeacfeb54f9
MD5 13e09681fe47032e238303ccafdadfee
BLAKE2b-256 df462bf17cfc69aff13444da6ca90b54890f4e7ced32766b0384e7b7ccfe8809

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e88f7ce74a741f972ad8a7fbb2074f6c7dc1cfb7183860ac01951fa3cc865cb3
MD5 40a0abe91c59d81981fd77d18a3d9444
BLAKE2b-256 c975c93570de0a9750943a6aa3588219f370baa9326871cbcaaa0da8fb2fb360

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 943952b85c1b93f390ebda928370cefffc4c4ef311e59adf521ae3338032a34b
MD5 9c916102b92dcaba91d07e866cf07403
BLAKE2b-256 512343278a2d30c4ebb65abb8c524f9041f09cf15d81e402dac1d10ce40d4a79

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a75a12fb153885d905211b283ae9738c9e09e73dd79309beaf4d4e19eecbe9c
MD5 be790336a2fe7f9178619231929969b9
BLAKE2b-256 a6aca02a6739ef2fddee888e2cd01442c5bb2bd5081725d49c4f16e7d75a2a6b

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 99c06b951a055cdf9aec666bbc2ec18a9d044c1bb7ef8f755cd818ad137a67ce
MD5 1c75dff613783c3215dc5e96c0763562
BLAKE2b-256 e37f937048dc17868fa9c1b56525f151f2efa6552bbd00c613b1343afc3c146f

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: bnbpy-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 710.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for bnbpy-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1f87ef728e7595bbae87df6299c63293f80e0f07035520fe70f1ff90896f662a
MD5 506d6d98e55c32c5b8e17f691e62659f
BLAKE2b-256 23cb074d5f003354d6525be5cd4dc5f7fe2d1107490c369e8b1fe4f68fd667b9

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 95c1de2a631bffba8c7a9c9837b2ef69c412e20262eced0ab019cb5e81eaa818
MD5 e521f80e091617cfa39f163a064ee25a
BLAKE2b-256 ad2f685513daf1ed388c96c9ae7a7398b0a7778c94af8bde594030d646423135

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ba8f067b641574a1042851da113ec04f0e127f0def8131b63042631807309c30
MD5 9ec0400ad8c994608c4173366093baf6
BLAKE2b-256 25497a40154c7ad2e5c8b7902625fedebebfb52abad0a1cbe0577bbc18f99457

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c9d763e3a6d32ea2b9f1c35f2c625c0e67dff1b5c32c28a5675d3530e1950713
MD5 ddfb88fc0294cbae64a4c1fc789dc648
BLAKE2b-256 bbaf1c3b41ad240f8aea7d2b9d3d25034f42f965c5c0624a15c4ea9cb329817d

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 58d6fd6c95f40d5ebf013c3cbd00d668f0258e722f8c9e03e6f22977083cab63
MD5 22f4285425076679a00e06c19a78e40e
BLAKE2b-256 23f486f9a600a1c1deb332d3f74ba86724b94e04fda1a90ca59dd50efe124c53

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b9c429dc4003444843cb3f681869f8c1b75a39cf09db6e069f8bf0ba2dce15f1
MD5 134accfb6e2b539e35e91d07001787e7
BLAKE2b-256 f298c42cd50e10c2ab78d2cd6f5e211f8dd2c37520f5c9d88e8609162c54f154

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 4fa49b504f36b3b5ba0a8c7e490b59f722e372b733892b3202c8e23bdee15451
MD5 8b873daa330e2aa4c6a40f1ecdfcff75
BLAKE2b-256 bc271a15ac5129440894f6a5d6a1ca4c557d266df3089ef002bcc7dfe3f0e626

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: bnbpy-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 716.2 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for bnbpy-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c693c66bd88d4ca5f07bb3d4c180d10c577ead572530b2405461e385cefde162
MD5 8727f148ed5c3eca5868c0dfc6852d38
BLAKE2b-256 876daceb9ec8bdb86baae1445d46b48591116b2ae4928ee8f442fef138882199

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 10ac511fc2462c66a68443951e2a5c70a95b245fefcf7371346b42cd79bc0c71
MD5 0532dae4fdf7745d1180147cdb894b59
BLAKE2b-256 dd5567c80d3318e1fedecee846e4d0dd66a42fcf070e9b5e55b65d1bec60fb14

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9eb993512436fd1df0940ec703bceff703186486d518a2a8cd49aa6065ce256e
MD5 e683c101912fab93766bd237a11d2069
BLAKE2b-256 6f649604e374bcf8f041c8e946766179e326c4ebb781728dc95ad085e58b832e

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bc63833b93b982f6260da115034cf6c0675fe9ec4eda4d97be530029b9dd42e7
MD5 79744ee991794c06697b46389d1456a8
BLAKE2b-256 8daa04b8fb3fc8dc26c24c278acf4f9e11cc97d90ea500427e4fc6ff1626b5ac

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2f50aa5444544c63a027a0cc0f9cd859c4eb640328ff27463fde6ebaebdea8bc
MD5 010e8cfc94803e9abf1abf3d6db7e7f0
BLAKE2b-256 5af3a576844574de4223abbb01a4f244d5c6e14bfa64a7c3b85b9212cad0ff9e

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 49cc57a1a7e664c5371fb7de1a878153a7678feb6630516b693d9203f61703f4
MD5 4a6ae9e869a4ed89719d83c15d9fd558
BLAKE2b-256 ba0b56fbe3060df26dac272a992183675507ba547fd3506f13c6dbe8b5f56e39

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 1741d1f053a5364a0490bccf94f7524becb013c5c02eb918cb6cbde77336866b
MD5 bd7b8cc7293739e00dcf9ab842ffe3b2
BLAKE2b-256 e64e4b0e37784668a30e3b8ce517dac3e629b62a16a5e55555b651dec6657c33

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: bnbpy-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 711.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for bnbpy-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0c4965e5c7cdc05b4e0ce5a49ac560b956e4c24e5afa1dbfad40a89e695b24ca
MD5 612d960b5489c06adb1fb0d20206bc83
BLAKE2b-256 b965466526dbb9bd6743902a904755dfef63ffa5ddbb2f4d4f692c174571887f

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d70e1b0b935bbbce63156cd9ca9e04bfd45840cc2f1874da9da794a7ac684cdf
MD5 acdc9de9223f43a06d9392d852e5251e
BLAKE2b-256 cf6557f88cd9b1a9c9c1f3f3df8b27bc941ae3550ea5798e896afa311ea6c08c

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fdff92efc6cf1796f2faea0d173b5c45820351f4ff29283f187641989cafbcda
MD5 8030deb3ad1a1de370f97781d6adb152
BLAKE2b-256 8a55c7deccdf22f31777cde76ff43678959433ed0b28b2f7bdc4fbd6303b5790

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7d22a75fcdd51f1ae91dd0a6f1b3c83e1c76726eac05b76924e950cd410009b3
MD5 8371cf37ebdeaf090a900cfc3427f46b
BLAKE2b-256 bc2cba4df4c6713aee7aafaa2d5309960438225a94ce7130e9d2bf5c53e5a972

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fd7ea73907240315b30846733dae3fd41a97b956536cca6882ee677b8f24562d
MD5 afc56cc262517e7aa5308521c08dc290
BLAKE2b-256 754479647b928f1cab2a9be9b5048f53eb7c8c8b935ebcb1659bd4a4d64771da

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c5d33780af08c177692775f0066ce5b2a2001c2841fbbd7f58d88779c2d1bf68
MD5 cc12e619d12592ad169fa17c924d9edf
BLAKE2b-256 75db0a97c9dab73d40a003facb40bba1b940d898c7e2e62bcbb9a1242169cc69

See more details on using hashes here.

File details

Details for the file bnbpy-0.1.0-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for bnbpy-0.1.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 fccc3c22279fc2fa75f47f2563d28cedfed386c10324559e1fe2b3bfee23aefe
MD5 3371971311c1f34f72fc0af206b3a193
BLAKE2b-256 3c4563e22e9211906e8e44ab7d9f67a6a03e6fbfe086a5f989f8c3013f28339c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page