Skip to main content

Implementation of Optimal Sparse Survival Trees

Project description

OSST Documentation

Implementation of Optimal Sparse Survival Trees (OSST), an optimal decision tree algorithm for survival analysis. This is implemented based on Generalized Optimal Sparse Decision Tree framework (GOSDT). If you need classification trees, please use GOSDT. If you need regression trees, please use Optimal Sparse Regression Trees (OSRT).


Installation

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

pip3 install attrs packaging editables pandas scikit-learn sortedcontainers gmpy2 matplotlib scikit-survival
pip3 install osst

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

Configuration

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

{ 
  "regularization": 0.01,
  "depth_budget": 5,
  "minimum_captured_points": 7,
  "bucketize": false,
  "number_of_buckets": 0,
  "warm_LB": false,
  "path_to_labels": "",
  
  "uncertainty_tolerance": 0.0,
  "upperbound": 0.0,
  "worker_limit": 1,
  "precision_limit": 0,
  "model_limit": 1,
  "time_limit": 0,

  "verbose": false,
  "diagnostics": 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.01
  • 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: 5

minimum_captured_points

  • Values: Integers >= 1
  • Description: Minimum number of sample points each leaf node must capture
  • Default: 7

bucketize

  • Values: true or false
  • Description: Enables bucketization of time threshold for training
  • Default: false

number_of_buckets

  • Values: Integers
  • Description: The number of time thresholds to which origin data mapping to if bucktize flag is set to True
  • Default: 0

warm_LB

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

path_to_labels

  • Values: string representing a path to a directory.
  • Description: IBS loss of reference model
  • Special Case: When set to empty string, no reference IBS loss are stored.
  • Default: Empty string

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

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

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

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 OSST with lower bound guessing, and depth limit. The example python file is available in osst/example.py.

import pandas as pd
import numpy as np
from osst.model.osst import OSST
from osst.model.metrics import harrell_c_index, uno_c_index, integrated_brier_score, cumulative_dynamic_auc, compute_ibs_per_sample
from sklearn.model_selection import train_test_split
from sksurv.ensemble import RandomSurvivalForest
from sksurv.datasets import get_x_y
import pathlib


dataset_path = "experiments/datasets/churn/churn.csv"

# read the dataset
# preprocess your data otherwise OSST will binarize continuous feature using all threshold values.
df = pd.read_csv(dataset_path)
X, event, y = df.iloc[:,:-2].values, df.iloc[:,-2].values.astype(int), df.iloc[:,-1].values
h = df.columns[:-2]
X = pd.DataFrame(X, columns=h)
event = pd.DataFrame(event)
y = pd.DataFrame(y)
_, y_sksurv = get_x_y(df, df.columns[-2:], 1)
print("X shape: ", X.shape)
# split train and test set
X_train, X_test, event_train, event_test, y_train, y_test, y_sksurv_train, y_sksurv_test \
      = train_test_split(X, event, y, y_sksurv, test_size=0.2, random_state=2024)

times_train = np.unique(y_train.values.reshape(-1))
times_test = np.unique(y_test.values.reshape(-1))
print("Train time thresholds range: ({:.1f}, {:.1f}),  Test time thresholds range: ({:.1f}, {:.1f})".format(\
    times_train[0], times_train[-1], times_test[0], times_test[-1]))

# compute reference lower bounds
ref_model = RandomSurvivalForest(n_estimators=100, max_depth=3, random_state=2024)
ref_model.fit(X_train, y_sksurv_train)
ref_S_hat = ref_model.predict_survival_function(X_train)
ref_estimates = np.array([f(times_train) for f in ref_S_hat])
ibs_loss_per_sample = compute_ibs_per_sample(event_train, y_train, event_train, y_train, ref_estimates, times_train)

labelsdir = pathlib.Path('/tmp/warm_lb_labels')
labelsdir.mkdir(exist_ok=True, parents=True)

labelpath = labelsdir / 'warm_label.tmp'
labelpath = str(labelpath)

pd.DataFrame(ibs_loss_per_sample, columns=['class_labels']).to_csv(labelpath, header='class_labels', index=None)

# fit model

config = {
    "look_ahead": True,
    "diagnostics": True,
    "verbose": False,

    "regularization": 0.01,
    "uncertainty_tolerance": 0.0,
    "upperbound": 0.0,
    "depth_budget": 5,
    "minimum_captured_points": 7,

    "model_limit": 100,
    
    "warm_LB": True,
    "path_to_labels": labelpath,
  }


model = OSST(config)
model.fit(X_train, event_train, y_train)
print("evaluate the model, extracting tree and scores", flush=True)

# evaluation
n_leaves = model.leaves()
n_nodes = model.nodes()
time = model.time
print("Model training time: {}".format(time))
print("# of leaves: {}".format(n_leaves))

print("Train IBS score: {:.6f} , Test IBS score: {:.6f}".format(\
    model.score(X_train, event_train, y_train), model.score(X_test, event_test, y_test)))

S_hat_train = model.predict_survival_function(X_train)
estimates_train = np.array([f(times_train) for f in S_hat_train])

S_hat_test = model.predict_survival_function(X_test)
estimates_test = np.array([f(times_test) for f in S_hat_test])

print("Train Harrell's c-index: {:.6f}, Test Harrell's c-index: {:.6f}".format(\
    harrell_c_index(event_train, y_train, estimates_train, times_train)[0], \
    harrell_c_index(event_test, y_test, estimates_test, times_test)[0]))

print("Train Uno's c-index: {:.6f}, Test Uno's c-index: {:.6f}".format(\
    uno_c_index(event_train, y_train, event_train, y_train, estimates_train, times_train)[0],\
    uno_c_index(event_train, y_train, event_test, y_test, estimates_test, times_test)[0]))

print("Train AUC: {:.6f}, Test AUC: {:.6f}".format(\
    cumulative_dynamic_auc(event_train, y_train, event_train, y_train, estimates_train, times_train)[0],\
    cumulative_dynamic_auc(event_train, y_train, event_test, y_test, estimates_test, times_test)[0]))

print(model.tree)

Output

X shape:  (2000, 42)
Train time thresholds range: (0.0, 12.0),  Test time thresholds range: (0.0, 12.0)
osst reported successful execution
training completed. 4.968 seconds.
bounds: [0.168379..0.168379] (0.000000) IBS loss = 0.118379, iterations=16920
evaluate the model, extracting tree and scores
Model training time: 4.9679999351501465
# of leaves: 5
Train IBS score: 0.118379 , Test IBS score: 0.124289
Train Harrell's c-index: 0.737871, Test Harrell's c-index: 0.734727
Train Uno's c-index: 0.689405, Test Uno's c-index: 0.706680
Train AUC: 0.800940, Test AUC: 0.806016
if product_accounting_No = 1 then:
    predicted time: 4
    normalized loss penalty: 0.0
    complexity penalty: 0.01

else if csat_score_7 = 1 and product_accounting_No != 1 then:
    predicted time: 3
    normalized loss penalty: 0.0
    complexity penalty: 0.01

else if csat_score_7 != 1 and product_accounting_No != 1 and product_payroll_No = 1 then:
    predicted time: 2
    normalized loss penalty: 0.0
    complexity penalty: 0.01

else if csat_score_7 != 1 and csat_score_8 = 1 and product_accounting_No != 1 and product_payroll_No != 1 then:
    predicted time: 1
    normalized loss penalty: 0.0
    complexity penalty: 0.01

else if csat_score_7 != 1 and csat_score_8 != 1 and product_accounting_No != 1 and product_payroll_No != 1 then:
    predicted time: 0
    normalized loss penalty: 0.0
    complexity penalty: 0.01

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

osst-0.1.6.tar.gz (6.0 MB view details)

Uploaded Source

Built Distributions

osst-0.1.6-cp312-abi3-win_amd64.whl (806.2 kB view details)

Uploaded CPython 3.12+ Windows x86-64

osst-0.1.6-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (536.2 kB view details)

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

osst-0.1.6-cp312-abi3-macosx_14_0_arm64.whl (577.2 kB view details)

Uploaded CPython 3.12+ macOS 14.0+ ARM64

osst-0.1.6-cp312-abi3-macosx_13_0_x86_64.whl (672.3 kB view details)

Uploaded CPython 3.12+ macOS 13.0+ x86-64

osst-0.1.6-cp312-abi3-macosx_12_0_x86_64.whl (660.7 kB view details)

Uploaded CPython 3.12+ macOS 12.0+ x86-64

osst-0.1.6-cp311-abi3-win_amd64.whl (806.2 kB view details)

Uploaded CPython 3.11+ Windows x86-64

osst-0.1.6-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (536.2 kB view details)

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

osst-0.1.6-cp311-abi3-macosx_14_0_arm64.whl (577.2 kB view details)

Uploaded CPython 3.11+ macOS 14.0+ ARM64

osst-0.1.6-cp311-abi3-macosx_13_0_x86_64.whl (672.3 kB view details)

Uploaded CPython 3.11+ macOS 13.0+ x86-64

osst-0.1.6-cp311-abi3-macosx_12_0_x86_64.whl (660.7 kB view details)

Uploaded CPython 3.11+ macOS 12.0+ x86-64

osst-0.1.6-cp310-abi3-win_amd64.whl (806.2 kB view details)

Uploaded CPython 3.10+ Windows x86-64

osst-0.1.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (536.2 kB view details)

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

osst-0.1.6-cp310-abi3-macosx_14_0_arm64.whl (577.2 kB view details)

Uploaded CPython 3.10+ macOS 14.0+ ARM64

osst-0.1.6-cp310-abi3-macosx_13_0_x86_64.whl (672.3 kB view details)

Uploaded CPython 3.10+ macOS 13.0+ x86-64

osst-0.1.6-cp310-abi3-macosx_12_0_x86_64.whl (660.7 kB view details)

Uploaded CPython 3.10+ macOS 12.0+ x86-64

osst-0.1.6-cp39-abi3-win_amd64.whl (806.8 kB view details)

Uploaded CPython 3.9+ Windows x86-64

osst-0.1.6-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (536.2 kB view details)

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

osst-0.1.6-cp39-abi3-macosx_14_0_arm64.whl (577.2 kB view details)

Uploaded CPython 3.9+ macOS 14.0+ ARM64

osst-0.1.6-cp39-abi3-macosx_13_0_x86_64.whl (672.3 kB view details)

Uploaded CPython 3.9+ macOS 13.0+ x86-64

osst-0.1.6-cp39-abi3-macosx_12_0_x86_64.whl (660.8 kB view details)

Uploaded CPython 3.9+ macOS 12.0+ x86-64

File details

Details for the file osst-0.1.6.tar.gz.

File metadata

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

File hashes

Hashes for osst-0.1.6.tar.gz
Algorithm Hash digest
SHA256 413ffd84c23996e4b0f56f4f856f104f8a9d106372db6afce3aaf44e99319506
MD5 8d00dc207e63f6eb60eb10aa4f1267b7
BLAKE2b-256 30cf0fb013a209fb67b53346a44501b9a0f5dd9f5ffd25000c570141c3b5426f

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp312-abi3-win_amd64.whl.

File metadata

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

File hashes

Hashes for osst-0.1.6-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e120d97c11fbb713bb0d3b5db4d2d9535a4b4b7ca620e34b4187f253ca69fcdd
MD5 a7839b174d504fcfe6033f8c725b659f
BLAKE2b-256 8bdb6aafc292ca2ddf4b0dba159cb694834367f6e9c65b2d1ccde81fbd7c1031

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c5421a4426b8204de29fd2d6770836829ab30f20541180bb4865bb7b12dd958b
MD5 5d06cdd2807e709c9e0ee816b6f08a8a
BLAKE2b-256 597497b4bcc10a649551428bf97039b59d4542b574e37188214ec9c87ed706af

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp312-abi3-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp312-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7819bddf6dfff41f814b1573a00805f118ba40157bcc2c8801da08dbcb0fecaa
MD5 e8b5fb8f777b931265f52316cbcf1fe7
BLAKE2b-256 3a0512e3f8c34fb44c790b3e8fd19dccb0687c7692d09aab155e99c10a95acfd

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 89baf2be371701889f95174ee52cfe06a51cacbdfa4cc7097488bb1536e0aed6
MD5 95028663dd575e681ca9f6f804a6ce5e
BLAKE2b-256 875f92fb418ca08f6977e16ef25f4bf105cb13d784c2d0fba11f294dd92b36d8

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp312-abi3-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp312-abi3-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 5bc150290a7428f30da7d9b7ed65848c325eada321fb7e5ff0814f52f22ac302
MD5 f54e20e88ac0810af0203e508cde7656
BLAKE2b-256 668e41fbfb1cbebe2d53717be881d087d609e3a7d616724d49c5756707ad6ee6

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: osst-0.1.6-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 806.2 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 osst-0.1.6-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6d7a653df5974c0942aa4a4328639f02c33f21eba0c5a07bb8c977fe1e277019
MD5 45519e6b11b2a47ed039c8cc9d47c6ba
BLAKE2b-256 549e2afac863374114db84f75e53757adbd0eff25c00f6509aa702fe51350cc8

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 59259610e998754d3b0bbf1ecf65a26912b9a2ab9855eabced567f1fc14dfdf1
MD5 482a4a810e2afbe671b731786adbe6a3
BLAKE2b-256 a8158770adc5cd8729d30560931c559f9309e567fb3d26143d634af4523c9dee

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp311-abi3-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp311-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7fa89d4ef5ef41eff9555242a138235796de2a356d71dc9b196e7fc13c642943
MD5 fd64537654a4312e2c67477e2d0c746b
BLAKE2b-256 5e5665d83486710d9a6aa1d1cd3583f747845044283993c46617bf41d4665db5

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp311-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp311-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 11cd6c6c9d630a319087edfd1039b948efa21db51fed6c99901447a7335c0561
MD5 1368ddfa2d42d64acc9ae1cefc4e4eb0
BLAKE2b-256 f971d336aa964e0652b022cbd5414c7596e90e86934c70c1ec23e339dc2a3164

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp311-abi3-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp311-abi3-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 2923f7d1ab755dcd22cc984ed78c6d21c24a892718c3c1a50cda3a229572b178
MD5 dfb8f987d474e92e5307e7e43c5882c9
BLAKE2b-256 f0502b2f2d58882c4aacdb0a39a4d02328e56034e5c5f8787d4205c0e3cc925c

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: osst-0.1.6-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 806.2 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 osst-0.1.6-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 562bbbf9e54f386f226bc9ab2794da0dcf4d073adb9509d9822de757581ebda1
MD5 5bfa4250e09a429150dea283ae92ab89
BLAKE2b-256 c6049b5f5ca9e7a0c2e787ef0896c00584e482341e26d5f6ef58ca692dfde140

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 51e846c820aafa7f4f0c786f75c8afd4dd9e8154814a2b8de5ed6029ab4723a4
MD5 7b4453e8f990ba0733c9477429aba87b
BLAKE2b-256 baf7e5393869facf7277192bfa18e03ef39daefc5e0d173a28780d3ea0ee38ab

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp310-abi3-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp310-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6cd715618b0aba915a45757cb1f35eafc5f104f2edbc88332889bb132a5646c0
MD5 f3fe86f5b4ba1597be4d350e86023aa7
BLAKE2b-256 34a9ccd287e7f95fe2e7b958d4298464205adc814badcfda9d7b610be4ce0b89

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp310-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp310-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 586b407656fae52d5c43a6f6919bee4fb3e838c2471ec6f5eb2f94b78c102527
MD5 8301fd3730af68911624473a93bfd18d
BLAKE2b-256 78aa91e6587a9c1b624b366345be66e5a562a8fda4d4e9811acf5626ebdcc56d

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp310-abi3-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp310-abi3-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 6d3586fa49c88ec25b45ab4a331f3bf1f73f13ef035613be54fe7049bee94484
MD5 b6933e8457bc296e7b8071df9834ba49
BLAKE2b-256 8766e7ca4440ce2d23ade08f38ff4ae9d1e4627add3a261a7c2b00ab18e147b1

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: osst-0.1.6-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 806.8 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 osst-0.1.6-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4edc7eff88bb26314f9f70d9648bef935df77c68ee1b40c6ed47bb85348bd70c
MD5 6a0b40010f2d0ddccf0cd146e5010c1f
BLAKE2b-256 7044e53b8f396f32c740f1797862686b551ec487be869bf8d46c33052270377e

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 49b6f55b34204fbf0035ab74ae07cf9070628c3c3cb98f20aa323517b7777279
MD5 712a68ff3c42fea115e133f1cd038e67
BLAKE2b-256 974a2e3d853fcc905415247b85cc7749447915c93be4206ced944a518d0cf504

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp39-abi3-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp39-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 836d8bb2d5e5b16f51e014fc0f77fa8b19f5cbac8a3ddd0270c608e412c20b4b
MD5 a4fe80eb8d0955f9a145e29357bfb716
BLAKE2b-256 fb878fe52ab6ff8d048f0e3b740a9527cbf314c6db9eab36ebe42635aaa821e7

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp39-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp39-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 c73b32feaca3107e51f16270d0a2c85b44b976bbff7e44aea34f69d1d9901b6e
MD5 b14508fb8b8ec4d305ba8821a489f06c
BLAKE2b-256 2d86c0d6d05dbc5de44534fcbeebda23371aeab5df715021d54ae928a4ef27a4

See more details on using hashes here.

File details

Details for the file osst-0.1.6-cp39-abi3-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for osst-0.1.6-cp39-abi3-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 70a9fc90cc650dd61c0ee79a51714d985b9a27bfbbf5717f717533125cef8a52
MD5 cf4d887c70ef46a15f7b5fb585284e2b
BLAKE2b-256 e57a3fb6786cf40e17d2cca8cdd99f9371f60db821811dc24f34229ea34346df

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