A Python general Branch & Bound framework.
Project description
bnbpy
A generic, configurable Python framework for solving optimization problems using Branch & Bound. Also supports Column Generation and Branch & Price.
Configure | Usage | Base Problems | Development | Contact
See more examples in the notebooks folder:
- Single Machine Scheduling
- Permutation Flow Shop
- Permutation Assembly Flow Shop
- MILP
- Cutting Stock
- Graph Coloring
- Lot Sizing
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])
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
750da1ec4dd4c91ccd9187b8bb1355c218d5fd145f70c680009820ef4f717c1f
|
|
| MD5 |
9c82bdd725b82faec3bfd466bd26625d
|
|
| BLAKE2b-256 |
f862b07d04e4b4ccec59fb21a084466b8b42b9cb4f34c6db4f2ac7129a6e527f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be37c4d2c313a4e5a7dd333800459b7fc5665af45a5a1792667f2cb700b6bb27
|
|
| MD5 |
f82b6b7ef7d8d3cbba3ce48ca56ae348
|
|
| BLAKE2b-256 |
c70a4a19f60a7ce783ef9f759bf15bd68d1838f516b605a25afc3bf380ab160a
|
File details
Details for the file bnbpy-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp314-cp314-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 16.4 MB
- Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8eb3decaa61f8a547efe1771f155506bb39774eeec4665a68207254aab214bea
|
|
| MD5 |
4a20285f91db1ba2d753edde6430a438
|
|
| BLAKE2b-256 |
619c6b6fa9477734505f970bf4c458cbf42182677013c5052b341dd020942c44
|
File details
Details for the file bnbpy-0.1.0-cp314-cp314-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp314-cp314-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 16.0 MB
- Tags: CPython 3.14, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3bea574bee0b2b7c3a136ecb287aeed722cb77683928d176f53321dacb3da62
|
|
| MD5 |
ebf8abb034073563abb45f8be8eed8a2
|
|
| BLAKE2b-256 |
2015cc8f9d4c4698e3b9c006b8ad464e164f6f3b9bbe4a96d20b81954147efea
|
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
- Download URL: bnbpy-0.1.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 15.7 MB
- Tags: CPython 3.14, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26ea69b0a3e2f945c7067d787ea03bc3e3be9d718dbe787246be71c51fe2e447
|
|
| MD5 |
10f14f4b3481cd93b0e02818eba52d15
|
|
| BLAKE2b-256 |
7166bd8b764bc73ceaf425106538fe4b1c9e6d9e844e3debf1b2e1f744965040
|
File details
Details for the file bnbpy-0.1.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 15.5 MB
- Tags: CPython 3.14, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
877de23e823c4cc61044b69a22913f4be4d1e025b431658735ebb43625447fe7
|
|
| MD5 |
7e48245de3637b7ffd60d3eee019d082
|
|
| BLAKE2b-256 |
f851b12b95e9b8476abc9de2ccda10ff24df3c0730062b8a4ded6eec6fbccbac
|
File details
Details for the file bnbpy-0.1.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2835a2a75972951fb8af88a046f3ed7ba234bc8b82ab9a023133e59b3ee5f22
|
|
| MD5 |
f8d61a011eb328b26238e71c9a20f736
|
|
| BLAKE2b-256 |
df4ea2e9f74d870433def03e6ae615a30830b4f25623d74897ee527ec14b6ea6
|
File details
Details for the file bnbpy-0.1.0-cp314-cp314-macosx_10_15_universal2.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp314-cp314-macosx_10_15_universal2.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.14, macOS 10.15+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f53f04f0ea4e7f71dad445ccda4439701bcf81ea19b7774d68f664d2c508e89
|
|
| MD5 |
4a078a68e64b46ae9535378d9955a560
|
|
| BLAKE2b-256 |
f2f0db210bf0e913baaf512cd85f6bb3c67c7e8ea805d759fd7a2188189f25b9
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bc3c3310acd967059da7345f6120718fbd32da9c6f7e1180cfce8369e661ee6
|
|
| MD5 |
079d3d52602773ecc830845244e68400
|
|
| BLAKE2b-256 |
623cce1eb8ea4de067103b0df99873412d364c353cca741ff569a80acb913f84
|
File details
Details for the file bnbpy-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 16.4 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9432abf0e0b2a1135ffa8a2d44f596c2783b30e040990a9eb83aaef5d7f412c
|
|
| MD5 |
a65f9306471a8ee531f56ac76daf2eac
|
|
| BLAKE2b-256 |
e721a6e56f938bcd990c0fb77f9acb76adc341118a6bd7bdca969e6b0f08a752
|
File details
Details for the file bnbpy-0.1.0-cp313-cp313-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp313-cp313-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 16.0 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
779ad57249823db3be3c4581decebe60589940061023c5e78f4cbfeacfeb54f9
|
|
| MD5 |
13e09681fe47032e238303ccafdadfee
|
|
| BLAKE2b-256 |
df462bf17cfc69aff13444da6ca90b54890f4e7ced32766b0384e7b7ccfe8809
|
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
- Download URL: bnbpy-0.1.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 15.7 MB
- Tags: CPython 3.13, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e88f7ce74a741f972ad8a7fbb2074f6c7dc1cfb7183860ac01951fa3cc865cb3
|
|
| MD5 |
40a0abe91c59d81981fd77d18a3d9444
|
|
| BLAKE2b-256 |
c975c93570de0a9750943a6aa3588219f370baa9326871cbcaaa0da8fb2fb360
|
File details
Details for the file bnbpy-0.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 15.5 MB
- Tags: CPython 3.13, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
943952b85c1b93f390ebda928370cefffc4c4ef311e59adf521ae3338032a34b
|
|
| MD5 |
9c916102b92dcaba91d07e866cf07403
|
|
| BLAKE2b-256 |
512343278a2d30c4ebb65abb8c524f9041f09cf15d81e402dac1d10ce40d4a79
|
File details
Details for the file bnbpy-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a75a12fb153885d905211b283ae9738c9e09e73dd79309beaf4d4e19eecbe9c
|
|
| MD5 |
be790336a2fe7f9178619231929969b9
|
|
| BLAKE2b-256 |
a6aca02a6739ef2fddee888e2cd01442c5bb2bd5081725d49c4f16e7d75a2a6b
|
File details
Details for the file bnbpy-0.1.0-cp313-cp313-macosx_10_13_universal2.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp313-cp313-macosx_10_13_universal2.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.13, macOS 10.13+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99c06b951a055cdf9aec666bbc2ec18a9d044c1bb7ef8f755cd818ad137a67ce
|
|
| MD5 |
1c75dff613783c3215dc5e96c0763562
|
|
| BLAKE2b-256 |
e37f937048dc17868fa9c1b56525f151f2efa6552bbd00c613b1343afc3c146f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f87ef728e7595bbae87df6299c63293f80e0f07035520fe70f1ff90896f662a
|
|
| MD5 |
506d6d98e55c32c5b8e17f691e62659f
|
|
| BLAKE2b-256 |
23cb074d5f003354d6525be5cd4dc5f7fe2d1107490c369e8b1fe4f68fd667b9
|
File details
Details for the file bnbpy-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 16.5 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95c1de2a631bffba8c7a9c9837b2ef69c412e20262eced0ab019cb5e81eaa818
|
|
| MD5 |
e521f80e091617cfa39f163a064ee25a
|
|
| BLAKE2b-256 |
ad2f685513daf1ed388c96c9ae7a7398b0a7778c94af8bde594030d646423135
|
File details
Details for the file bnbpy-0.1.0-cp312-cp312-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp312-cp312-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 16.1 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba8f067b641574a1042851da113ec04f0e127f0def8131b63042631807309c30
|
|
| MD5 |
9ec0400ad8c994608c4173366093baf6
|
|
| BLAKE2b-256 |
25497a40154c7ad2e5c8b7902625fedebebfb52abad0a1cbe0577bbc18f99457
|
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
- Download URL: bnbpy-0.1.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 15.8 MB
- Tags: CPython 3.12, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c9d763e3a6d32ea2b9f1c35f2c625c0e67dff1b5c32c28a5675d3530e1950713
|
|
| MD5 |
ddfb88fc0294cbae64a4c1fc789dc648
|
|
| BLAKE2b-256 |
bbaf1c3b41ad240f8aea7d2b9d3d25034f42f965c5c0624a15c4ea9cb329817d
|
File details
Details for the file bnbpy-0.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 15.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58d6fd6c95f40d5ebf013c3cbd00d668f0258e722f8c9e03e6f22977083cab63
|
|
| MD5 |
22f4285425076679a00e06c19a78e40e
|
|
| BLAKE2b-256 |
23f486f9a600a1c1deb332d3f74ba86724b94e04fda1a90ca59dd50efe124c53
|
File details
Details for the file bnbpy-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9c429dc4003444843cb3f681869f8c1b75a39cf09db6e069f8bf0ba2dce15f1
|
|
| MD5 |
134accfb6e2b539e35e91d07001787e7
|
|
| BLAKE2b-256 |
f298c42cd50e10c2ab78d2cd6f5e211f8dd2c37520f5c9d88e8609162c54f154
|
File details
Details for the file bnbpy-0.1.0-cp312-cp312-macosx_10_13_universal2.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp312-cp312-macosx_10_13_universal2.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.12, macOS 10.13+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4fa49b504f36b3b5ba0a8c7e490b59f722e372b733892b3202c8e23bdee15451
|
|
| MD5 |
8b873daa330e2aa4c6a40f1ecdfcff75
|
|
| BLAKE2b-256 |
bc271a15ac5129440894f6a5d6a1ca4c557d266df3089ef002bcc7dfe3f0e626
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c693c66bd88d4ca5f07bb3d4c180d10c577ead572530b2405461e385cefde162
|
|
| MD5 |
8727f148ed5c3eca5868c0dfc6852d38
|
|
| BLAKE2b-256 |
876daceb9ec8bdb86baae1445d46b48591116b2ae4928ee8f442fef138882199
|
File details
Details for the file bnbpy-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 16.5 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10ac511fc2462c66a68443951e2a5c70a95b245fefcf7371346b42cd79bc0c71
|
|
| MD5 |
0532dae4fdf7745d1180147cdb894b59
|
|
| BLAKE2b-256 |
dd5567c80d3318e1fedecee846e4d0dd66a42fcf070e9b5e55b65d1bec60fb14
|
File details
Details for the file bnbpy-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp311-cp311-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 16.1 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9eb993512436fd1df0940ec703bceff703186486d518a2a8cd49aa6065ce256e
|
|
| MD5 |
e683c101912fab93766bd237a11d2069
|
|
| BLAKE2b-256 |
6f649604e374bcf8f041c8e946766179e326c4ebb781728dc95ad085e58b832e
|
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
- Download URL: bnbpy-0.1.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 15.7 MB
- Tags: CPython 3.11, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc63833b93b982f6260da115034cf6c0675fe9ec4eda4d97be530029b9dd42e7
|
|
| MD5 |
79744ee991794c06697b46389d1456a8
|
|
| BLAKE2b-256 |
8daa04b8fb3fc8dc26c24c278acf4f9e11cc97d90ea500427e4fc6ff1626b5ac
|
File details
Details for the file bnbpy-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 15.5 MB
- Tags: CPython 3.11, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f50aa5444544c63a027a0cc0f9cd859c4eb640328ff27463fde6ebaebdea8bc
|
|
| MD5 |
010e8cfc94803e9abf1abf3d6db7e7f0
|
|
| BLAKE2b-256 |
5af3a576844574de4223abbb01a4f244d5c6e14bfa64a7c3b85b9212cad0ff9e
|
File details
Details for the file bnbpy-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49cc57a1a7e664c5371fb7de1a878153a7678feb6630516b693d9203f61703f4
|
|
| MD5 |
4a6ae9e869a4ed89719d83c15d9fd558
|
|
| BLAKE2b-256 |
ba0b56fbe3060df26dac272a992183675507ba547fd3506f13c6dbe8b5f56e39
|
File details
Details for the file bnbpy-0.1.0-cp311-cp311-macosx_10_9_universal2.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp311-cp311-macosx_10_9_universal2.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.11, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1741d1f053a5364a0490bccf94f7524becb013c5c02eb918cb6cbde77336866b
|
|
| MD5 |
bd7b8cc7293739e00dcf9ab842ffe3b2
|
|
| BLAKE2b-256 |
e64e4b0e37784668a30e3b8ce517dac3e629b62a16a5e55555b651dec6657c33
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c4965e5c7cdc05b4e0ce5a49ac560b956e4c24e5afa1dbfad40a89e695b24ca
|
|
| MD5 |
612d960b5489c06adb1fb0d20206bc83
|
|
| BLAKE2b-256 |
b965466526dbb9bd6743902a904755dfef63ffa5ddbb2f4d4f692c174571887f
|
File details
Details for the file bnbpy-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 16.3 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d70e1b0b935bbbce63156cd9ca9e04bfd45840cc2f1874da9da794a7ac684cdf
|
|
| MD5 |
acdc9de9223f43a06d9392d852e5251e
|
|
| BLAKE2b-256 |
cf6557f88cd9b1a9c9c1f3f3df8b27bc941ae3550ea5798e896afa311ea6c08c
|
File details
Details for the file bnbpy-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp310-cp310-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 15.9 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdff92efc6cf1796f2faea0d173b5c45820351f4ff29283f187641989cafbcda
|
|
| MD5 |
8030deb3ad1a1de370f97781d6adb152
|
|
| BLAKE2b-256 |
8a55c7deccdf22f31777cde76ff43678959433ed0b28b2f7bdc4fbd6303b5790
|
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
- Download URL: bnbpy-0.1.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 15.5 MB
- Tags: CPython 3.10, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d22a75fcdd51f1ae91dd0a6f1b3c83e1c76726eac05b76924e950cd410009b3
|
|
| MD5 |
8371cf37ebdeaf090a900cfc3427f46b
|
|
| BLAKE2b-256 |
bc2cba4df4c6713aee7aafaa2d5309960438225a94ce7130e9d2bf5c53e5a972
|
File details
Details for the file bnbpy-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 15.3 MB
- Tags: CPython 3.10, manylinux: glibc 2.24+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd7ea73907240315b30846733dae3fd41a97b956536cca6882ee677b8f24562d
|
|
| MD5 |
afc56cc262517e7aa5308521c08dc290
|
|
| BLAKE2b-256 |
754479647b928f1cab2a9be9b5048f53eb7c8c8b935ebcb1659bd4a4d64771da
|
File details
Details for the file bnbpy-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5d33780af08c177692775f0066ce5b2a2001c2841fbbd7f58d88779c2d1bf68
|
|
| MD5 |
cc12e619d12592ad169fa17c924d9edf
|
|
| BLAKE2b-256 |
75db0a97c9dab73d40a003facb40bba1b940d898c7e2e62bcbb9a1242169cc69
|
File details
Details for the file bnbpy-0.1.0-cp310-cp310-macosx_10_9_universal2.whl.
File metadata
- Download URL: bnbpy-0.1.0-cp310-cp310-macosx_10_9_universal2.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.10, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fccc3c22279fc2fa75f47f2563d28cedfed386c10324559e1fe2b3bfee23aefe
|
|
| MD5 |
3371971311c1f34f72fc0af206b3a193
|
|
| BLAKE2b-256 |
3c4563e22e9211906e8e44ab7d9f67a6a03e6fbfe086a5f989f8c3013f28339c
|