Skip to main content

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.

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.

Metadata

Release files for tree-praxis 0.0.30

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tree-praxis 0.0.30
File Size Uploaded Provenance
tree_praxis-0.0.30.tar.gz 231.9 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for tree-praxis 0.0.30
File
tree_praxis-0.0.30-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
tree_praxis-0.0.30-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
tree_praxis-0.0.30-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
tree_praxis-0.0.30-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
tree_praxis-0.0.30-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
tree_praxis-0.0.30-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
tree_praxis-0.0.30-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
tree_praxis-0.0.30-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
tree_praxis-0.0.30-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
tree_praxis-0.0.30-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
tree_praxis-0.0.30-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
tree_praxis-0.0.30-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
tree_praxis-0.0.30-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
tree_praxis-0.0.30-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
tree_praxis-0.0.30-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
tree_praxis-0.0.30-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
tree_praxis-0.0.30-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
tree_praxis-0.0.30-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
tree_praxis-0.0.30-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
tree_praxis-0.0.30-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details

Total release size: 24.6 MB

Release files / tree_praxis-0.0.30.tar.gz

Download URL tree_praxis-0.0.30.tar.gz
Size 231.9 kB
Tags Source
SHA-256 checksum
How to use checksums
bfbd2c22c7fbc353b5d6543c505e290de63ec0e24454bc86e8bd011580b4dbe2
BLAKE2b-256 checksum
How to use checksums
a3217591134b5e60769897409cd1f9fe6e5e045eb2b441168caad56926b26365
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp313-cp313-win_amd64.whl

Download URL tree_praxis-0.0.30-cp313-cp313-win_amd64.whl
Size 608.9 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
6b3c34e923f46cbf97d4e0b97edb6a15f61845d7dc720df1e43ff785ea5a298b
BLAKE2b-256 checksum
How to use checksums
852f5c4b7943ecfcf8174827c490758cc2dba2c3f69f006cb705591fef3bf200
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL tree_praxis-0.0.30-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.4 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1aec41106f1e3dd29462cad8006f4ca2d9092a13b69b99858d95f1dc4aaef4a0
BLAKE2b-256 checksum
How to use checksums
5b4b38c06a963d49e4d91d4cec6fe59fb95dbffd60c130bf7a7062ce1661c175
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp313-cp313-macosx_11_0_arm64.whl

Download URL tree_praxis-0.0.30-cp313-cp313-macosx_11_0_arm64.whl
Size 451.7 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ed48fe2ca760b59bc22bb1fde3dab6e3d95d3d032f10ca208c130769db5a8d94
BLAKE2b-256 checksum
How to use checksums
f419b7bce01b747e906d62544255e3c07aae69e8068d6ffb735944e9f3a2bdab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp313-cp313-macosx_10_13_x86_64.whl

Download URL tree_praxis-0.0.30-cp313-cp313-macosx_10_13_x86_64.whl
Size 464.6 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
836dcefbaf035a423a6cfe1f198eee6c6d228d2c0ae6121bc61a2ffded6ff064
BLAKE2b-256 checksum
How to use checksums
c4a32c61d1cee7579670cf38c9b426e54c953d7a262df7edc7785989e6247d90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp312-cp312-win_amd64.whl

Download URL tree_praxis-0.0.30-cp312-cp312-win_amd64.whl
Size 608.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
b9518294be423ab78e7db09b01dd2b2e36138bda9e6fbea8445f777fffd4c594
BLAKE2b-256 checksum
How to use checksums
a0cdb4b7a3d6b1e2c8c0b87681ab327724c7a25176adede37ad70097ae9b0d59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL tree_praxis-0.0.30-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.4 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b2b2a747f9548d96b5b4e522f82369984e3ee63478d25d845c0abcfbf8c4a1fa
BLAKE2b-256 checksum
How to use checksums
fc5ee8020265557bc85d4db263e40692c0a2042d5628a1e8a6bb0dc01b3d6a91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp312-cp312-macosx_11_0_arm64.whl

Download URL tree_praxis-0.0.30-cp312-cp312-macosx_11_0_arm64.whl
Size 451.6 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
eca55fab717cf873eecaffe010d6a818da96f12ccfe457782331e58d88951039
BLAKE2b-256 checksum
How to use checksums
14220acb6be3b4ff4723a008ceb69ff253251ab15563ebdcfc29a02286a3cb0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp312-cp312-macosx_10_13_x86_64.whl

Download URL tree_praxis-0.0.30-cp312-cp312-macosx_10_13_x86_64.whl
Size 464.6 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
29a0711a2578c9ace23bf451cc615f85ef151cee43bbb918f0a95ae8ef6f4270
BLAKE2b-256 checksum
How to use checksums
d585cf55213d0ccd51b7bdeb73b5c598f24047cbed2abe870b349b08a7c8d340
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp311-cp311-win_amd64.whl

Download URL tree_praxis-0.0.30-cp311-cp311-win_amd64.whl
Size 605.9 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
973c3e4732bc8c71323c130da80af541e5e4f3c3833eb9563b0a2e9be8f58fae
BLAKE2b-256 checksum
How to use checksums
0105dec779c504cd7600933ff22e328a65d7bd53e565384578ac8686991ed513
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL tree_praxis-0.0.30-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6b4122e0ba208870d4846274b482dffcef0b629fc7a3586c4662c1de9fe64744
BLAKE2b-256 checksum
How to use checksums
db00fc232bfd4e87d074ce6cf18f1e571e2256a684a7730087bfd3ca9b2481b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp311-cp311-macosx_11_0_arm64.whl

Download URL tree_praxis-0.0.30-cp311-cp311-macosx_11_0_arm64.whl
Size 450.0 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f2c6c3b09b95af9779710d4ff623763d3d272ed395d515432099892cb7fbcc06
BLAKE2b-256 checksum
How to use checksums
0636cf0e186f9548283b95de2b6d430b17dde36baf8b301aaf95e7b997541252
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp311-cp311-macosx_10_9_x86_64.whl

Download URL tree_praxis-0.0.30-cp311-cp311-macosx_10_9_x86_64.whl
Size 462.6 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
929821e3f993b7155092e22c1fb6d1f84a6f734ef1489efa300db3f73fc653b0
BLAKE2b-256 checksum
How to use checksums
7bb6219648bd672b950a51bb13f63dda98ea1c4ca1d3ae93ba1fb0cffc40a8a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp310-cp310-win_amd64.whl

Download URL tree_praxis-0.0.30-cp310-cp310-win_amd64.whl
Size 604.8 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
7183d17cc0e8f067fe361614780d14e867c875f1ff6289991eca2b6b7aaff6d9
BLAKE2b-256 checksum
How to use checksums
c3b6e79de84f78d49e791158e6e7ca90fb463330b6d6ccaff2af335f83881303
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL tree_praxis-0.0.30-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0b56d5eb701e48cc9b21ade9c3bf6bcde688424d6381cd77d456ca7e1ff6067f
BLAKE2b-256 checksum
How to use checksums
ba38709d69eaa5dfa9bc9aa31d57b44b9946ecee177ccebf59ed7b21c9ba5ef6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp310-cp310-macosx_11_0_arm64.whl

Download URL tree_praxis-0.0.30-cp310-cp310-macosx_11_0_arm64.whl
Size 449.0 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f8dcab7d9ec3ea3171d3bf6d8176b402ff5ce3edfafdaccec7455d6b8b9b7584
BLAKE2b-256 checksum
How to use checksums
348da62c1f9f1162b85f56b9ab7caaf25cdb0c5fb29ca77192ac46421eac0501
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp310-cp310-macosx_10_9_x86_64.whl

Download URL tree_praxis-0.0.30-cp310-cp310-macosx_10_9_x86_64.whl
Size 461.1 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
b95e9a4d2d0b67b9cbe86e4e6a641854bb7fe35e8086c59e221f4eb430a4dc3e
BLAKE2b-256 checksum
How to use checksums
8b488d811e45f31193d7d7e10dfb4205460f5f254ca9b2ef062f29adfa81386a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp39-cp39-win_amd64.whl

Download URL tree_praxis-0.0.30-cp39-cp39-win_amd64.whl
Size 608.9 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
d7c814633a703d506cd718544ec69ac585ef32d487ff4207845fdf9981af5254
BLAKE2b-256 checksum
How to use checksums
263c20772811a73a9865bfd00b7814c6e905ba614872cd8b6db403372befb85a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL tree_praxis-0.0.30-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d5fb7d4d82e8d297fbe4ea915a0ff1d7230d0639b15940655333f12850eb78e6
BLAKE2b-256 checksum
How to use checksums
e9e0def0a5540723324a0be3f5199017583456a2eb21b144572a312a3b146574
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp39-cp39-macosx_11_0_arm64.whl

Download URL tree_praxis-0.0.30-cp39-cp39-macosx_11_0_arm64.whl
Size 449.2 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3c40ed728b7b7daca5eb35fbc429da9e70f09afa6162d500db43d467e4efa989
BLAKE2b-256 checksum
How to use checksums
37189bddade5fd46a98e7b4ab1416d5cd49582c75918f57cf02e5b35af01ecdd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Release files / tree_praxis-0.0.30-cp39-cp39-macosx_10_9_x86_64.whl

Download URL tree_praxis-0.0.30-cp39-cp39-macosx_10_9_x86_64.whl
Size 461.2 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
6294be0447f066d8bc1b497699327d4c5bbe549ec4a04b0dc8a66c0d98a354b3
BLAKE2b-256 checksum
How to use checksums
fa547bc1ed3be9bdfeb8edfeeba8f71bbf6178e9a628b0a5c46d5636b306198d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

Security for tree-praxis 0.0.30

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 21 files in this release have been uploaded with provenance metadata.

Select from 21 files

Attestation for tree_praxis-0.0.30.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page