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.8.tar.gz (6.0 MB view details)

Uploaded Source

Built Distributions

osst-0.1.8-cp312-abi3-win_amd64.whl (804.4 kB view details)

Uploaded CPython 3.12+ Windows x86-64

osst-0.1.8-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (537.8 kB view details)

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

osst-0.1.8-cp312-abi3-macosx_14_0_arm64.whl (580.2 kB view details)

Uploaded CPython 3.12+ macOS 14.0+ ARM64

osst-0.1.8-cp312-abi3-macosx_13_0_x86_64.whl (672.5 kB view details)

Uploaded CPython 3.12+ macOS 13.0+ x86-64

osst-0.1.8-cp312-abi3-macosx_12_0_x86_64.whl (661.2 kB view details)

Uploaded CPython 3.12+ macOS 12.0+ x86-64

osst-0.1.8-cp311-abi3-win_amd64.whl (804.4 kB view details)

Uploaded CPython 3.11+ Windows x86-64

osst-0.1.8-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (537.8 kB view details)

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

osst-0.1.8-cp311-abi3-macosx_14_0_arm64.whl (580.2 kB view details)

Uploaded CPython 3.11+ macOS 14.0+ ARM64

osst-0.1.8-cp311-abi3-macosx_13_0_x86_64.whl (672.5 kB view details)

Uploaded CPython 3.11+ macOS 13.0+ x86-64

osst-0.1.8-cp311-abi3-macosx_12_0_x86_64.whl (661.2 kB view details)

Uploaded CPython 3.11+ macOS 12.0+ x86-64

osst-0.1.8-cp310-abi3-win_amd64.whl (804.4 kB view details)

Uploaded CPython 3.10+ Windows x86-64

osst-0.1.8-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (537.8 kB view details)

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

osst-0.1.8-cp310-abi3-macosx_14_0_arm64.whl (580.2 kB view details)

Uploaded CPython 3.10+ macOS 14.0+ ARM64

osst-0.1.8-cp310-abi3-macosx_13_0_x86_64.whl (672.5 kB view details)

Uploaded CPython 3.10+ macOS 13.0+ x86-64

osst-0.1.8-cp310-abi3-macosx_12_0_x86_64.whl (661.2 kB view details)

Uploaded CPython 3.10+ macOS 12.0+ x86-64

osst-0.1.8-cp39-abi3-win_amd64.whl (805.1 kB view details)

Uploaded CPython 3.9+ Windows x86-64

osst-0.1.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (537.8 kB view details)

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

osst-0.1.8-cp39-abi3-macosx_14_0_arm64.whl (580.2 kB view details)

Uploaded CPython 3.9+ macOS 14.0+ ARM64

osst-0.1.8-cp39-abi3-macosx_13_0_x86_64.whl (672.5 kB view details)

Uploaded CPython 3.9+ macOS 13.0+ x86-64

osst-0.1.8-cp39-abi3-macosx_12_0_x86_64.whl (661.3 kB view details)

Uploaded CPython 3.9+ macOS 12.0+ x86-64

File details

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

File metadata

  • Download URL: osst-0.1.8.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.8.tar.gz
Algorithm Hash digest
SHA256 218e9c78ca7eae43811f0cdcf691e6cf3c5641d6c11283cfa16faba33bb1b803
MD5 cf7fa578389681f87cfc84eced277136
BLAKE2b-256 03f550927700c1943254e62f157921f376944adce7104397c5e6a08d8917e0ae

See more details on using hashes here.

File details

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

File metadata

  • Download URL: osst-0.1.8-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 804.4 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.8-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 7ee7f0c5361477c5b4934c0041f247a2136657b2f5b1fa7783e712066a9d488f
MD5 4014599ffb50098816274a878298e879
BLAKE2b-256 b71bacd4b8ddb71741a9a9d443356362d2793406b611219e7c4c262355d01c08

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a494ddaca0f7305a0af5f57fc54f7785844362bcfea25f68574268828f61d397
MD5 ff8fa8590806984babf4a3b424edf7ec
BLAKE2b-256 399aa561b702e422634063e2bb7acacdea9bd7d85787fe769ace060282799b62

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp312-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 98e0ae50045d550ff90cebbfeabbadb834b749fcebd8ff8ded46f3044f9c3fd7
MD5 43342b8f68766b66ec421176d28006cb
BLAKE2b-256 1dd1b33c4a781c6cfd19790d92812cc9e4bec231e5a6c9a3f0f1b8eb0be2c118

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 fa18299db4d1485183319c63fc64181599e6353d84cd6545aed575af03e13722
MD5 5b2be6ebfc2a7d09a25a819f611c1d70
BLAKE2b-256 1c97f728e6fd40ddfabeb687567f676bc85a4aa464f1938c68aa0779fad26869

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp312-abi3-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 e25445f3990d96c832be4c47389e2f1770b8a423b90759a2ea228e5d7537a904
MD5 b631a928a9459de0fa83091c59fa8b07
BLAKE2b-256 69f5f346ab0bfb88f8b38c0771a8dc509d6f5661fe64e0e7b7bdd3b05b63e53b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: osst-0.1.8-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 804.4 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.8-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e0bf780a4e1b8f839836580bc774cbf49bb825a1b14e9b8f6e5783763bd82013
MD5 c6368ca8833bee44f3f18ba8459b889b
BLAKE2b-256 8e395dc664ba58440fb24a72b82548eab2b6ed8d1f6d02346031cd6326614037

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f8a82fcdcd675dec33cb420c3456785399ceefc943490c32af3c53f579249962
MD5 7b3f0bc12fe7e60874930a7f7ef63dc8
BLAKE2b-256 a9dee2f24572b6670527929a351c88f5bf792712c9b3d16e8510f740033ad044

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp311-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7de7c6ee610cc5d6d2f4e1da9654a091ecc7b24c61f2732769583b3aa69c0030
MD5 0727206bfb5298e098bdc06cc8a37957
BLAKE2b-256 59a921b4006de4e56a0417243953c56e562e8ed63b0a9e15bc3820d8853c18fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp311-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 4c572c39eb65738c850438d2dedef4142b1309de0a802766c75bbc29b808bb80
MD5 6371879ec25dc0217ed848d167a94e8b
BLAKE2b-256 a658b72b1e98134106e665d50a8338e6510b1a40ac8956a2bd1ee4c6b822e67b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp311-abi3-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 7ee80b8bad2282d552d0c3e43fa77ed5421441d2a02edc0ba31176231e43ee25
MD5 6cd5655e87de71eaf296253cdc070cd7
BLAKE2b-256 0e4f50783456a71707ac214ccd1f11defe613274666f0484d9407cfb3f272886

See more details on using hashes here.

File details

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

File metadata

  • Download URL: osst-0.1.8-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 804.4 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.8-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 53ec950bbb1bc74f8971cc8c00972eb4edc8b5b727b0d027ab6af6189305ee7c
MD5 bfff538b7bc8792afe48025ee43bf7da
BLAKE2b-256 c9b27d589e8add7657d2a9b6169d5fb919ab5a5c0dda5fc5bd98ad14c3257f9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 077998e84e25d3e487f47bae83a09f80aa4e56aebba0ca11c2ae28e97c944e4f
MD5 99a4c074146e389a8a4157799b9d1cde
BLAKE2b-256 f4235361fab055bd1f371240f69aadb7153fcb3425ef0b5c60b2d84045826ef8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp310-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 669e2e20818934897a49e235a9b5bef58fbe72f822c1e1c49726a180e5b2b422
MD5 1ba39d5d725b81fdd98501ac708ba381
BLAKE2b-256 d3a7f0ff0846fc1a6751329381d63326dad137dd93f600c162cbaa8ec9775f89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp310-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 0fe2ed8f4d0fc0ea72dc0231363a232147e86f49e82712500ca67264ae799a21
MD5 ec5fddf1da1f8862ed2f6b7935c8f63c
BLAKE2b-256 3b577ba7191486750a4f8f1a04487a1b79cc5d92a4e7e78eefeb500bd8eb9af0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp310-abi3-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 b24911b73db7f9e7eb49d5af23b56c848586a4a36c2553c172690a6a35f74c94
MD5 1b23bbecc0101e71e12f265896107866
BLAKE2b-256 6aca002e698953951de2434c96ce1410f7c4c8da4dc3246330ae9cc2dee23bb7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: osst-0.1.8-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 805.1 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.8-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9209a690da36dfceca37ec7b3338400280e597562959d04edf47237750c03719
MD5 0c057d10e75bd883e50e6522fbd885be
BLAKE2b-256 83285699d71396962aec021992b09873dfd9354116ed2c03b5d1561cbf152474

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2bec7fbd4c6a9c68d6040c821d175c566d49fee2cfb0f04a1455a45952165ecf
MD5 f50a381ea69e5e86f50fc4c1a04a12f3
BLAKE2b-256 257e4c75586d726a0095aa7cf6dbffd303399fa2d4713aeb67d7b3bafb38b87a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp39-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e84701a400573e7646005fdf2d1c3099de575e7c4818a6633eaf7745d75dc57d
MD5 759276166ae69e483e67fb45b0d993a8
BLAKE2b-256 26041cd74b561ba5faef53e9e473ffcfd94b98747904edfecaa571c4db157688

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp39-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 6c722fcc03565e916d0f3a41c65b151b248ba155702f0230d61760dd06d1353e
MD5 056895f4f2e6153bbc8a424ab0b341e4
BLAKE2b-256 c24003d0aa6c2c2ae5c7b07f5ddce712a065cec4ffb4416f9160ad56019c0a05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for osst-0.1.8-cp39-abi3-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 a3c9a06fca21f203b0a1fef5d1c774009d0fe16353a6c5ec59122f395c2c2221
MD5 1a8c038c1b2160b1802c23f5d8714e0e
BLAKE2b-256 da68ae6f918a766478e5a4dde803c3a6ae52549b76d41ba17a96e00e5626feec

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