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.28.tar.gz (229.7 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.28-cp313-cp313-win_amd64.whl (606.5 kB view details)

Uploaded CPython 3.13Windows x86-64

tree_praxis-0.0.28-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.28-cp313-cp313-macosx_11_0_arm64.whl (450.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tree_praxis-0.0.28-cp313-cp313-macosx_10_13_x86_64.whl (464.2 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

tree_praxis-0.0.28-cp312-cp312-win_amd64.whl (606.5 kB view details)

Uploaded CPython 3.12Windows x86-64

tree_praxis-0.0.28-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.28-cp312-cp312-macosx_11_0_arm64.whl (450.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tree_praxis-0.0.28-cp312-cp312-macosx_10_13_x86_64.whl (464.1 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

tree_praxis-0.0.28-cp311-cp311-win_amd64.whl (603.8 kB view details)

Uploaded CPython 3.11Windows x86-64

tree_praxis-0.0.28-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.28-cp311-cp311-macosx_11_0_arm64.whl (448.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tree_praxis-0.0.28-cp311-cp311-macosx_10_9_x86_64.whl (462.1 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

tree_praxis-0.0.28-cp310-cp310-win_amd64.whl (602.4 kB view details)

Uploaded CPython 3.10Windows x86-64

tree_praxis-0.0.28-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.28-cp310-cp310-macosx_11_0_arm64.whl (447.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tree_praxis-0.0.28-cp310-cp310-macosx_10_9_x86_64.whl (460.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

tree_praxis-0.0.28-cp39-cp39-win_amd64.whl (606.4 kB view details)

Uploaded CPython 3.9Windows x86-64

tree_praxis-0.0.28-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.28-cp39-cp39-macosx_11_0_arm64.whl (447.8 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

tree_praxis-0.0.28-cp39-cp39-macosx_10_9_x86_64.whl (461.1 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: tree_praxis-0.0.28.tar.gz
  • Upload date:
  • Size: 229.7 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.28.tar.gz
Algorithm Hash digest
SHA256 9982521a767dfd7fffb85fbd83fbe2e59aec9f001e8311fdfb0bc41a8c30b3c4
MD5 a7404e6f08063b77dbf6faf2e9c30e58
BLAKE2b-256 17b3b5c0c1799300bf2422bf00324e7982168f88089ee4616c7ce3788fb78585

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28.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.28-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a9e252469ea90df554c3cd0186cdf4c3aa5cbf9cbaea2ffa17f889ea45ac38ad
MD5 3b6ff612a3547e8e75b235161aeff940
BLAKE2b-256 205fd5fe241d08dc86f1fe1ab118dd7acd0f1a7cbf6b80ac1e6f577f1449dc7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b3da3692a350f20c60604e870aa058fdc57971bde792ec2a239594d2c5519532
MD5 8e423464fe0e3aa2fe6b39666b7935cf
BLAKE2b-256 17e6ac354c0effb9de332e8c1890d1e0a2e6dcd77b5755489ae18b6a2c11ec11

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 80b210894deef2645941eed64a08b41b57e248609204c8393a68c4f1f5f2e828
MD5 384fdbc585246b4a6011c2a007d3fa7a
BLAKE2b-256 e35fa6a3a4c86d23d69610d88d068f30876e85b3612212f9642f5e20328eb78b

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 c01355d71c5af698a5e6175854375d9e02c69877178542df386b0a55c459ef00
MD5 6c13ae379cd2fe67ed9bfcb079b0adb7
BLAKE2b-256 b711556fa74604009bd93ff7cc24a613cf8f027e6ea055dd79e543739be45c27

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 887e6315680ae47a18978146e0a80fdfff2cef45c5f208f14a40ef591fc531d4
MD5 cd24573a8360cb67087d58c103eeb2dc
BLAKE2b-256 21dd25076831ed5f0525cc4e91cd89a91de4849054218eb25fd8b71b11276466

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e5fc381bd33aa4c00c6b5754829b97bf81e7bb63959433bb104a3905ae672f13
MD5 69cfefdc1e4f683702f871302f44c553
BLAKE2b-256 d993782872d489ec41676cbb05d9871766cdf8d7c4b9d5eef6f299005086af77

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fb03de3c6564d384973a8cbc7276e7b488e26791932daabf9e42a3b17cb43fb7
MD5 0922d2e8b5dc27d3cdbf695404e5c450
BLAKE2b-256 a5564aca6672ca98669cccc7b889b937d22acda42edb1a9197b533b7ac1e66ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 6a99b4a40c6bbb5532c3a003c41937a2fc998a9f9086e61e6f45b37bd1f01732
MD5 000cefca736e3f34cb51ed6a7fb3611e
BLAKE2b-256 b7ec1a8b2cacae697346139aad765d4c2b62ec8183c403d126fdbaeea96947ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 83e96a8ab6dd813d5c1466da59d4a6ef2afe8805d731afce592ddec9c82e329a
MD5 375c2a6002159389405fbf65529bba98
BLAKE2b-256 9b390a4e63c39a6318c32305419043cb52d81d1dfe3ad35ae9ff643ce11e2e09

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dd2bbd88d846207aa1873ae0158275b5eac404c9492fcde18e95a30263356777
MD5 151570cfb3827ba7b05e46a4874fe957
BLAKE2b-256 ca59fab076ff981ce0e0e0756f5e3ca1dee4af430eec803eee493539fef98af8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6e15d78cc076804f327e1b12f747a5df6dbe7041303403307208fedab997f493
MD5 5efecedba4b6fa0a58f24463a548cc98
BLAKE2b-256 b8f61873379088873a65dfb7a76e23f654bb212deaad1a0dd9f2bcb9b88e3b6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a0ab01b40de7e7c27e7a2d68ec0d849d68cd51f824b306fd7f9e10dd89b5ccd0
MD5 f2a567488db671b7b704ac0c7f2eea04
BLAKE2b-256 4737041ec0c40c24a8fe0a44fda4b3d6f5f98cf480420670117e703827cbe9df

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3b14c013c338b33b6df616f08a0dc63d53dbae94cabfb7ecb069a2f8e54c30f8
MD5 3b3f5e6116b9c4fb9a75a3a9373992ad
BLAKE2b-256 553312afe3a2b282df8f516c7e8f911696cc65baec9a0ebe0d202d65aecbd126

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 87203ef5213d2683a02177b268b199aedd5c8a1820638a93c7e67ffc65263a51
MD5 23927644562579377bfd9540f13751fb
BLAKE2b-256 cb1bb7d24e5ae892d46b4dc5f4023c4c78a49c6dce374a67a74146420c245f74

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87b1c501a532a2d9ee479b914577dc5319129b34161f0730660493a46bfbdc30
MD5 465424f5535bb21d4b204c37429186dd
BLAKE2b-256 738ed5e27b584fc582c18bfbd2def4efcc8ef42c96b549ca85ae84b0b89ec8d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 637122cef4b45d641bf929ab28357e751e1b164e5875bf93196598abe9872a7f
MD5 651bc13f1f77ed163c8268c745adc4b4
BLAKE2b-256 f3f372ddac980510feb29134f8eb89c6d5a3595e2411adbe0764e083ef852cd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: tree_praxis-0.0.28-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 606.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.28-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 3f126fbb8cf26ee930fd85e71a2b014a13d5d29d57a47b95ec748824bbaa63bf
MD5 b312af378cd3bdde4d7c0c7a3a88f4ef
BLAKE2b-256 207bfdbe5cd2f79d2209cedeaac4f10c92a602f43713bad7ff78aa6cdce9c13e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 318ed3aec1fac42017386df9fa600a7d5a8053fb274df5c5764aad25f114e134
MD5 6756f2d990d7a34238b0d8500fd5a2d1
BLAKE2b-256 3da7a2f0a277ab902c5e2d7f50b67bdea99bc74fa46fdaf1afcd934a86b63ace

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4373ade0c12c969414ce987464078970aee71a35c726c1bb1d0c9dac72c95f02
MD5 25a0f092db27060717272b286b9147da
BLAKE2b-256 7882e39a62ed0768b7760ab1b8802290ec176150ce339fdd6dc9e48a2745d863

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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.28-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tree_praxis-0.0.28-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9887e5816e1426bbeb97d28ddbef9bfd1210244eaff6545f4b8fc9fd9c027a06
MD5 582275b4aaf09281d0828312dab738d8
BLAKE2b-256 f2ca84f7f0f79fe53a298d5a4e5c141592281f0503fb5dfc26d4f19856ce8e52

See more details on using hashes here.

Provenance

The following attestation bundles were made for tree_praxis-0.0.28-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