Skip to main content

A Python port of the R package bnlearn: Bayesian network structure learning, parameter learning and inference

Project description

pybnlearn

A Python port of bnlearn, Marco Scutari's R package for Bayesian network structure learning, parameter learning and inference.

Status: pre-release. 139 of bnlearn's 160 exported functions are ported and checked against R — see What works and Verified against R. Wheels build in CI for Linux (x86-64 and aarch64, manylinux and musllinux), macOS arm64 and Windows, and each one runs the whole parity suite before it is kept. Nobody outside this repository has used it yet, so expect the first releases to be alphas.

This is a port, not a drop-in replacement. Plotting (graphviz.*, strength.plot, the bn.fit.* lattice plots) and the conversions to igraph, gRain, graphNEL and lm are not here at all — they would be rewrites rather than ports. And direct_lingam reproduces R's causal ordering exactly but picks each node's parents with a score-based search where R uses glmnet's adaptive lasso: measured over eight cases it agrees on six and is less sparse on two, keeping arcs R prunes and never the reverse. Both are set out in full below.

What makes this a port rather than a reimplementation

The numerical core is bnlearn's C code. The sources under src/c/bnlearn/ are byte-identical to the CRAN 5.2.1 tarball; what makes them build without R is a compatibility layer (src/c/compat/) that reimplements the subset of the R C API bnlearn uses — the SEXP object model, attributes, allocVector, error() and about sixty other entry points. Forwarding headers let the vendored sources keep including <R.h> and friends by their usual names, so tracking a new bnlearn release means dropping in a new tarball.

One thing here is not a port: bnlearn has no exact inference over discrete networks of its own, so query() implements the junction tree directly rather than delegating to the gRain package as bnlearn does. Its tests compare numbers against gRain, which is a weaker claim than the rest of the suite makes, and src/pybnlearn/exact.py says why. Gaussian networks are a port: bnlearn turns those into a multivariate normal itself, and src/pybnlearn/mvnorm.py follows it.

R's own standalone maths library is vendored too (src/c/nmath/), along with R's Mersenne-Twister, so distribution functions and random streams agree with R bit for bit. That is what makes it meaningful to assert that results match rather than approximate: the parity suite compares against numbers generated by R itself, at a relative tolerance of 1e-11 — a bound set by measuring the worst disagreement across macOS and Linux (1.05e-12), not chosen for comfort. On one machine the agreement is 1e-12, which is what the fixtures were generated to. Where it cannot be that good, and why, is set out under what "matches R" does not cover.

Because bnlearn is GPL-2 | GPL-3, pybnlearn is distributed under the GPL v3 or later. See NOTICE for attribution.

Install

pip install bnlearn-port
import pybnlearn        # the install name and the import name differ

Installed as bnlearn-port, imported as pybnlearn. PyPI declines names too close to an existing project, and there is already a package called bnlearn there — a separate, MIT-licensed one built on pgmpy, unrelated to this and to Scutari's R package. The rule is doing its job: two Bayesian-network packages a prefix apart would be genuinely confusing. So the distribution took a name that says what it is, and the import name stayed put rather than churn every example. Python does this often enough to be unremarkable — scikit-learn imports as sklearn, Pillow as PIL.

Use

import pandas as pd
import pybnlearn

data = pd.read_csv("learning.test.csv", dtype="category")

# conditional independence testing
pybnlearn.ci_test(data, "A", "B", sx=["C"], test="mi")
# {'statistic': {'mi': 2347.258587894275}, 'parameter': {'df': 12.0}, ...}

# structure learning
net = pybnlearn.hc(data, score="bic")
net.modelstring()          # '[A][C][F][B|A][D|A:C][E|B:F]'
net.arcs                   # [('A', 'B'), ('A', 'D'), ...]
pybnlearn.score(net, data) # -24006.734232498

# constraint-based learning: these return a partially directed graph
pybnlearn.gs(data, test="mi", alpha=0.05).arcs
pybnlearn.iamb(data).arcs
pybnlearn.inter_iamb(data, undirected=True).arcs

# parameter learning
fitted = pybnlearn.fit(net, data)
fitted["B"].probabilities        # the conditional probability table
fitted["B"].as_frame()           # ... in long format

# inference: seeded sampling reproduces R's set.seed() exactly
pybnlearn.set_seed(1)
pybnlearn.cpquery(fitted, {"B": "a"}, {"A": "a"}, method="ls", n=10000)
pybnlearn.rbn(fitted, 100)       # sample from the network

# ... or compute it exactly, no sampling involved
pybnlearn.query(fitted, "B", {"A": "a"}).values

# resampling
pybnlearn.set_seed(1)
pybnlearn.boot_strength(data, algorithm="hc", replicates=200)
pybnlearn.bn_cv(data, "hc", k=10).mean

# constraints
pybnlearn.hc(data, whitelist=[("A", "F")], blacklist=[("A", "B")], maxp=3)

# graph priors: what you believe about the structure before seeing the data.
# A whitelist forces an arc; a prior only leans on it, so on data this
# decisive all three still land on the network above -- the scores differ.
pybnlearn.score(net, data, type="bde", prior="vsp", beta=0.1)
pybnlearn.score(net, data, type="bde", prior="marginal", beta=0.9)
pybnlearn.score(net, data, type="bde", prior="cs", beta=pd.DataFrame(
    {"from": ["A", "B"], "to": ["B", "C"], "prob": [0.9, 0.05]}))
pybnlearn.hc(data, score="bde", prior="vsp", beta=0.1)

# the whole graph at once, in and out
pybnlearn.amat(net)              # a labelled square frame of 0s and 1s
pybnlearn.set_amat(net, matrix)  # ... and back to a network

Two notes on pandas.read_csv and categorical data

Missing values. read_csv treats NA, None, N/A and similar strings as missing by default. bnlearn's own insurance data set has a category literally called "None", so the default reads 14681 of its rows as missing. Pass keep_default_na=False, na_values=[] when the labels are meant to be data. pybnlearn raises rather than letting missing values reach the C core, but it cannot tell that a category was lost before it ever saw the frame.

Level order. read_csv orders categories alphabetically. Most of the library does not care — mutual information and the network scores are invariant to it — but a conditional probability table is indexed by level, so fit() returns its axes in whatever order the categories are in. If the order matters to you, set it explicitly:

data["Species"] = data["Species"].cat.reorder_categories(["Sagrei", "Distichus"])

What works

Conditional independence tests mi, mi-adf, mi-sh, x2, x2-adf (discrete); cor, zf, mi-g, mi-g-sh (Gaussian)
Scores loglik, aic, bic, bde, bds, bdj, k2, fnml, qnml; loglik-g, aic-g, bic-g, bge; loglik-cg, aic-cg, bic-cg, ebic-cg
Structure learning (score-based) hc, tabu — whitelists, blacklists, maxp, arbitrary starting networks, random restarts
Structure learning (constraint-based) pc_stable, gs, iamb, inter_iamb, iamb_fdr, fast_iamb, mmpc, si_hiton_pc, hpc — whitelists, blacklists, alpha, max_sx, undirected
Structure learning (local) learn_mb, learn_nbr — one node's Markov blanket or neighbourhood, without the whole network
Structure learning (hybrid) mmhc, h2pc, rsmax2 — any ported restrict/maximize pair
Structure learning (pairwise) chow_liu, aracne
Causal discovery lingam_ordering — the causal ordering non-Gaussianity identifies; direct_lingam
Causal inference as_scm, intervention (mutilated), twin, counterfactual
Graphs cpdag, moral, skeleton, pdag2dag, subgraph, empty_graph, model2network, topological ordering
Comparison shd, hamming, compare, nparams, sid
Information H (entropy), KL (divergence), BF (Bayes factor), alpha_star
Graph properties acyclic, directed, valid_dag, valid_cpdag, valid_ug, path_exists, connected_components, node_ordering, dsep
Colliders and equivalence colliders, vstructs, shielded_colliders, unshielded_colliders, cextend, cextend_all
Generating graphs random_graph (ordered, ic-dag, melancon), complete_graph, empty_graph, perturb, count_graphs
Preprocessing discretize (quantile, interval, Hartemink), configs, dedup
Nodes and arcs amat, set_amat, parents, children, mb, nbr, spouses, ancestors, descendants, root_nodes, leaf_nodes, isolated_nodes, degree, in_degree, out_degree, arcs, narcs, nnodes, directed_arcs, undirected_arcs, incoming_arcs, outgoing_arcs, incident_arcs, compelled_arcs, reversible_arcs
Editing a graph set_amat (every arc at once), set_arc, drop_arc, reverse_arc, set_edge, drop_edge, add_node, remove_node, rename_nodes
Constraints from orderings ordering2blacklist, tiers2blacklist, set2blacklist
Parameter learning fitmle and bayes for discrete networks, mle-g for Gaussian ones, mle-cg for mixtures of the two; custom_fit to supply parameters by hand; bn_net to drop them again
Incomplete data impute — from a node's parents, by likelihood weighting, or exactly; structural_em to learn a structure despite the gaps, latent variables included
Prediction predict — from a node's parents, by likelihood weighting, or exactly
Exact inference query — junction tree for discrete networks, multivariate normal for Gaussian ones; conditional and joint distributions, computed rather than sampled
Gaussian networks as distributions gbn2mvnorm, mvnorm2gbn — the global mean and covariance, and the factorisation back
Classifiers naive_bayes, tree_bayes, classify — exact class posteriors
Simulation and inference rbn, cpquery, cpdist — logic sampling and likelihood weighting; set_seed reproduces R's set.seed
Resampling boot_strength, bn_boot, bn_cv, loss — bootstrap arc strengths, a bootstrap distribution for any statistic, k-fold / hold-out / custom-fold cross-validation, all six losses
Arc strength arc_strength (p-value or score difference), bf_strength (Bayes factors), custom_strength, averaged_network, inclusion_threshold
Interchange formats read_bif, read_dsc, read_net, write_bif, write_dsc, write_net, write_dot
Graph priors uniform, vsp, marginal, cs (Castelo & Siebes) — passed to any Bayesian score as prior= and beta=
Utilities score, modelstring, identifiable, singular, whitelist, blacklist, ntests

139 of bnlearn's 160 exported functions are covered, and nothing of substance is left. Fifteen of the remaining twenty-one are deliberately out of scope -- the nine plotting functions and the six conversions to igraph, graphNEL, gRain and lm -- because they would be rewrites rather than ports, with nothing to check against. The other six are R's assignment forms (nodes<-, arcs<-, parents<-, children<-, modelstring<-, alst<-), whose effect is available here as ordinary functions.

Three things are deliberately not reproduced, and each is documented where it lives. direct_lingam gives R's causal ordering exactly, but picks the arcs with a score-based search rather than with glmnet's adaptive lasso, which is not vendored. tests/parity/test_lingam_arcs.py measures how far apart that leaves them -- six of eight cases identical, two differing only by arcs this keeps and R prunes -- and fails if the gap widens, narrows or changes direction. Porting glmnet would not close it cleanly: its lambda path stops when the gain in deviance falls below 1e-5 times the deviance, and that comparison came down to 7.865e-06 against 7.634e-06 on the first data set tried, so the number of lambdas -- and thus which one is selected -- flips with the convergence tolerance. Matching it needs glmnet's arithmetic rather than its method. mi = "gkernel" raises rather than returning a number: bnlearn builds its Gram matrix with a matrix product where it means an elementwise one, leaving a condition number around 1e20, so R's own answer is floating-point noise and cannot be reproduced by anything. And count_graphs("dags-with-r-arcs", r = 0) returns one rather than R's n: R's inner loop runs seq(from = 1, to = 0), which counts downwards, and the extra pass overwrites the count -- unlike the other two this one is checkable, and the counts for a given number of nodes only add up to the total with the corrected value. Exact inference covers discrete and Gaussian networks, but not mixtures of the two.

Three limits on how far "matches R" goes, all found by running the code somewhere new rather than reasoned about in advance.

The last digit belongs to the platform, not to this package. The vendored nmath and Mersenne-Twister make distributions and random streams agree with R exactly, but nmath itself calls log, exp and lgamma from the system maths library, and glibc and Apple's libm differ in the last unit in the last place. Nothing vendored can fix that. Measured across macOS and Linux the worst relative disagreement over the whole suite is 1.05e-12, so the parity tests compare at a relative tolerance of 1e-11 — ten-fold headroom over what was observed, tight enough that a real regression still fails. On a single machine agreement is far better, at the 1e-12 the fixtures were generated to.

BLAS is the suspect people reach for here, and it is the wrong one: building against scipy-openblas32 instead of Accelerate — a genuinely different BLAS on the same machine — changes nothing at all, and the whole suite passes unaltered.

Ill-conditioned data determine fewer digits than they appear to. For a data set built with two columns correlated to 1 − 5e-13, a partial correlation agrees with R only to about four digits — and measured against exact rational arithmetic, neither answer is better: R is wrong by 6.6e-5, this by 2.9e-4, against a forward error bound of 1.5e-3. The data do not determine those digits. test_the_ill_conditioned_disagreement_is_not_a_defect does that arithmetic rather than asserting it.

Some results are decided by ties, and those cannot be compared at all. Hartemink's discretization merges 30 initial bins over 88 observations on the marks data, so it chooses between differences that small — and a one-ulp change to a single observation, which is the same data by any reasonable reading, moves the answer in 4 of 12 trials. There the tests compare the levels and their number, which are reproducible, and not which side of a boundary each observation fell. test_hartemink_on_marks_really_is_decided_by_ties measures the sensitivity, so the exemption cannot quietly widen into covering a real disagreement.

One inconsistency is reproduced rather than smoothed over, because smoothing it over would be the divergence: bdj accepts prior and beta and then ignores them, scoring as if the prior were uniform -- while still being reported as non-decomposable under cs and marginal, which moves the search even though the score stands still. pybnlearn does the same, and the fixtures pin down both halves of it.

Verified against R

pytest runs 9381 checks, 8707 of which compare directly against values produced by R 4.6.1 with bnlearn 5.2.1:

  • 318 conditional independence tests across discrete and Gaussian data, each comparing the statistic, the degrees of freedom and the p-value;
  • 82 hill-climbing runs across 8 data sets, 13 scores, non-default hyperparameters, whitelists, blacklists and parent limits, each comparing the arc set, the model string and the per-node scores;
  • 231 constraint-based runs across pc_stable, gs, iamb, inter_iamb, iamb_fdr, mmpc and si_hiton_pc, 6 data sets, 7 independence tests, several significance levels, constraint sets and both directed and undirected output, comparing the arc set including direction;
  • 64 hybrid runs across mmhc and rsmax2, covering every ported restrict/maximize pair and arguments passed through to each phase;
  • 110 hpc and h2pc runs across 7 data sets -- including 37-node alarm, where the two superset stages earn their keep and an off-by-one in them would be least visible -- 6 independence tests, conditioning-set limits and constraints;
  • 63 tabu searches across 8 data sets, 9 scores, tabu list sizes from 1 to 30, constraints and parent limits — 13 of which R's tabu resolves differently from R's hc, so the tabu-specific paths are actually covered rather than incidentally agreeing with hill climbing;
  • 55 fitted networks, comparing every cell of every conditional probability table and every regression coefficient, over three structures per data set and both the maximum likelihood and Bayesian estimators;
  • 61 seeded simulation and inference results -- generated data compared observation by observation, and conditional probabilities compared exactly rather than statistically, since both implementations draw the same numbers in the same order from R's Mersenne-Twister;
  • 61 bootstrap and cross-validation results, again exact rather than statistical, including R's sample() itself -- everything here rests on drawing the same rows in the same order;
  • 48 predictions and prediction-based losses, covering both prediction methods and all five predictive cross-validation losses;
  • 42 classifier structures and class posteriors, over four data sets and several class variables, including the tree root that decides how a TAN's feature tree is oriented;
  • 40 exact inference results for discrete networks checked against gRain -- marginals, conditionals on up to three variables, joints, and exact prediction;
  • 82 Gaussian exact inference results, which unlike the discrete ones are genuine parity fixtures: global means and covariances, the factorisation back into a network, conditional expectations, and exact prediction of every node of every structure -- including a network with a deterministic node, whose covariance matrix is singular and which therefore exercises the diagonal patching R does rather than failing;
  • 70 conditional Gaussian results over two mixed data sets: structure learning with all four -cg scores under both hc and tabu, and parameter learning across all three of the estimators mle-cg dispatches to;
  • 138 arc-strength and network-averaging results: p-values and score differences for six data sets and thirteen criteria, bootstrap strengths with the inclusion threshold they carry, and the averaged network at four thresholds -- plus thirteen strength vectors of awkward shapes checking that R's optimiser is reproduced rather than approximated, since the threshold it finds is used as a cutoff;
  • 632 checks of the node and arc utilities, enumerated rather than chosen: nine graphs -- including one whose undirected part is not chordal and one with a real directed cycle -- crossed with every ordered pair of nodes and all five arc operations;
  • 148 interchange-format results: every node of four networks written by R as BIF, DSC and NET and read back here, which is what pins down where each conditional distribution belongs -- NET does not record it at all;
  • 24 hand-built networks from custom_fit, compared as parameters and then sampled from and queried, since a network with an axis in the wrong place reads back correctly and samples from a different distribution;
  • 524 checks of d-separation, colliders, consistent extensions, structural intervention distance, random graph generation and discretization -- d-separation enumerated over every pair of nodes in six graphs and three kinds of conditioning set, and the generated graphs compared arc for arc rather than statistically, since they come from R's own generator;
  • 245 checks of fast.iamb, local structure learning, entropy and Kullback-Leibler divergence, the last two comparing pybnlearn's junction tree against gRain's;
  • 40 incomplete-data results: parameters estimated from data with gaps, all three imputation methods, and structural EM under both maximisers -- plus a latent variable, never observed at all, which is the case EM cannot start from an empty network on;
  • 183 causal results: interventions on every node of four graph shapes, twin networks, and counterfactuals with and without node merging -- plus the parameterised half, where a node's residual variance becomes a node of its own feeding both copies;
  • 18 LiNGAM causal orderings, including a data set with genuinely non-Gaussian noise, which is the assumption the method rests on;
  • 139 results for the remaining utilities: seeded perturbations and the hill-climbing restarts built on them, every extension of an equivalence class, exact graph counts, Bayes-factor arc strengths in extended precision, deduplication, and bootstrapping an arbitrary statistic;
  • 4727 results from an exhaustive sweep, which exists because the fixtures above are cases chosen by hand and share the blind spots of the hand that chose them. Here the arguments are crossed rather than varied one at a time; the ten data sets are awkward on purpose — two observations per contingency-table cell, eleven levels against two, 98% of the mass on one level, near-determinism, more variables than the sample supports, nearly collinear columns, ten orders of magnitude between columns, Cauchy tails, thirty rows; and 60 combinations have no solution, so the paths that refuse are exercised too. Every score on every data set with its per-node breakdown, every independence test over every ordered pair at three conditioning-set sizes, every constraint algorithm against every test, and ntests() for all eleven searches — the last being the sharpest check there is, since two different search paths can reach the same arcs but not the same amount of work. Writing it found four defects the hand-chosen fixtures could not: nparams refused a fitted network and miscounted Gaussian nodes, connected_components returned a bare string for a one-node component, and hc/tabu accepted whitelists R rejects;
  • 22 adjacency-matrix results over ten graphs, including two partially directed ones -- an undirected arc is a symmetric pair of ones, so the matrix cannot tell it from two opposed directed arcs, and the round trip is recorded rather than assumed. The row/column convention and the arc order coming back out are compared too: both are invisible in a same-shaped answer and decide how everything downstream reads;
  • 235 results for the non-uniform graph priors: four Castelo & Siebes completions, and nine prior settings crossed with three data sets, five scores and both hc and tabu -- which is what pins down the non-decomposable path, since a prior that touches every node makes a move's effect wider than its cached delta. hc and tabu are expected to disagree with each other under the marginal prior, and do, on the same pair of networks R's do;
  • 27 checks of the graph utilities: CPDAG, moral graph and skeleton for six learned networks, shd/hamming/compare over five network pairs, model2network round trips, and chow_liu and aracne on six data sets;
  • set.seed(42) reproduces R's uniform and normal streams to 15 digits.

Regenerate the fixtures (needs R with bnlearn installed):

Rscript tools/gen_r_fixtures.R
Rscript tools/gen_r_hc_fixtures.R
Rscript tools/gen_r_constraint_fixtures.R
Rscript tools/gen_r_graph_fixtures.R
Rscript tools/gen_r_tabu_fixtures.R
Rscript tools/gen_r_hybrid_fixtures.R
Rscript tools/gen_r_fit_fixtures.R
Rscript tools/gen_r_levels.R
Rscript tools/gen_r_inference_fixtures.R
Rscript tools/gen_r_resampling_fixtures.R
Rscript tools/gen_r_predict_fixtures.R
Rscript tools/gen_r_classifier_fixtures.R
Rscript tools/gen_r_exact_fixtures.R      # also needs gRain
Rscript tools/gen_r_cg_fixtures.R
Rscript tools/gen_r_mvnorm_fixtures.R
Rscript tools/gen_r_strength_fixtures.R
Rscript tools/gen_r_nodes_fixtures.R      # also needs igraph
Rscript tools/gen_r_custom_fixtures.R
Rscript tools/gen_r_foreign_fixtures.R
Rscript tools/gen_r_analysis_fixtures.R
Rscript tools/gen_r_local_fixtures.R     # also needs gRain
Rscript tools/gen_r_hpc_fixtures.R
Rscript tools/gen_r_missing_fixtures.R   # also needs gRain
Rscript tools/gen_r_causal_fixtures.R
Rscript tools/gen_r_lingam_fixtures.R
Rscript tools/gen_r_misc_fixtures.R      # also needs gmp and Rmpfr
Rscript tools/gen_r_priors_fixtures.R
Rscript tools/gen_r_amat_fixtures.R
Rscript tools/gen_r_sweep_fixtures.R
Rscript tools/gen_r_rejection_fixtures.R
Rscript tools/gen_r_lingam_arcs_fixtures.R  # also needs glmnet

Performance

Roughly two to three times slower than R on hc — 0.64s vs 0.32s for the 37-node alarm data set — because the network is marshalled into R objects afresh on each iteration of the search. Memory is flat across repeated runs.

Threads and processes

One call runs at a time per process. bnlearn's C keeps its state in process-wide statics — the arena results are allocated in, the interned symbol table, the random number generator, the jmp_buf error() unwinds to — so every entry point takes a lock. Calling from several threads is safe; it does not go faster.

This is bnlearn's own model rather than a limitation added here. R cannot be called from two threads at all, the vendored C contains no OpenMP and no pthreads, and bnlearn's cluster argument takes a parallel::makeCluster() cluster — which is separate R processes, each with its own memory.

So for real parallelism, use processes, exactly as R does:

from concurrent.futures import ProcessPoolExecutor

with ProcessPoolExecutor() as pool:                  # ~ parallel::makeCluster
    networks = list(pool.map(pybnlearn.hc, folds))

Each process gets its own arena and takes no lock. Seed inside the worker: the generator is per-process, so set_seed in the parent does not reach it.

Building from source

Needs a C compiler and a BLAS/LAPACK. No Fortran: R's dqrdc2 and dqrsl are translated to C in src/c/linpack/, and tools/check_linpack.sh checks the translation against the Fortran original bit for bit.

pip install -e . --no-build-isolation

To build and exercise the C core without Python in the loop — useful when bisecting a numerical disagreement with R:

tools/build_core.sh

Licence

GPL-3.0-or-later. See LICENSE and NOTICE.

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

bnlearn_port-0.1.0a1.tar.gz (2.5 MB view details)

Uploaded Source

Built Distributions

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

bnlearn_port-0.1.0a1-cp314-cp314-win_amd64.whl (7.5 MB view details)

Uploaded CPython 3.14Windows x86-64

bnlearn_port-0.1.0a1-cp314-cp314-musllinux_1_2_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

bnlearn_port-0.1.0a1-cp314-cp314-musllinux_1_2_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

bnlearn_port-0.1.0a1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.7 MB view details)

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

bnlearn_port-0.1.0a1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (5.7 MB view details)

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

bnlearn_port-0.1.0a1-cp314-cp314-macosx_11_0_arm64.whl (586.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

bnlearn_port-0.1.0a1-cp313-cp313-win_amd64.whl (7.4 MB view details)

Uploaded CPython 3.13Windows x86-64

bnlearn_port-0.1.0a1-cp313-cp313-musllinux_1_2_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

bnlearn_port-0.1.0a1-cp313-cp313-musllinux_1_2_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

bnlearn_port-0.1.0a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.7 MB view details)

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

bnlearn_port-0.1.0a1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (5.7 MB view details)

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

bnlearn_port-0.1.0a1-cp313-cp313-macosx_11_0_arm64.whl (583.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

bnlearn_port-0.1.0a1-cp312-cp312-win_amd64.whl (7.4 MB view details)

Uploaded CPython 3.12Windows x86-64

bnlearn_port-0.1.0a1-cp312-cp312-musllinux_1_2_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

bnlearn_port-0.1.0a1-cp312-cp312-musllinux_1_2_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

bnlearn_port-0.1.0a1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.7 MB view details)

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

bnlearn_port-0.1.0a1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (5.7 MB view details)

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

bnlearn_port-0.1.0a1-cp312-cp312-macosx_11_0_arm64.whl (584.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

bnlearn_port-0.1.0a1-cp311-cp311-win_amd64.whl (7.4 MB view details)

Uploaded CPython 3.11Windows x86-64

bnlearn_port-0.1.0a1-cp311-cp311-musllinux_1_2_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

bnlearn_port-0.1.0a1-cp311-cp311-musllinux_1_2_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

bnlearn_port-0.1.0a1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.7 MB view details)

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

bnlearn_port-0.1.0a1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (5.7 MB view details)

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

bnlearn_port-0.1.0a1-cp311-cp311-macosx_11_0_arm64.whl (595.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

bnlearn_port-0.1.0a1-cp310-cp310-win_amd64.whl (7.4 MB view details)

Uploaded CPython 3.10Windows x86-64

bnlearn_port-0.1.0a1-cp310-cp310-musllinux_1_2_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

bnlearn_port-0.1.0a1-cp310-cp310-musllinux_1_2_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

bnlearn_port-0.1.0a1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.7 MB view details)

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

bnlearn_port-0.1.0a1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (5.7 MB view details)

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

bnlearn_port-0.1.0a1-cp310-cp310-macosx_11_0_arm64.whl (601.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file bnlearn_port-0.1.0a1.tar.gz.

File metadata

  • Download URL: bnlearn_port-0.1.0a1.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for bnlearn_port-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 48e37137434444438170f93f8c5a121fa67d48d1d7587379dc92b0ac37977b1b
MD5 80039036b32ffee34b9ec92d2ea5a530
BLAKE2b-256 a2f8a086083b61a39583918c8cbedb05281ee6e3e8d7a59dbb8db96e25618f67

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1.tar.gz:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2ad88cdd11515811cb476f0ad77986d44486dc4c6f361dde1d387d4f6dbd6f30
MD5 da1af321464b208d66aee18e39fefde9
BLAKE2b-256 0c3bc50afa88157d4a97379bd8f29ce50f8db712bda96ba06b9e861e18e04fba

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp314-cp314-win_amd64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4914291727914f13974221d113d086c0c0a49f1eba074c4e2443c570ef7d2026
MD5 e29555baa7fda1d025e3c9b5ca253605
BLAKE2b-256 11c5ae9ab14bd568f668c427292b5429f595318e1c5ef135c5858d6624424199

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b97e001b0a2fd9418b170b3963765fcde06016063dd07b93dae4ea30a136d55d
MD5 dd154ab039551162fa12d0f8872e6fa9
BLAKE2b-256 aebfb3207eb8f718ee9e91a26167553bd594bbe629aa2b08191d0a7227e909b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 84652f84d9575d23cd66aafe4daba77fcfb44ccb6249e3a383a7cc7b40005127
MD5 d6e5ce72e280458b1a7b573de2310822
BLAKE2b-256 a36fcb9ac95acbd391dfead0fde3c3715f16956e2dbf65e51daf22733066867e

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ec940b40b29cb78447758f0ad5bf371168c2f9e0bc7b0e41037fc09bcac265f8
MD5 e5e87195de5c9b9dda2eaddb44838b72
BLAKE2b-256 bdeb057f85b683243da89ec266e4742cb5414de59582c783a9530810f859efbf

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 59f46226993d71d47a23233694205349d9a2ceaa0f316da8bf75a09637697506
MD5 c4c960bddf7974639dee45880942c525
BLAKE2b-256 58c7ae812a8b24d437f27b8392d122562b8e53d483a1fa2c1d02f35ab7e551a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f0da3c0bf9e0bc71e761fd28f6f26c0e5abd68aa25eef88b8d36b64f52e3477c
MD5 58c50b0b6fecc38e2e716a7f6de3ee0d
BLAKE2b-256 491bdf2ea766c5179d4096e8dd70ca64a0cb0a6ba21941ed962cf274f75f86fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp313-cp313-win_amd64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7f26a4be392cd474380873300022e32014232737e15e24ee7a98395e5df2010d
MD5 c7b404a6050259f50e4b1c472f30c6cf
BLAKE2b-256 8099653a25fee5eb69574f2df48c53c94deb073ed12a02e1749ecd97ec3bc6dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5783df08a54607d69cafef705d62f9d6bd94736a2974510669a727db53c3b797
MD5 4c4a59089c2333e66a8daae896141ed9
BLAKE2b-256 ec4c6141e73747c474b6e46ae9e900a89ca7de11bc1a72dec732b11a6a4500db

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 85309692727213e344f932fc115f6290be7238ab75458167d5b79dacae900bbf
MD5 5067dc252f3818f58fd7380293788d66
BLAKE2b-256 0960f8dbe89dd08d5e8677e705e5c8825fd5a5febcd69a82c6c6fd136c4a289d

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f0c0b23d136a050bc2488775f5a1710627462868f9eaaca876c032e818c4d96c
MD5 5137cefe796ffb94de087cf5a51b4544
BLAKE2b-256 8914a68426b34dbdee5dd63a5499c8a9135af96b76e0de20bfb831efb4a353e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dbdf171e55b16d7e7f6d9cfea349827e262faf8bd5580b00bb5b492ce0ae10be
MD5 4611bab30dbd9edb01c8961f827e685e
BLAKE2b-256 94c8ada93089d5457560fbf93ef384acad8d4dd2a2ba6c757c28edc40f05890b

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d88751b3664d395a752d6cbf423834b20408706401e43995be534c386bb788b7
MD5 508b98e07b7c977eaa7aa16ceb1fed46
BLAKE2b-256 880b29460284efefd398e543681cd9fc6e3864f4b72d9942ffbc1d19e5a06163

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp312-cp312-win_amd64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c859315d05c42c41391e0d5404e5e53e22aa9dc266f018eecb499c2feceb0907
MD5 a90fb185b56ffd3cfbc60df789a16ccc
BLAKE2b-256 0a8cc1edf04e91bf53998522d77fb8fb06c6e586a10db901d6915c6027ec7b07

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 531b73a415b71dc60bae59367a64f885c593696ac62c58a436551a60f4983409
MD5 ad4bb1a364ce545be2faee70b4c66d32
BLAKE2b-256 9911b400dfaf8393f02c42f4461868d358aff058130865791b6571904b0f666d

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7c8c276df412cd9eeb78c06b443d83ad4c22939d10defc9678585f57fbf5c637
MD5 d3e0511afa07e00b9d233c57f85b8d31
BLAKE2b-256 6ed6d4324c8ea62fd9c25f1613ca29be2356af75c3372bcc81f744341d926513

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4246eadf9345e5d84868369f137acfd1727dc95f78d874d997b733b382be62a9
MD5 ff563fad16fcb4b149ea4b2dbc044019
BLAKE2b-256 4339404350fb089eb4f411a4b32bec9b071492c1e6e1cef26c1ddf0eebd5fa81

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ea4b9af5d283e231ae48485c2aff2eedbd04c4fa261ae34ffd5cddf7be91060a
MD5 70845c99758046e7d849206d8b3f68f4
BLAKE2b-256 34d9584ad85c8a81bcc81d40725648a716fb35dbc87f2e811873265849ee4e00

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 761a0dfab104eaea706871c749e62497bb8f8936e5014b5684a5e8c5522b0df2
MD5 696b229e65335ef855b5768ae936ab93
BLAKE2b-256 a9a4391958b7d65af05131bff9708b2e9cf5db3228ad76d35a520724e6732759

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp311-cp311-win_amd64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 32b5f5f5874bbd341a366eb64c0ce01074539054c20c258e17018f652f7fb555
MD5 7a208d1a98b65489cf441f1b237f56c8
BLAKE2b-256 fa995d07b70225410e284ae7a719b1107341c17988df9d88da72f35135626f62

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e4a70849e909dabc7649223654949e15f4f9dadfee6cae16a6b7beb3fd058520
MD5 af7d12986f37c70a3d0bc947eac949d1
BLAKE2b-256 7e2a82660f29468816b50019b2136ef072375c8f4d3f13d8551963db8e7765f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 68659382faa36dfd005417d5c9411368fa897465a9bb38879efce1a73d3ca409
MD5 49d8b581d76b5d60950edf532c52065e
BLAKE2b-256 d6d396472f6134c3eece500e6c66c7cd1af887a58e2a08363b5fad4025de2622

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f0e89f13fd41c8001bc440efeb8294e01a50be2949a3f9ebf6fc5eb1fa6ebd9b
MD5 8ae5f40b60414543808b8836c4cf1620
BLAKE2b-256 070acd0139bf7c25fe71bc64fcadb932c7f97ab021b4fdc6082d5521a3e01dd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2ff1aca43700851b27e219f04e82e6ef69d2ac2e8792f35f54f6913a471d2a32
MD5 719238e2c42f6ef5655954127cfa3a54
BLAKE2b-256 0a81ac70866dd7203875a19e01457fc8775af8b0b2bd37d7f1abc202de56cbca

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 70d008a4eaabc4a3fa888f966e5a701e1306b049e723e52dcf58545c16c0a538
MD5 f1e30169102d55a83bdd76b9338beb67
BLAKE2b-256 f1f7404970342cff6c46029e6c7165e44808071905ae1d8679982ce9704ecf6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp310-cp310-win_amd64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f67b3eb0853eca528d83e54fe8aca7e08935b649ce6f9d78e4e8a6dd529363ba
MD5 61ee5f397f7d72ee2fbaaf464badfe2c
BLAKE2b-256 c70bfd7b3aefc9037428294df46beb195790c140059b2af801d65e9a0d5e0c3f

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 90c96d7f22c8059b406a81f205e7960eabb82d2c71d478cb408635a862da627f
MD5 d66dff454f0b743085f030cfe322f390
BLAKE2b-256 2bdb3973e9bc883d5ceb82700e1d646063490f42e1a646f031fb9f85fad7cb5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e7000cf18ac33f691e637c1af92fb8b71568db86a0b4f4800f919846137ed630
MD5 983d4ce0d812f6321ec4e03d1b227bba
BLAKE2b-256 258815d0948389b093cd4ea2f3375dcef847edd9616da4f8be66c6ce943829fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8039fc1cb0e9bb40af823bbcaa295b70fa707174b6f03d9e46943392cc519ca3
MD5 cc5b62f0bb8da144d2d5a60055377942
BLAKE2b-256 b61ca59b412f8a3d860c50b3b0484c45f5f2beb521e2867d5dd8a910d850c062

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bnlearn_port-0.1.0a1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bnlearn_port-0.1.0a1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c53108230964ab138f25ccc4682c5129cca430fbc952f45d64c81df5138b0a5b
MD5 4f62f4db2e8c1e18fbfc0491f032303c
BLAKE2b-256 3fe681da3f88383bd74223a1244666ca0e845ac320e3d9b12b951a64bd9406a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for bnlearn_port-0.1.0a1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tomtomtom1007/pybnlearn

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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