Skip to main content

PRAXIS computes exact and approximate Rashomon sets of decision trees, individual high-quality trees, and variable importance over the full set of good models.

Project description

PRAXIS: Fast Rashomon Sets for Sparse Decision Trees

Installation and Usage

pip install tree-praxis

See examples/example.ipynb for a complete walkthrough of using the code.

What PRAXIS does

This code creates Rashomon sets of decision trees. The Rashomon set is the set of all almost-optimal models.

PRAXIS is designed to enumerate the Rashomon set for sparse decision trees. In other words, instead of returning a single optimal decision tree, it returns a set of decision trees whose objective values are all within a small factor of the best tree found. For a decision tree T, PRAXIS uses the objective:

L(T) = misclassifications(T)
     + lambda_reg * n_samples * number_of_leaves(T)

The Rashomon set is the set of all trees whose objective is within a multiplicative factor of a reference objective value. If T_reference is a reference tree, then for a given rashomon_mult, PRAXIS enumerates trees satisfying:

L(T) <= (1 + rashomon_mult) * L(T_reference)

To learn more about the algorithmic ideas behind PRAXIS, please see our ICML 2026 paper. At a high level, PRAXIS uses a proxy algorithm to estimate the best achievable objective within each subproblem and uses it to set L(T_reference), and then refines these estimates as enumeration proceeds. When the proxy algorithm is exact, PRAXIS performs exact Rashomon set enumeration, finding all trees with L(T) <= (1 + rashomon_mult) * L(T_opt), where T_opt is a tree that minimizes the objective. When the proxy is approximate, PRAXIS can trade a small amount of empirical approximation quality for substantially faster runtime.

PRAXIS also includes tools for computing feature importance over the Rashomon set through the Rashomon Importance Distribution (RID) and to directly use the proxy algorithms to return one tree, if desired.

Data requirements

PRAXIS expects the input matrix X to already be binary.

X[i, j] in {0, 1}

If your data has continuous, ordinal, or categorical features, binarize it first. The package includes ThresholdGuessBinarizer for this purpose.

from praxis import ThresholdGuessBinarizer

binarizer = ThresholdGuessBinarizer()
X_binary = binarizer.fit_transform(X, y)

The label vector y must contain integer class labels numbered consecutively:

0, 1, ..., num_classes - 1

For binary classification, this means labels must be:

0, 1

Basic example

from praxis import PRAXIS

model = PRAXIS()

model.fit(
    X_binary,
    y,
    lambda_reg=0.01,
    depth_budget=5,
    rashomon_mult=0.03,
    lookahead_k=1,
)

print("Number of trees:", model.count_trees())
print("Minimum objective:", model.get_min_objective())

See examples/example.ipynb for a complete walkthrough on binarization, fitting PRAXIS, and accessing information about the Rashomon set. We provide a comprehensive list of options and included methods below.

PRAXIS.fit(...)

model.fit(
    X,
    y,
    lambda_reg=0.01,
    depth_budget=5,
    rashomon_mult=0.01,
    multiplicative_slack=0.0,
    key_mode="hash",
    lookahead_k=1,
    proxy_style=0,
    root_budget=None,
    use_budget_refinement=True,
    guarantee_rule_list_recovery=False,
    majority_leaf_only=False,
    cache_early_exits=False,
    heuristic_for_greedy=1,
    proxy_caching=True,
    num_proxy_features=0,
    proxy_only=False,
)

Parameters

  • X
    Binary feature matrix of shape (n_samples, n_features). All entries must be 0 or 1. If your dataset is not binary, use ThresholdGuessBinarizer first.

  • y
    Class-label vector of shape (n_samples,). Labels must be integers numbered 0, 1, ..., num_classes - 1.

  • lambda_reg=0.01
    Regularization strength for tree complexity. This controls the penalty on leaves in the objective. Larger values favor smaller trees.

  • depth_budget=5
    Maximum depth of the decision trees.

  • rashomon_mult=0.01
    Multiplicative slack for the Rashomon set. A tree is included if its objective is within this factor of the proxy algorithm. For example, rashomon_mult=0.03 means to search for trees within 3% of the proxy's objective. After the algorithm returns, one may want to only consider trees within 3% of the minimum objective tree, which can be done easily as the trees are returned in sorted order of best-to-worst objective.

  • multiplicative_slack=0.0
    An extra amount of slack applied to the objective bound. Most users can leave this at 0.0.

  • key_mode="hash"
    Cache-key representation used internally.

    Options:

    • "hash": use a 64-bit hash of the subproblem bitvector. Fast and memory efficient.
    • "exact" or "bitvector": use exact bitvector keys. More memory, no hash collisions.
    • "literal", "lits", "lits_exact", or "itemset": slower, but avoids hash collisions without needing more memory.

    Most users should use "hash".

  • lookahead_k=1
    Lookahead used by the proxy algorithm. Larger values usually make the proxy stronger but slower. We recommend lookahead_k = 1 for most users. If lookahead_k = 0, PRAXIS uses the a greedy tree algorithm as the proxy. If lookahead_k = 1, PRAXIS uses a modified version of the LicketySPLIT algorithm. lookahead_k = depth_budget-1, then the proxy is optimal and the Rashomon set returned will be exact. lookahead_k should always be set in 0,1,2,..depth_budget-1.

  • proxy_style=0
    Which proxy/oracle style to use.

    Nearly all users should use the default 0.

  • root_budget=None
    Optional manual objective bound. If None, PRAXIS computes a reference objective and sets the Rashomon bound automatically using rashomon_mult. If you pass an integer, PRAXIS uses that objective bound directly. The loss optimized is number of misclassifications + lambda_reg * n_samples * number_of_leaves.

  • use_budget_refinement=True
    Enables the iterative budget refinement procedure. This is usually helpful and should nearly always stay True.

  • guarantee_rule_list_recovery=False
    Enables a special rule-list recovery mode. Most users should leave this False.

  • majority_leaf_only=False
    If True, only keeps the majority-class leaf prediction when constructing trees. If False, PRAXIS may keep multiple valid leaf predictions when they fit within the objective budget.

  • cache_early_exits=False
    Caches cheap subproblems and early exits. This can speed up some runs at the expense of more memory consumption.

  • heuristic_for_greedy=1
    Split heuristic used by the greedy routine.

    Options:

    • 0, "entropy", "info_gain", "information_gain", "ig": entropy / information-gain style splitting.
    • 1, "entropy_depth1_exact", "depth1_exact", "default": entropy-style splitting with a depth-1 exact evaluation. This is the default.
    • 2, "best_split_for_leaves", "misclassification_minimizing": choose splits based on minimizing child leaf objectives / misclassification.
  • proxy_caching=True
    Enables caching for proxy subproblems. This should almost always be left on as it will speed up PRAXIS by orders of magnitude.

  • num_proxy_features=0
    Restricts the proxy algorithm to the first num_proxy_features features. If 0 or negative, all features are used. If the first num_proxy_features features are chosen well (such as via a feature selection procedure), this can speed up runtime. We recommend not changing this for the vast majority of users.

  • proxy_only=False
    Controls whether PRAXIS builds the full Rashomon set or only returns the proxy tree.

    Options:

    • False: build the Rashomon set.
    • True: run only the proxy/single-tree algorithm and skip Rashomon enumeration. This tree is stored at index 0 of the data structures.

Main methods

count_trees()

model.count_trees()

Returns the number of trees in the Rashomon set.

get_min_objective()

model.get_min_objective()

Returns the minimum objective value among the enumerated trees.

get_root_histogram()

model.get_root_histogram()

Returns a histogram of objective values at the root:

[(objective_value, number_of_trees), ...]

This is useful for seeing how many trees exist at each objective value.

get_tree_objective(tree_index)

obj, obj_norm = model.get_tree_objective(tree_index)

Returns the unnormalized and normalized objective value of a specific tree.

  • obj: integer objective value.
  • obj_norm: objective divided by the number of samples.

count_trees_within_mult(mult)

model.count_trees_within_mult(0.03)

Counts how many enumerated trees have objective at most:

round((1 + mult) * minimum_objective)

This is a post-hoc way to ask how many trees are within a different multiplicative slack of the best enumerated tree.

get_tree_paths(tree_index)

paths, predictions = model.get_tree_paths(tree_index)

Returns the selected tree as paths and leaf predictions.

The path representation uses signed, 1-indexed feature IDs:

  • +f means go left / feature f - 1 is true.
  • -f means go right / feature f - 1 is false.

The feature IDs are 1-indexed in this raw method, so subtract 1 to recover normal Python feature indices.

get_tree_paths_str(tree_index)

paths, predictions = model.get_tree_paths_str(tree_index)

Returns a more readable 0-indexed string representation of the paths.

Example output:

["[+0, -3]", "[-0, +2]"]

This is usually easier to inspect than get_tree_paths(...).

get_predictions(tree_index, X)

preds = model.get_predictions(tree_index, X_binary)

Returns predictions from one tree.

If the model was fit with proxy_only=True, only tree_index=0 is supported.

get_all_predictions(X, stack=False)

preds = model.get_all_predictions(X_binary)

Returns predictions from all trees in the Rashomon set.

If stack=False, returns a list of prediction arrays.

If stack=True, returns a 2D array:

(n_trees, n_samples)

plot_tree(tree_index, feature_names=None, figsize=(8, 6), ax=None, title=None, show=True)

fig, ax = model.plot_tree(0, feature_names=feature_names)

Plots one tree using matplotlib.

Parameters:

  • tree_index: which tree to plot.
  • feature_names: optional names for the binary features.
  • figsize: matplotlib figure size.
  • ax: optional existing matplotlib axis.
  • title: optional plot title.
  • show: whether to call plt.show().

Returns:

(fig, ax)

Rashomon disagreement methods

These methods summarize disagreement across the Rashomon set. They assume binary predictions in {0, 1}.

get_p_per_sample(X, tree_indices=None)

p = model.get_p_per_sample(X_binary)

Returns one value per sample:

proportion of selected trees predicting class 1

If tree_indices=None, all trees are used. Otherwise, only the specified tree indices are used.

get_variance_per_sample(X, tree_indices=None)

v = model.get_variance_per_sample(X_binary)

Returns the variance of hard predictions across trees for each sample.

For binary predictions, this is equivalent to:

p_i * (1 - p_i)

where p_i is the proportion of trees predicting class 1 for sample i.

get_avg_variance_across_samples(X, tree_indices=None)

avg_v = model.get_avg_variance_across_samples(X_binary)

Returns the average disagreement variance across samples.

plot_disagreement_cdf(...)

fig, ax = model.plot_disagreement_cdf(X_binary)

Plots the empirical CDF of per-sample prediction variances.

Parameters:

  • X: binary feature matrix.
  • tree_indices: optional subset of trees.
  • ax: optional matplotlib axis.
  • figsize: figure size.
  • title: plot title.
  • show: whether to call plt.show().
  • label: optional plot label.

Returns:

(fig, ax)

Rashomon Importance Distribution methods

PRAXIS includes tools for estimating feature importance over the Rashomon set using subtractive model reliance.

compute_rid(...)

rid_out = model.compute_rid(
    X_binary,
    y,
    n_boot=10,
    lambda_reg=0.01,
    depth_budget=5,
    rashomon_mult=0.03,
    lookahead_k=1,
    seed=0,
    memory_efficient=False,
    binning_map=None,
)

Computes Rashomon Importance Distribution output.

Parameters:

  • X: binary feature matrix.
  • y: integer labels.
  • n_boot: number of bootstrap samples.
  • lambda_reg: tree complexity regularization.
  • depth_budget: maximum tree depth.
  • rashomon_mult: Rashomon slack.
  • lookahead_k: proxy lookahead.
  • seed: random seed.
  • memory_efficient: whether to use the lower-memory implementation path.
  • binning_map: optional map from original features to binarized columns. This is useful when multiple binary threshold features came from the same original variable.

Returns and stores the RID output dictionary.

rid_plot_mean(feature_names=None, **kwargs)

model.rid_plot_mean(feature_names=feature_names)

Plots the mean reliance score for each feature.

rid_plot_violin(feature_names=None, **kwargs)

model.rid_plot_violin(feature_names=feature_names)

Plots the distribution of reliance scores for each feature.

rid_plot_cdfs(feature_names=None, **kwargs)

model.rid_plot_cdfs(feature_names=feature_names)

Plots the CDF of reliance scores for each feature.

Recommended starting configuration

For most users, start with:

model = PRAXIS()

model.fit(
    X_binary,
    y,
    lambda_reg=0.01,
    depth_budget=5,
    rashomon_mult=0.03,
    lookahead_k=1,
    key_mode="hash",
)

If your original data is not binary, use ThresholdGuessBinarizer before fitting.

See examples/example.ipynb for a complete walkthrough on binarization, fitting PRAXIS, and accessing information about the Rashomon set.

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

tree_praxis-0.0.29.tar.gz (231.6 kB view details)

Uploaded Source

Built Distributions

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

tree_praxis-0.0.29-cp313-cp313-win_amd64.whl (609.6 kB view details)

Uploaded CPython 3.13Windows x86-64

tree_praxis-0.0.29-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.4 MB view details)

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

tree_praxis-0.0.29-cp313-cp313-macosx_11_0_arm64.whl (453.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tree_praxis-0.0.29-cp313-cp313-macosx_10_13_x86_64.whl (467.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

tree_praxis-0.0.29-cp312-cp312-win_amd64.whl (609.6 kB view details)

Uploaded CPython 3.12Windows x86-64

tree_praxis-0.0.29-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.4 MB view details)

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

tree_praxis-0.0.29-cp312-cp312-macosx_11_0_arm64.whl (453.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tree_praxis-0.0.29-cp312-cp312-macosx_10_13_x86_64.whl (467.0 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

tree_praxis-0.0.29-cp311-cp311-win_amd64.whl (606.7 kB view details)

Uploaded CPython 3.11Windows x86-64

tree_praxis-0.0.29-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

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

tree_praxis-0.0.29-cp311-cp311-macosx_11_0_arm64.whl (451.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tree_praxis-0.0.29-cp311-cp311-macosx_10_9_x86_64.whl (465.1 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

tree_praxis-0.0.29-cp310-cp310-win_amd64.whl (605.4 kB view details)

Uploaded CPython 3.10Windows x86-64

tree_praxis-0.0.29-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

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

tree_praxis-0.0.29-cp310-cp310-macosx_11_0_arm64.whl (450.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tree_praxis-0.0.29-cp310-cp310-macosx_10_9_x86_64.whl (463.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

tree_praxis-0.0.29-cp39-cp39-win_amd64.whl (609.4 kB view details)

Uploaded CPython 3.9Windows x86-64

tree_praxis-0.0.29-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

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

tree_praxis-0.0.29-cp39-cp39-macosx_11_0_arm64.whl (450.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

tree_praxis-0.0.29-cp39-cp39-macosx_10_9_x86_64.whl (463.8 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file tree_praxis-0.0.29.tar.gz.

File metadata

  • Download URL: tree_praxis-0.0.29.tar.gz
  • Upload date:
  • Size: 231.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tree_praxis-0.0.29.tar.gz
Algorithm Hash digest
SHA256 294261c2f9872f39f7bd31e5358621a0f1eeb2bf45c9da51de2e542e25890786
MD5 5c6e3e3506971299d7357ed19d16e551
BLAKE2b-256 91186ecb12c118d677f2e2ad1c69a562b2418f04d6260821a8d3f03563c0d568

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29.tar.gz:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2ef80c4221baa5602ed0118aa2b07630655b1ba234b352b16abd73534b550592
MD5 1e23356b59e63eddb03202142873bc8a
BLAKE2b-256 c6acf0836b2516c02e7b8b10c44cc731f0dcf82e368b6bd4268a63fbb616a207

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp313-cp313-win_amd64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 95984f353053a943306314017261152bf297fbf57f9ac3632e689ee3538f6014
MD5 a4a3877742bd615d73867b8bfb1b35ea
BLAKE2b-256 eaf818cb7873644f6c1e458e67aaffa79d32a45657d6d17589f2fb4e8a03f8c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 af57509ad14a718df602c14f7ef4bb29c908101125cec084e6693c4a400203e1
MD5 9a381f383f1bc91ab27fa046524ce3ba
BLAKE2b-256 44ee8354a7b0101e75a2042b85056c89a5a9a6478c7d288f2b993821d24f2a32

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 f131485f074769843c19a6fa9941e5cf08364780f1aa7af1e58408062bdde92f
MD5 e44a7f6eb523506919f7489d58c2ae22
BLAKE2b-256 654433f5867aff0dd85b8c786f0abf40b15e675736206c68f03ddfb2a5f077e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 711950a3644078d7d43d8d4b330ce231702ba341fe43f6ad2df812c5f7175ad1
MD5 9f3d1d1da51368ede0d421677d3398a2
BLAKE2b-256 724c77dee6b1d99cc142daf0dec6587f8e89c6227446ae4ab083fad5d3edbd38

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp312-cp312-win_amd64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4ed203ae92a333f8f6a51f4a065ea0754f43451a8c77387f4793be63d2d39469
MD5 03d675c2944f9c33d3822cb6f3472cb1
BLAKE2b-256 13d2f812b8a2154027d01c0c640c3842003ddf908e56c230371a525734367170

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 05a2c9ec2d2997a6816e7c9bc8a09c73b68bbcd694f39fa1afc0ddd0b3896777
MD5 c2430ac7aad96050a4a5bf9d9ba96a86
BLAKE2b-256 410e88bd22c9a282bfe0513b2d001ba908c8de3025e001d40d313dfc05643777

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 8a0188ae0895561e1eadbc187f11ad3ec80fb47b29818473e3090b7c586ddea6
MD5 0b7a28b0c126b94801207f31dbacc90a
BLAKE2b-256 c202e2edd5b94619e54bf25c45f0cd1b8c6c8514084c07923459cb9d369ce9e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 98c5ed41f871ab8a76d4f0bf5811cd3dd2a33abce85ce9eb4f3fb558e1c7322a
MD5 e1c1b514f9a1866dd5360dc693d8677d
BLAKE2b-256 11755a08685ff5b6b995b89a2b54b6bece4ec7b9ad993bfd4f4b0b343d60b4e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp311-cp311-win_amd64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8c5dab8799e857e07a4ded1eb638a17eeb53db9125e26a84205e789941f56b0b
MD5 c0f74f136e35c8ee11b3bb2a974bfde4
BLAKE2b-256 ec55269a6cebd3cbb19cb3c34347d4385f98831cdd7872075232feb2d34505a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bd36e2d5da9890e875516336bbbc9870281363f33e398a0a2696af183b2282fe
MD5 e60dedc222c7e4969313a22b67728a12
BLAKE2b-256 7fb9f3a3b6531c591f23d43e56120b346ae2d65ce50ed306bdd1071ef9bfd731

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 59a5e2b3fb64026dc96ff77061940347f7ec3fcc84415752fa4e097f9b0f7664
MD5 2c7e2ecd116e7170aba689b9255a86d0
BLAKE2b-256 f579e7384eb5303d72a775d4e4407664f9c764ee7ca389618613746d9383bb79

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1066704b1eb6163918c33b8812dddc179cfd71b96c8f6830d9a5a6a2e1007aba
MD5 431a57165e6718f06125a123fd63220d
BLAKE2b-256 aec7d3632bb27f132821fa87f47c3337ce1b47538fd1d63cc5a305b0f38d6e7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp310-cp310-win_amd64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cc77ead398aa03a63305ba75c68abc6299227959f6c86b2798c4b87db36966d7
MD5 03397d9fd280005fcb1f430820435cc8
BLAKE2b-256 ebcca1f31e4808dc1090aced8823e5114f32d9a9124e3a6e9624966d7d695566

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f0711449015689bb5dbacecd27f434c9be23cefba1caec117f60c8d9f1515735
MD5 e46195feaf85ce5e3aaebdc997fafa52
BLAKE2b-256 fed1182b41438e7dc617a2691a35776f8ae9783779d52079adff29eab3fc7f4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4b789523c16929e6194a2f44c1bbca34e97b4af7cabd3a3046e75e07d0d7c7e3
MD5 a1b897108a3b14cc8a98db191085b30a
BLAKE2b-256 1d5411862efacaeb40cb064f382fc502f5e8decef0d5a39bc4f5eb4e523dadc8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: tree_praxis-0.0.29-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 609.4 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tree_praxis-0.0.29-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 cd5e5a83e14b447336d0c1b81327cc0138197fec2c32a1b0f975fad19c4c0bb6
MD5 594e451fd67b50b909ffe306c48c6228
BLAKE2b-256 63fd50e05fe0fac6e514621934b6d3659fe4a163d9d1fde0cf483e5faf1cdbc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp39-cp39-win_amd64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 450f56590bf025b9c45fa9b6bf70f3c17e0c523fbe2ebf32f89c5c6c394d3995
MD5 6dc1a3f9fef1fd93d83dc413eda4fe8e
BLAKE2b-256 3d7f3ec234088ca42863a33a17235207897fa5cad1686915cd91960f4d948aea

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 366ff5d4be2169111db47cb73c7494711af560fb2262b8d73defc67832e16eb7
MD5 485964337e2b0844bb4d9ce54ebdc6f8
BLAKE2b-256 57f8096feb4e07a07940e0e3d337e395803dfdda75bd337be763abab58c42dc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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

File details

Details for the file tree_praxis-0.0.29-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.29-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 43bd9793db33b5d6a5f6549dd19b313216dcf9c02213b143175eee87deaa6e31
MD5 fdeea32727b5b87e9c8db78d02c59d99
BLAKE2b-256 84ae154a068e5c1d2b13d7377134727663873a82356da84d9194c8e2d8745a56

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.29-cp39-cp39-macosx_10_9_x86_64.whl:

Publisher: wheels.yml on zakk-h/PRAXIS

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