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.20.tar.gz (51.0 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.20-cp313-cp313-win_amd64.whl (413.7 kB view details)

Uploaded CPython 3.13Windows x86-64

tree_praxis-0.0.20-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.9 MB view details)

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

tree_praxis-0.0.20-cp313-cp313-macosx_11_0_arm64.whl (257.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tree_praxis-0.0.20-cp313-cp313-macosx_10_13_x86_64.whl (270.9 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

tree_praxis-0.0.20-cp312-cp312-win_amd64.whl (413.8 kB view details)

Uploaded CPython 3.12Windows x86-64

tree_praxis-0.0.20-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.9 MB view details)

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

tree_praxis-0.0.20-cp312-cp312-macosx_11_0_arm64.whl (257.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tree_praxis-0.0.20-cp312-cp312-macosx_10_13_x86_64.whl (270.9 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

tree_praxis-0.0.20-cp311-cp311-win_amd64.whl (411.8 kB view details)

Uploaded CPython 3.11Windows x86-64

tree_praxis-0.0.20-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.9 MB view details)

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

tree_praxis-0.0.20-cp311-cp311-macosx_11_0_arm64.whl (255.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tree_praxis-0.0.20-cp311-cp311-macosx_10_9_x86_64.whl (269.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

tree_praxis-0.0.20-cp310-cp310-win_amd64.whl (410.9 kB view details)

Uploaded CPython 3.10Windows x86-64

tree_praxis-0.0.20-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.8 MB view details)

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

tree_praxis-0.0.20-cp310-cp310-macosx_11_0_arm64.whl (254.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tree_praxis-0.0.20-cp310-cp310-macosx_10_9_x86_64.whl (268.0 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

tree_praxis-0.0.20-cp39-cp39-win_amd64.whl (414.1 kB view details)

Uploaded CPython 3.9Windows x86-64

tree_praxis-0.0.20-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.8 MB view details)

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

tree_praxis-0.0.20-cp39-cp39-macosx_11_0_arm64.whl (254.8 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

tree_praxis-0.0.20-cp39-cp39-macosx_10_9_x86_64.whl (268.2 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: tree_praxis-0.0.20.tar.gz
  • Upload date:
  • Size: 51.0 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.20.tar.gz
Algorithm Hash digest
SHA256 27fb83ae6d9115cb4ab332f9f6f3c6d0402096545dcdffab5d3301089c917805
MD5 88d798ada0064c6b935b0d16d8ac6875
BLAKE2b-256 bdeb86ebf61f1b5640f4b9c27aebb823248448093954c0108105957878b35b66

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7547f5b990ed0ebf6dbfc8ea794f747ac324ed1fae967b18ddd2d644a17f2e34
MD5 d3eafbfcb2144d92421cd43bddd8546c
BLAKE2b-256 32bf8a9ff4067559936c5bdb029f6e424af624dcc683752b52da1c69f4fba43f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6f7d861354c8feda132e9e1251e909f9ca847f5fb639137e58b7ad5a1bf285a7
MD5 1f083b96930bb7a1eefc07d69a9e860c
BLAKE2b-256 8de94f95d761e6a48c0526cfc503898ff0b149283a19f241d74c81f746bcc43a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 691752d6a150d5ee3dbb2c925433b94294d4a3ff8ead5c92027bcd6cbe9671c0
MD5 5343388331b489f6e1b4ec50740a7c25
BLAKE2b-256 38dca7032898ffadfa1779b7dbc4b516ad51178c25bce0710283164ae69c035a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 f8bffdecbf4627fd9fdd151f3491e045f8d899e20ef8c6c2f708427ea2e77744
MD5 571aeb018666fa5122ca0d19e7b37ff4
BLAKE2b-256 afe6b4199c1bd0bdf700fda2d0f4246978a32c41ee31a97c68c512d65ccc67ca

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c5e6ce18a561c1eda9b5e24cd232be440801af9aa807f21a5d2387e1ff06da94
MD5 e852830f22f4f0a827873c76fef09feb
BLAKE2b-256 c2c4ba3780232b9ccd138eb308372b0ca147b2ab1aea989c76b5a5657902056d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 56127910da42502206cb12cb375c69379b88546e6365be94e505dd3983e14013
MD5 2a0957827bc2104ceb07bb0088542c32
BLAKE2b-256 809151ea8a2fd16636d0d7f843c446cd9dbcd10c5818147cc1394aa9aa25223e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 00b9c1061d0f7fc6b73de0f18c0ca9d9db87bcc6a03f8b7b6ca850c578f89c41
MD5 5d527f567fb4072fd11c4801037fac52
BLAKE2b-256 016b0e52a7cfb210c4943d2d93a9c2a6fe933b86879376d8c7ec8b17982318b0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b87b542a6f75bfed0add5ee885741fd5f09b44c8eceba2332a4a09e863b25a69
MD5 307c4a39175d281e66d3a766c2ad6b81
BLAKE2b-256 614df9c391518564b1b4f372e06947ef974d7694f1d33bba406b15d29e780dc0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c0c825b8a58dab21c0798d970176688d70cdc83a16a4df14455dc83034ca9d66
MD5 92fd95bb61176724926c0771b0f31375
BLAKE2b-256 75cd6450f96fd4e4bc606562823ad9fb75c443b9310a8568c398b78a759e3f5d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eab250368034f8fff38ca9cee59facbf4ae02b13903793bbbaf66ccfe89f4991
MD5 c7ff90e44f85c95bcf533c8d5abb7f07
BLAKE2b-256 470c25ed0d5ede0535faafba9081cfb090a18e8ab0fe0f6cc38c57d2efd7a724

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 afbef75e074250cfd4d8371fc82a0a518bbaf08a5324330773cebd0ff2e41fcf
MD5 e25bc2e5459d29fdd028dd5fcba334a6
BLAKE2b-256 4eda4a4b9bf19dc99b16b10567878e5402ffc1634e93db5c309afcba1a5a50b2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a39fb9da78a15fa38e6c0c20637a3b61f1f830f12b25d445f8e1017fbb8d2750
MD5 ba8fe5baa5bd2dae1dcf4c133151cd50
BLAKE2b-256 4f84e972232c621c96e593069f08deb8ee21a2bddd130a00de523a147e0c3d7b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8d920af8921285f38f9a4ea6ce3fb35cd0c5e9685de1f298206ff62fd2dabfa4
MD5 c1a6a4916bd064749d20e3ff796f6243
BLAKE2b-256 3391419f909ba4c3a87f3dae8e2dbb0cd79c5034dbcc125325c360c2ffa55c7d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 641eaf3489b2419d663ccd86283841cfd251cadaa46017c83a312606a18f52d5
MD5 2b29c4dc35be6ea9b6ea52f1aad8ddc3
BLAKE2b-256 a5d871305978c3d8534958e222fe426b2a6d0bf83403bae741565806650cbb0b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6b057e6bd59dae587e2a1f3c351d3ce10e5ce148e6b15ca7430bfdef0d988206
MD5 7015e2df33456fd254a5b3accb4274bf
BLAKE2b-256 2f9069a36f5138a682f1191b67f09212d7d9d9162657365da5fe58b88b499a35

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 78766d4e72a71e2c41a90a0590bf6eadc9630dd2cf4bea25551925c0922ba6d1
MD5 e2e50562e9b69e7f883b62544be67d0d
BLAKE2b-256 dc0d4f0bda792e904b3e24e087d26ae18419af1dc9150e6a1f19952153d1d44f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: tree_praxis-0.0.20-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 414.1 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.20-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0210fa5090836400ffbc0a1ace46a5921a5ac454ebc2b6e2cea36b904e883e1c
MD5 e02416f86b028e17cc0047339a019297
BLAKE2b-256 38039c2c3a07a222f02b76cc60ea5cb6a75305034d0c247d6095b0c5b786f2de

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 370057afd81ed97853ad9a03880a164c1ab3b7d0ea834c7a1d91775f398e319b
MD5 aacf53c85c9aa63026aee26584cb609f
BLAKE2b-256 4250f9532479f69e5539bd30de7cf04bfe2f77e38362d928d2e6b76c50755589

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4481dff5b07e690d782ac9bac1796cab2ac40cecaa99109aeb875463a8132853
MD5 f05f3f47633add2157eb6c289ab99c41
BLAKE2b-256 aa972534da36567dbb7eeb5bf86997ee69d19737b51586cc1dc28de17f870c2f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for tree_praxis-0.0.20-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e914966c0bab9c9636f53ec8d4a6be7193039764948b4ac2f7a8c3a6f45f1155
MD5 5b304937f404bb15c832f9ce3fe130b9
BLAKE2b-256 659ba47f3e3a4f24b671890134a16412f90ff64a42d127694c580d472670fee3

See more details on using hashes here.

Provenance

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