Skip to main content

Implementation of Optimal Sparse Regression Trees

Project description

OSRT Documentation

Implementation of Optimal Sparse Regression Tree (OSRT). This is implemented based on Generalized Optimal Sparse Decision Tree framework (GOSDT). If you need classification trees, please use GOSDT.

image

Table of Content


Installation

You may use the following commands to install OSRT along with its dependencies on macOS, Ubuntu and Windows.
You need Python 3.9 or later to use the module osrt in your project.

pip3 install attrs packaging editables pandas sklearn sortedcontainers gmpy2 matplotlib
pip3 install osrt

You need to install gmpy2==2.0.a1 if You are using Python 3.12

Compilation

Please refer to the manual to build the C++ command line interface and the Python extension module and run the experiment with example datasets on your machine.


Configuration

The configuration is a JSON object and has the following structure and default values:

{ 
  "regularization": 0.05,
  "depth_budget": 0,
  "k_cluster": true,

  "metric": "L2",
  "weights": [],

  "time_limit": 0,
  "uncertainty_tolerance": 0.0,
  "upperbound": 0.0,
  "worker_limit": 1,
  "stack_limit": 0,
  "precision_limit": 0,
  "model_limit": 1,

  "verbose": false,
  "diagnostics": false,
  "balance": false,
  "look_ahead": true,

  "model": "",
  "timing": "",
  "trace": "",
  "tree": "",
  "profile": ""
}

Key parameters

regularization

  • Values: Decimal within range [0,1]
  • Description: Used to penalize complexity. A complexity penalty is added to the risk in the following way.
    ComplexityPenalty = # Leaves x regularization
    
  • Default: 0.05
  • Note: We highly recommend setting the regularization to a value larger than 1/num_samples. A small regularization could lead to a longer training time and possible overfitting.

depth_budget

  • Values: Integers >= 1
  • Description: Used to set the maximum tree depth for solutions, counting a tree with just the root node as depth 1. 0 means unlimited.
  • Default: 0

k_cluster

  • Values: true or false
  • Description: Enables the kmeans lower bound
  • Default: true

metric

  • Values: L1 or L2
  • Description: The metric used in loss function. Mean squared error if L2, mean absolute error if L1.
  • Default: L2

weights

  • Values: Vector of real numbers
  • Description: Weights assigned to each sample in training dataset. Empty vector means samples are unweighted.
  • Default: []

More parameters

Flag

look_ahead

  • Values: true or false
  • Description: Enables the one-step look-ahead bound implemented via scopes
  • Default: true

diagnostics

  • Values: true or false
  • Description: Enables printing of diagnostic trace when an error is encountered to standard output
  • Default: false

verbose

  • Values: true or false
  • Description: Enables printing of configuration, progress, and results to standard output
  • Default: false

Tuners

uncertainty_tolerance

  • Values: Decimal within range [0,1]
  • Description: Used to allow early termination of the algorithm. Any models produced as a result are guaranteed to score within the lowerbound and upperbound at the time of termination. However, the algorithm does not guarantee that the optimal model is within the produced model unless the uncertainty value has reached 0.
  • Default: 0.0

upperbound

  • Values: Decimal within range [0,1]
  • Description: Used to limit the risk of model search space. This can be used to ensure that no models are produced if even the optimal model exceeds a desired maximum risk. This also accelerates learning if the upperbound is taken from the risk of a nearly optimal model.
  • Special Cases: When set to 0, the bound is not activated.
  • Default: 0.0

Limits

time_limit

  • Values: Decimal greater than or equal to 0
  • Description: A time limit upon which the algorithm will terminate. If the time limit is reached, the algorithm will terminate with an error.
  • Special Cases: When set to 0, no time limit is imposed.
  • Default: 0

model_limit

  • Values: Decimal greater than or equal to 0
  • Description: The maximum number of models that will be extracted into the output.
  • Special Cases: When set to 0, no output is produced.
  • Default: 1

precision_limit

  • Values: Decimal greater than or equal to 0
  • Description: The maximum number of significant figures considered when converting ordinal features into binary features.
  • Special Cases: When set to 0, no limit is imposed.
  • Default: 0

stack_limit

  • Values: Decimal greater than or equal to 0
  • Description: The maximum number of bytes considered for use when allocating local buffers for worker threads.
  • Special Cases: When set to 0, all local buffers will be allocated from the heap.
  • Default: 0

worker_limit

  • Values: Decimal greater than or equal to 1
  • Description: The maximum number of threads allocated to executing th algorithm.
  • Special Cases: When set to 0, a single thread is created for each core detected on the machine.
  • Default: 1

Files

model

  • Values: string representing a path to a file.
  • Description: The output models will be written to this file.
  • Special Case: When set to empty string, no model will be stored.
  • Default: Empty string

profile

  • Values: string representing a path to a file.
  • Description: Various analytics will be logged to this file.
  • Special Case: When set to empty string, no analytics will be stored.
  • Default: Empty string

timing

  • Values: string representing a path to a file.
  • Description: The training time will be appended to this file.
  • Special Case: When set to empty string, no training time will be stored.
  • Default: Empty string

trace

  • Values: string representing a path to a directory.
  • Description: snapshots used for trace visualization will be stored in this directory
  • Special Case: When set to empty string, no snapshots are stored.
  • Default: Empty string

tree

  • Values: string representing a path to a directory.
  • Description: snapshots used for trace-tree visualization will be stored in this directory
  • Special Case: When set to empty string, no snapshots are stored.
  • Default: Empty string

Example

Example code to run GOSDT with threshold guessing, lower bound guessing, and depth limit. The example python file is available in gosdt/example.py. A tutorial ipython notebook is available in gosdt/tutorial.ipynb.

import pandas as pd
import numpy as np
import time
from model.osrt import OSRT

# read the dataset
# preprocess your data otherwise OSRT will binarize continuous feature using all threshold values.
df = pd.read_csv("experiments/datasets/airfoil/airfoil.csv")
X, y = df.iloc[:,:-1].values, df.iloc[:,-1].values
h = df.columns[:-1]
X = pd.DataFrame(X, columns=h)
X_train = X
y_train = pd.DataFrame(y)
print("X:", X.shape)
print("y:",y.shape)

# train OSRT model
config = {
    "regularization": 0.007,
    "depth_budget": 6,
    "model_limit": 100,

    "metric": "L2",
    "weights": [],

    "verbose": False,
    "diagnostics": True,
    }

model = OSRT(config)

model.fit(X_train, y_train)

print("evaluate the model, extracting tree and scores", flush=True)

# get the results
train_acc = model.score(X_train, y_train)
n_leaves = model.leaves()
n_nodes = model.nodes()
time = model.time

print("Model training time: {}".format(time))
print("Training score: {}".format(train_acc))
print("# of leaves: {}".format(n_leaves))
print(model.tree)

Output

X: (1503, 17)
y: (1503,)
osrt reported successful execution
training completed. 4.664 seconds.
bounds: [0.743839..0.743839] (0.000000) normalized loss=0.631839, iterations=46272
evaluate the model, extracting tree and scores
Model training time: 4.664000034332275
Training score: 30.060801844008466
# of leaves: 16
if feature_1_1 = 1 and feature_2_2 = 1 then:
    predicted class: 112.945831
    normalized loss penalty: 0.01
    complexity penalty: 0.007

else if feature_1_1 != 1 and feature_2_2 = 1 and feature_5_3 = 1 then:
    predicted class: 116.111771
    normalized loss penalty: 0.028
    complexity penalty: 0.007

else if feature_1_1 != 1 and feature_2_2 = 1 and feature_4_71.3 = 1 and feature_5_3 != 1 then:
    predicted class: 128.063248
    normalized loss penalty: 0.034
    complexity penalty: 0.007

else if feature_1_1 != 1 and feature_2_2 = 1 and feature_3_0.1016 = 1 and feature_4_71.3 != 1 and feature_5_3 != 1 then:
    predicted class: 120.686447
    normalized loss penalty: 0.037
    complexity penalty: 0.007

else if feature_1_1 != 1 and feature_2_2 = 1 and feature_3_0.1016 != 1 and feature_4_71.3 != 1 and feature_5_3 != 1 then:
    predicted class: 125.050087
    normalized loss penalty: 0.021
    complexity penalty: 0.007

else if feature_1_2 = 1 and feature_2_2 != 1 and feature_3_0.3048 = 1 then:
    predicted class: 109.278999
    normalized loss penalty: 0.0
    complexity penalty: 0.007

else if feature_1_2 != 1 and feature_1_3 = 1 and feature_2_2 != 1 and feature_3_0.3048 = 1 then:
    predicted class: 107.651497
    normalized loss penalty: 0.0
    complexity penalty: 0.007

else if feature_1_1 = 1 and feature_1_2 != 1 and feature_1_3 != 1 and feature_2_2 != 1 and feature_3_0.3048 = 1 then:
    predicted class: 113.869255
    normalized loss penalty: 0.003
    complexity penalty: 0.007

else if feature_1_1 != 1 and feature_1_2 != 1 and feature_1_3 != 1 and feature_2_2 != 1 and feature_3_0.3048 = 1 then:
    predicted class: 124.200935
    normalized loss penalty: 0.038
    complexity penalty: 0.007

else if feature_1_1 = 1 and feature_2_2 != 1 and feature_3_0.2286 = 1 and feature_3_0.3048 != 1 then:
    predicted class: 115.355225
    normalized loss penalty: 0.004
    complexity penalty: 0.007

else if feature_1_1 != 1 and feature_1_3 = 1 and feature_2_2 != 1 and feature_3_0.2286 = 1 and feature_3_0.3048 != 1 then:
    predicted class: 112.966003
    normalized loss penalty: 0.0
    complexity penalty: 0.007

else if feature_1_1 != 1 and feature_1_3 != 1 and feature_2_2 != 1 and feature_3_0.2286 = 1 and feature_3_0.3048 != 1 then:
    predicted class: 125.296906
    normalized loss penalty: 0.096
    complexity penalty: 0.007

else if feature_1_1 = 1 and feature_2_2 != 1 and feature_3_0.1524 = 1 and feature_3_0.2286 != 1 and feature_3_0.3048 != 1 then:
    predicted class: 116.648323
    normalized loss penalty: 0.009
    complexity penalty: 0.007

else if feature_1_1 != 1 and feature_2_2 != 1 and feature_3_0.1524 = 1 and feature_3_0.2286 != 1 and feature_3_0.3048 != 1 then:
    predicted class: 125.097855
    normalized loss penalty: 0.112
    complexity penalty: 0.007

else if feature_2_2 != 1 and feature_2_3 = 1 and feature_3_0.1524 != 1 and feature_3_0.2286 != 1 and feature_3_0.3048 != 1 then:
    predicted class: 122.649429
    normalized loss penalty: 0.067
    complexity penalty: 0.007

else if feature_2_2 != 1 and feature_2_3 != 1 and feature_3_0.1524 != 1 and feature_3_0.2286 != 1 and feature_3_0.3048 != 1 then:
    predicted class: 128.906433
    normalized loss penalty: 0.173
    complexity penalty: 0.007

Structure

This repository contains the following directories and files:

  • .github: Configurations for GitHub action runners.
  • doc: Documentation
  • experiments: Datasets and their configurations to run experiments
  • osrt: Python implementation and wrappers around C++ implementation
  • include: Required 3rd-party header-only libraries
  • log: Log files
  • src: Source files for C++ implementation and Python binding
  • test: Source files for unit tests
  • build.py: Python script that builds the project automatically
  • CMakeLists.txt: Configuration file for the CMake build system
  • pyproject.toml: Configuration file for the SciKit build system
  • setup.py: Python script that builds the wheel file

Structure

This repository contains the following directories and files:

  • .github: Configurations for GitHub action runners.
  • doc: Documentation
  • experiments: Datasets and their configurations to run experiments
  • osrt: Jupyter notebook, Python implementation and wrappers around C++ implementation
  • include: Required 3rd-party header-only libraries
  • log: Log files
  • src: Source files for C++ implementation and Python binding
  • test: Source files for unit tests
  • build.py: Python script that builds the project automatically
  • CMakeLists.txt: Configuration file for the CMake build system
  • pyproject.toml: Configuration file for the SciKit build system
  • setup.py: Python script that builds the wheel file

FAQs

If you run into any issues when running OSRT, consult the FAQs first.


License

This software is licensed under a 3-clause BSD license (see the LICENSE file for details).


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

osrt-0.1.7.tar.gz (5.0 MB view details)

Uploaded Source

Built Distributions

osrt-0.1.7-cp312-abi3-win_amd64.whl (801.6 kB view details)

Uploaded CPython 3.12+ Windows x86-64

osrt-0.1.7-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (529.4 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ x86-64

osrt-0.1.7-cp312-abi3-macosx_14_0_arm64.whl (574.5 kB view details)

Uploaded CPython 3.12+ macOS 14.0+ ARM64

osrt-0.1.7-cp312-abi3-macosx_13_0_x86_64.whl (666.6 kB view details)

Uploaded CPython 3.12+ macOS 13.0+ x86-64

osrt-0.1.7-cp312-abi3-macosx_12_0_x86_64.whl (655.6 kB view details)

Uploaded CPython 3.12+ macOS 12.0+ x86-64

osrt-0.1.7-cp311-abi3-win_amd64.whl (801.6 kB view details)

Uploaded CPython 3.11+ Windows x86-64

osrt-0.1.7-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (529.4 kB view details)

Uploaded CPython 3.11+ manylinux: glibc 2.17+ x86-64

osrt-0.1.7-cp311-abi3-macosx_14_0_arm64.whl (574.5 kB view details)

Uploaded CPython 3.11+ macOS 14.0+ ARM64

osrt-0.1.7-cp311-abi3-macosx_13_0_x86_64.whl (666.6 kB view details)

Uploaded CPython 3.11+ macOS 13.0+ x86-64

osrt-0.1.7-cp311-abi3-macosx_12_0_x86_64.whl (655.6 kB view details)

Uploaded CPython 3.11+ macOS 12.0+ x86-64

osrt-0.1.7-cp310-abi3-win_amd64.whl (801.6 kB view details)

Uploaded CPython 3.10+ Windows x86-64

osrt-0.1.7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (529.4 kB view details)

Uploaded CPython 3.10+ manylinux: glibc 2.17+ x86-64

osrt-0.1.7-cp310-abi3-macosx_14_0_arm64.whl (574.5 kB view details)

Uploaded CPython 3.10+ macOS 14.0+ ARM64

osrt-0.1.7-cp310-abi3-macosx_13_0_x86_64.whl (666.6 kB view details)

Uploaded CPython 3.10+ macOS 13.0+ x86-64

osrt-0.1.7-cp310-abi3-macosx_12_0_x86_64.whl (655.6 kB view details)

Uploaded CPython 3.10+ macOS 12.0+ x86-64

osrt-0.1.7-cp39-abi3-win_amd64.whl (802.3 kB view details)

Uploaded CPython 3.9+ Windows x86-64

osrt-0.1.7-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (529.4 kB view details)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ x86-64

osrt-0.1.7-cp39-abi3-macosx_14_0_arm64.whl (574.5 kB view details)

Uploaded CPython 3.9+ macOS 14.0+ ARM64

osrt-0.1.7-cp39-abi3-macosx_13_0_x86_64.whl (666.6 kB view details)

Uploaded CPython 3.9+ macOS 13.0+ x86-64

osrt-0.1.7-cp39-abi3-macosx_12_0_x86_64.whl (655.6 kB view details)

Uploaded CPython 3.9+ macOS 12.0+ x86-64

File details

Details for the file osrt-0.1.7.tar.gz.

File metadata

  • Download URL: osrt-0.1.7.tar.gz
  • Upload date:
  • Size: 5.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for osrt-0.1.7.tar.gz
Algorithm Hash digest
SHA256 dd8ba5a36d004881d477722055e26808a90f6775715e19a6f91f007be575c00f
MD5 2c5a169e0500ba5dd44ca0a433aee218
BLAKE2b-256 588c551a5ffd5dc73a1dcb2558ad2ae6223818345b598bc144508cefcfe83142

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: osrt-0.1.7-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 801.6 kB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for osrt-0.1.7-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a91261997977bd5c6fe01d957c090a8347976009884a3fae1cc474c7c8f8199c
MD5 96323392a8a4190f4e1e02ef40684c14
BLAKE2b-256 c7ece4d94f1bbaa07be6e083853cae1ac2bc0b87031d6c45e31aa4e3b65a299c

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fab20913cb0b0cf2103885b416257a041ceae0afa10e6bc5c10f598c86def0bc
MD5 f70a90f4fcf01cbc7b44c878dbe0dc57
BLAKE2b-256 b6e73eb89a7651a0bc1c6e4c4b84ad6fd6538a544a1fcccb3e37a35ff20fa3d7

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp312-abi3-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp312-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 924068b941829add85b61da7bf6f55686519013880cad0c1f720d478b176d32b
MD5 dd3ad26bf18343bd9c4b2b4b71acf86e
BLAKE2b-256 6ec646c32e87c2a0901efb05e30bda81dea956b9dd17ef61c3ea8694e2130bd0

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 f3b73dbb31c34c59aee95dea66711156ce67803092fb325bc873d930ec1ad112
MD5 b0cfbc7608c90a46b1480fd8eed272b4
BLAKE2b-256 deb3d917c7602ddef179b5e0bc38e0d9f7b90085b0f1854e473eb42697001fcf

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp312-abi3-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp312-abi3-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 71674cbc94e78ac332266ca309cb33f52bdb45d63b3da7e8986c2c9a4455c989
MD5 201653b888be09aa5063ae50884706ae
BLAKE2b-256 7d44d7661ab1b1fe5a2a1b0e6ed451492c5740c6ab8347d494993f499e7b6908

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: osrt-0.1.7-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 801.6 kB
  • Tags: CPython 3.11+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for osrt-0.1.7-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c1f7a1e4d99de4a1a68e422eb07a887b47a10a57027545c2e7ac10a126d53590
MD5 e3afdb4fa99c2463ec5e08a98416e6f9
BLAKE2b-256 54729a1bcfbf6b3e98bd6ba79c5a2b301265d728038f69f6280aa049b1559bf9

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 66651474f90f8753836df8f888c4adb840435dde78cf172782bd7585a929cbb8
MD5 c57dddc823c0dfb6a6bcb6c899caad2a
BLAKE2b-256 9f034480f26f46c917b0a08be5f72265f554c53717bf1495c16ce1f9ef091035

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp311-abi3-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp311-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4e87c374c5e5c6e9abea7a8febbccb0889f9784f411cf8a081458b215a314553
MD5 5ecdb423aac15cd5bdcbaa3ef08e31f2
BLAKE2b-256 950a8e6e17562f12034d84330f5a1d8c19100d82039a6541a3045b9ef93960b7

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp311-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp311-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 6fc315c9be609155ce5def9463f4ba896d00de588d926e5b8c66d8746b167821
MD5 66a711a384a06eb5eaf22b62bf0b2dda
BLAKE2b-256 499c78c1e7c88f0c6a60ec14e78ab29eb7fc885087bf43a4407c1c4ae57d4b22

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp311-abi3-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp311-abi3-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 4f0ec6b1ba7de45c63abe62948192b60470de6bf2a23e5f638ac12e1452abd7d
MD5 8641caeb30ab0fa055e636c3f333bfe6
BLAKE2b-256 83f904c3add08a4f6b7bcd9d56237c1e18b40f811e58a40f48538c668a10b238

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: osrt-0.1.7-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 801.6 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.11

File hashes

Hashes for osrt-0.1.7-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0362b7ce4bd29d3d89be28123b1fbc65cae7c16947e8614a908d7baf74d9f841
MD5 88e4cefdef147f3ab6be97fbe56c5f14
BLAKE2b-256 045ec14406bf5b6c52ecd97c80fd0591c4208eccc04cd60f1e0d6ed67ee9210c

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2a47e3872bef2e4888a01e0bac12b767685fb14072e54f50242aa6345dcf0ec6
MD5 c2e14e78e3af2f26aeb80165cb455aed
BLAKE2b-256 acdc7b14b3c7dc5d4e7c92ba6d4ad9a5a25ddc4e933be61ad53024b16a3ed497

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp310-abi3-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp310-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 fc0ec321556585d05515f0e34e33cf5f656dc6c853fb45bc842ae12abe018bdf
MD5 31af0ea42dbb15f3050a18c272df4283
BLAKE2b-256 0a47753c14dd58b03ab652da2faf7c26ceef5b08ce7403eade316d0520f70c90

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp310-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp310-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 792e590271b8875ab7839ef4e418ba946241625fefc28b6414b8f5ebf62284db
MD5 42e1789c2249415783da31f712a5494c
BLAKE2b-256 7aa9671e83c4c98fffcbe0a4c9dd123a91f65dda81347a3b752efbb75e44985b

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp310-abi3-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp310-abi3-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 0bacee2c4eb8e728056aa5a45fb51a64137ce471227f998257a317ba3170bebd
MD5 61273386b8875093a83f0db3b2ea6728
BLAKE2b-256 6b1870b0e8b53c9e87a8a5c0bb83cf3c77330a9b2e5c9f186e0b8409c31c4156

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: osrt-0.1.7-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 802.3 kB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.13

File hashes

Hashes for osrt-0.1.7-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 3a7719effaa1e5817f90379429363749b9a0a23a5235c8ecedc92f1daabfa348
MD5 37f82ce61fb638dbff1ab5f63854342a
BLAKE2b-256 b0148b34849f277d5e818ab1d8a153148e8b96ecb422f4ca3e5bcd2ed5a6b37c

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 af42c52e51c22e42adb8481fc76a2ea386dcb4d1fefeb752eb139fc9a9d47137
MD5 69374416db5fe01b0243d4330728a3ac
BLAKE2b-256 e506b3df06664600f3e30b331fae467f8745c34d7d2246df7f4b685ab166df21

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp39-abi3-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp39-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1109650dd25959ba56d62145413589d6162803cdc0c5bd07d6db6819d5c22ffb
MD5 b7bd8a774fbac8e2028a36d32237ce93
BLAKE2b-256 01c821c1757176d101c9ab6de8c5c4395eaeec86bf5595d9c8b4c4d00c96477e

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp39-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp39-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 59c0a168f8e881e5f3743d8f30b28694e09c04a7bb540ab9fe1da3e57b584836
MD5 7fbd551c18df960369ca9afe21d430a0
BLAKE2b-256 bee37c20c9e7ec330f40fd2001a3b1793a0d7fa310eb3bc9c5528905339d62d0

See more details on using hashes here.

File details

Details for the file osrt-0.1.7-cp39-abi3-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for osrt-0.1.7-cp39-abi3-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 88b99cbfaf978d278cf31008c3ea5a1e53784b6de0121bd691c8cb1463a47450
MD5 58b38e038c775776383f4b164dd1c384
BLAKE2b-256 4ef26a3c398ab2bcc2ac8ecf38ca90db9f8bc6072224c6c2cc3cf80e825c96f6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page