Skip to main content

opentimspy: An open-source parser of Bruker Tims Data File (.tdf).

Project description

OpenTIMS

OpenTIMS is a C++ library for accessing timsTOF Pro data format (TDF). It replaces (to a large extent) Bruker's SDK for purposes of data access and provides convenient layer for integration into higher level computer languages. It comes with bindings to Python (through opentimspy) and R languages (through opentimsr). In Python, we extract data into NumPy arrays that are optimized for speed and come with a universe of useful methods for their quick manipulation. In R, we extract data into the native data.frame object.

With OpenTIMS you can access data contained in the analysis.tdf_bin file hapilly produced by your mass spectrometer of choice (as long as it is timsTOF Pro). It also parses some of the information out of the SQLite data base contained in the analysis.tdf file. You should have both of these files in one folder to start using our software.

We can also get your data faster in C++ (and so to Python and R):

Prefer userfriendliness over raw power? We have you covered! Check out the children projects TimsR and TimsPy.

Requirements

The software was tested on Linux, Windows, and MacOS. On Windows, install Microsoft Visual Studio from here to make use of C++ or Python code. On Linux, have clang++ or g++ installed (clang produces slightly faster code). Also, do make sure that a developper version of Python is installed. For instance, on Ubuntu, install Python with

sudo apt install python3.8-dev

i.e. with the -dev version. This contains headers needed for pybind to work properly. On macOS, install Xcode Command Line Tools.

Python

From terminal (assuming you have python and pip included in the system PATH) write

pip install opentimspy

We recommend also installing the opentims_bruker_bridge module, containing Bruker's proprietary conversion functions (Linux and Windows only). To do that, do:

pip install opentims_bruker_bridge

On Windows: we have noticed issues with the numpy==1.19.4 due to changes in Intel's fmod function, unrelated to our work. If you keep on experiencing these issues, install numpy==1.19.3.

pip uninstall numpy
pip install numpy==1.19.3

R

From R terminal (opened either in powershell or in RStudio and similar):

install.packages('opentimsr')

or using devtools

install.packages('devtools')
library(devtools)

install_github("michalsta/opentims", subdir="opentimsr")

On Windows the last command might give you a warning about tar stopping with non-zero exit code. It's safe to ignore.

If that does not work, first clone the repository and then install manually with:

git clone https://github.com/michalsta/opentims
cd opentims
R CMD build opentimsr
R CMD INSTALL opentimsr_*.tar.gz

On windows, replace R with R.exe. You can download git from here.

Usage

Python

All the functions are documented with doc-strings. The resulting automatic API documentation is available here.

import pathlib
from pprint import pprint

from opentimspy.opentims import OpenTIMS

path = pathlib.Path('path_to_your_data.d')
D = OpenTIMS(path) # get data handle
print(D)
# OpenTIMS(404183877 peaks)

print(len(D)) # The number of peaks.
# 404183877 

D.framesTIC() # Return combined intensity for each frame.
# array([ 95910, 579150, 906718, ..., 406317,   8093,   8629])


try:
    import opentims_bruker_bridge
    all_columns = ('frame','scan','tof','intensity','mz','inv_ion_mobility','retention_time')
except ModuleNotFoundError:
    print("Without Bruker proprietary code we cannot yet perform tof-mz and scan-dt transformations.")
    print("Download 'opentims_bruker_bridge' if you are on Linux or Windows.")
    print("Otherwise, you will be able to use only these columns:")
    all_columns = ('frame','scan','tof','intensity','retention_time')


# We consider the following columns:
print(all_columns)
# ('frame', 'scan', 'tof', 'intensity', 'mz', 'inv_ion_mobility', 'retention_time')


# Get a dict with data from frames 1, 5, and 67.
pprint(D.query(frames=[1,5,67], columns=all_columns))
# {'frame': array([ 1,  1,  1, ..., 67, 67, 67], dtype=uint32),
#  'intensity': array([ 9,  9,  9, ..., 19, 57, 95], dtype=uint32),
#  'inv_ion_mobility': array([1.60114183, 1.6       , 1.6       , ..., 0.60077422, 0.60077422,
#        0.60077422]),
#  'mz': array([1174.65579059,  733.48094071,  916.95238879, ...,  672.00166969,
#         802.16055154, 1055.20374969]),
#  'retention_time': array([0.32649208, 0.32649208, 0.32649208, ..., 7.40565443, 7.40565443,
#        7.40565443]),
#  'scan': array([ 33,  34,  34, ..., 917, 917, 917], dtype=uint32),
#  'tof': array([312260, 220720, 261438, ..., 205954, 236501, 289480], dtype=uint32)}

# The outcome of the function is a dictionary of numpy arrays, which is the best one can have without 'Pandas' and stretching the use of numpy.
# If you like 'Pandas', consider 'TimsPy'.


# Get a dict with each 10th frame, starting from frame 2, finishing on frame 1000.   
pprint(D.query(frames=slice(2,1000,10), columns=all_columns))
# {'frame': array([  2,   2,   2, ..., 992, 992, 992], dtype=uint32),
#  'intensity': array([9, 9, 9, ..., 9, 9, 9], dtype=uint32),
#  'inv_ion_mobility': array([1.60114183, 1.60114183, 1.6       , ..., 0.60638211, 0.60301731,
#        0.60189576]),
#  'mz': array([ 302.3476711 , 1165.32728084,  391.98410024, ...,  440.96697448,
#        1158.92213271,  749.26470544]),
#  'retention_time': array([  0.43470634,   0.43470634,   0.43470634, ..., 106.71027856,
#        106.71027856, 106.71027856]),
#  'scan': array([ 33,  33,  34, ..., 912, 915, 916], dtype=uint32),
#  'tof': array([ 97298, 310524, 127985, ..., 143270, 309328, 224410], dtype=uint32)}



# Get all MS1 frames 
# pprint(D.query(frames=D.ms1_frames, columns=all_columns))
# ATTENTION: that's quite a lot of data!!! You might exceed your RAM.


# If you want to extract not every possible columnt, but a subset, use the columns argument:
pprint(D.query(frames=slice(2,1000,10), columns=('tof','intensity',)))
# {'intensity': array([9, 9, 9, ..., 9, 9, 9], dtype=uint32),
#  'tof': array([ 97298, 310524, 127985, ..., 143270, 309328, 224410], dtype=uint32)}
# 
# This will reduce your memory usage.


# Still too much memory used up? You can also iterate over frames:
it = D.query_iter(slice(10,100,10), columns=all_columns)
pprint(next(it))
# {'frame': array([10, 10, 10, ..., 10, 10, 10], dtype=uint32),
#  'intensity': array([ 9,  9,  9, ...,  9, 13, 86], dtype=uint32),
#  'inv_ion_mobility': array([1.6       , 1.5977164 , 1.5954329 , ..., 0.60526049, 0.60189576,
#        0.60189576]),
#  'mz': array([538.22572833, 148.90442262, 414.28892487, ..., 677.99334299,
#        290.222999  , 298.18539969]),
#  'retention_time': array([1.29368159, 1.29368159, 1.29368159, ..., 1.29368159, 1.29368159,
#        1.29368159]),
#  'scan': array([ 34,  36,  38, ..., 913, 916, 916], dtype=uint32),
#  'tof': array([171284,  31282, 135057, ..., 207422,  92814,  95769], dtype=uint32)}

pprint(next(it))
# {'frame': array([20, 20, 20, ..., 20, 20, 20], dtype=uint32),
#  'intensity': array([31, 10,  9, ..., 26,  9,  9], dtype=uint32),
#  'inv_ion_mobility': array([1.60114183, 1.60114183, 1.6       , ..., 0.60301731, 0.60301731,
#        0.60189576]),
#  'mz': array([1445.63777755, 1516.85130172,  536.01934412, ...,  421.57926311,
#         422.13747807,  300.13908112]),
#  'retention_time': array([2.36610302, 2.36610302, 2.36610302, ..., 2.36610302, 2.36610302,
#        2.36610302]),
#  'scan': array([ 33,  33,  34, ..., 915, 915, 916], dtype=uint32),
#  'tof': array([359979, 371758, 170678, ..., 137327, 137500,  96488], dtype=uint32)}


# All MS1 frames, but one at a time
iterator_over_MS1 = D.query_iter(D.ms1_frames, columns=all_columns)
pprint(next(it))
pprint(next(it))
# or in a loop, only getting intensities
for fr in D.query_iter(D.ms1_frames, columns=('intensity',)):
    print(fr['intensity'])
# ...
# [ 9  9  9 ... 83 72 82]
# [ 9  9  9 ... 59 86 61]
# [ 9  9 55 ...  9 32  9]
# [ 9  9  9 ... 93  9 80]
# [ 9  9 60 ...  9  9 60]
# [ 9  9  9 ... 46 10  9]
# [ 9  9  9 ... 30 61  9]
# [  9   9   9 ... 117   9  64]
# [ 20 147  69 ...  58   9   9]
# [ 9  9  9 ...  9 91  9]


# The frame lasts a convenient time unit that well suits chromatography peak elution.
# What if you were interested instead in finding out which frames eluted in a given time 
# time of the experiment?
# For this reasone, we have prepared a retention time based query:
# suppose you are interested in all frames corresponding to all that eluted between 10 and 12
# second of the experiment.
D.rt_query(10,12)
# {'frame': array([ 92,  92,  92, ..., 109, 109, 109], dtype=uint32),
#  'scan': array([ 33,  36,  41, ..., 914, 916, 917], dtype=uint32),
#  'tof': array([361758,  65738, 308330, ..., 144566, 138933, 373182], dtype=uint32),
#  'intensity': array([ 9,  9,  9, ..., 58, 91,  9], dtype=uint32),
#  'mz': array([1456.28349866,  222.28224757, 1153.59087822, ...,  445.25277042,
#          426.77550441, 1525.57652881]),
#  'inv_ion_mobility': array([1.60114183, 1.5977164 , 1.59200782, ..., 0.60413889, 0.60189576,
#         0.60077422]),
#  'retention_time': array([10.08689891, 10.08689891, 10.08689891, ..., 11.91001388,
#         11.91001388, 11.91001388])}


# Get numpy array with raw data in a given range 1:10
pprint(D[1:10])
# array([[     1,     33, 312260,      9],
#        [     1,     34, 220720,      9],
#        [     1,     34, 261438,      9],
#        ...,
#        [     9,    913, 204042,     10],
#        [     9,    914, 358144,      9],
#        [     9,    915, 354086,      9]], dtype=uint32)

R

For a detailed documentation of the R package, consult the CRAN webpage of the project (especially the reference manual linked there).

library(opentimsr)

# path = pathlib.Path('path_to_your_data.d')
path = "/home/matteo/Projects/bruker/BrukerMIDIA/MIDIA_CE10_precursor/20190912_HeLa_Bruker_TEN_MIDIA_200ng_CE10_100ms_Slot1-9_1_488.d"

# Do you want to have access only to 'frame', 'scan', 'time of flight', and 'intensity'?
accept_Bruker_EULA_and_on_Windows_or_Linux = TRUE

if(accept_Bruker_EULA_and_on_Windows_or_Linux){
    folder_to_stode_priopriatary_code = "/home/matteo"
    path_to_bruker_dll = download_bruker_proprietary_code(folder_to_stode_priopriatary_code)
    setup_bruker_so(path_to_bruker_dll)
    all_columns = c('frame','scan','tof','intensity','mz','inv_ion_mobility','retention_time')
} else {
    all_columns = c('frame','scan','tof','intensity','retention_time')
}

D = OpenTIMS(path) # get data handle
D@all_columns

print(D) 
print(length(D)) # The number of peaks.
# 404183877


pprint = function(x,...){ print(head(x,...)); print(tail(x,...)) }

# Get a data,frame with data from frames 1, 5, and 67.
pprint(query(D, frames=c(1,5,67), columns=all_columns))
#   frame scan    tof intensity        mz inv_ion_mobility retention_time
# 1     1   33 312260         9 1174.6558         1.601142      0.3264921
# 2     1   34 220720         9  733.4809         1.600000      0.3264921
# 3     1   34 261438         9  916.9524         1.600000      0.3264921
# 4     1   36  33072         9  152.3557         1.597716      0.3264921
# 5     1   36 242110         9  827.3114         1.597716      0.3264921
# 6     1   38 204868        62  667.5863         1.595433      0.3264921
# 
#        frame scan    tof intensity        mz inv_ion_mobility retention_time
# 224732    67  917 135191       189  414.7175        0.6007742       7.405654
# 224733    67  917 192745        51  619.2850        0.6007742       7.405654
# 224734    67  917 201838        54  655.3439        0.6007742       7.405654
# 224735    67  917 205954        19  672.0017        0.6007742       7.405654
# 224736    67  917 236501        57  802.1606        0.6007742       7.405654
# 224737    67  917 289480        95 1055.2037        0.6007742       7.405654



# Get a dict with each 10th frame, starting from frame 2, finishing on frame 1000.   
pprint(query(D, frames=seq(2,1000,10), columns=all_columns))
#   frame scan    tof intensity        mz inv_ion_mobility retention_time
# 1     2   33  97298         9  302.3477         1.601142      0.4347063
# 2     2   33 310524         9 1165.3273         1.601142      0.4347063
# 3     2   34 127985         9  391.9841         1.600000      0.4347063
# 4     2   35 280460         9 1009.6751         1.598858      0.4347063
# 5     2   37 329377        72 1268.6262         1.596575      0.4347063
# 6     2   38 204900         9  667.7161         1.595433      0.4347063
#        frame scan    tof intensity        mz inv_ion_mobility retention_time
# 669552   992  904 291346         9 1064.7478        0.6153559       106.7103
# 669553   992  909 198994         9  643.9562        0.6097471       106.7103
# 669554   992  909 282616         9 1020.4663        0.6097471       106.7103
# 669555   992  912 143270         9  440.9670        0.6063821       106.7103
# 669556   992  915 309328         9 1158.9221        0.6030173       106.7103
# 669557   992  916 224410         9  749.2647        0.6018958       106.7103



# Get all MS1 frames 
# print(query(D, frames=MS1(D)))
# ATTENTION: that's quite a lot of data!!! And R will first make a stupid copy, because it's bad. You might exceed your RAM.

# Getting subset of columns: simply specify 'columns':
pprint(query(D, frames=c(1,5,67), columns=c('scan','intensity')))
#   scan intensity
# 1   33         9
# 2   34         9
# 3   34         9
# 4   36         9
# 5   36         9
# 6   38        62
#        scan intensity
# 224732  917       189
# 224733  917        51
# 224734  917        54
# 224735  917        19
# 224736  917        57
# 224737  917        95
# 
# this is also the only way to get data without accepting Bruker terms of service and on MacOS (for time being).


# The frame lasts a convenient time unit that well suits chromatography peak elution.
# What if you were interested instead in finding out which frames eluted in a given time 
# time of the experiment?
# For this reasone, we have prepared a retention time based query:
# suppose you are interested in all frames corresponding to all that eluted between 10 and 12
# second of the experiment.
pprint(rt_query(D, 10, 12))
#   frame scan    tof intensity        mz inv_ion_mobility retention_time
# 1    92   33 361758         9 1456.2835         1.601142        10.0869
# 2    92   36  65738         9  222.2822         1.597716        10.0869
# 3    92   41 308330         9 1153.5909         1.592008        10.0869
# 4    92   43 123618         9  378.5190         1.589725        10.0869
# 5    92   48  65346         9  221.3651         1.584017        10.0869
# 6    92   53 183172         9  582.4251         1.578310        10.0869
#        frame scan    tof intensity        mz inv_ion_mobility retention_time
# 128129   109  913  38170         9  162.4016        0.6052605       11.91001
# 128130   109  914 138760        65  426.2142        0.6041389       11.91001
# 128131   109  914 142129        69  437.2109        0.6041389       11.91001
# 128132   109  914 144566        58  445.2528        0.6041389       11.91001
# 128133   109  916 138933        91  426.7755        0.6018958       11.91001
# 128134   109  917 373182         9 1525.5765        0.6007742       11.91001


# R has no proper in-built iterators :(

# All MS1 frames, but one at a time:
for(fr in MS1(D)){
    print(query(D, fr, columns=all_columns))
}


# Syntactic sugar: only the real bruker data can also be extracted this way:
pprint(head(D[100])) 
#   frame scan    tof intensity
# 1   100   35 389679         9
# 2   100   35 394578         9
# 3   100   37  78036         9
# 4   100   37 210934         9
# 5   100   37 211498         9
# 6   100   37 351984         9
#   frame scan    tof intensity
# 1   100   35 389679         9
# 2   100   35 394578         9
# 3   100   37  78036         9
# 4   100   37 210934         9
# 5   100   37 211498         9
# 6   100   37 351984         9


X = D[10:200]
pprint(X)
#   frame scan    tof intensity
# 1    10   34 171284         9
# 2    10   36  31282         9
# 3    10   38 135057         9
# 4    10   39 135446         9
# 5    10   41 188048         9
# 6    10   42 288608         9
#         frame scan    tof intensity
# 3331314   200  895 318550         9
# 3331315   200  899  57824       126
# 3331316   200  902 314562         9
# 3331317   200  903 375375         9
# 3331318   200  905 358594         9
# 3331319   200  911 146843         9


# Simple access to 'analysis.bin'? Sure:
tables_names(D)
#  [1] "CalibrationInfo"          "DiaFrameMsMsInfo"        
#  [3] "DiaFrameMsMsWindowGroups" "DiaFrameMsMsWindows"     
#  [5] "ErrorLog"                 "FrameMsMsInfo"           
#  [7] "FrameProperties"          "Frames"                  
#  [9] "GlobalMetadata"           "GroupProperties"         
# [11] "MzCalibration"            "Properties"              
# [13] "PropertyDefinitions"      "PropertyGroups"          
# [15] "Segments"                 "TimsCalibration"         
 

# Just choose a table now:
table2df(D, 'TimsCalibration')
#   Id ModelType C0  C1       C2       C3 C4 C5           C6       C7       C8
# 1  1         2  1 917 213.5998 75.81729 33  1 -0.009065829 135.4364 13.32608
#         C9
# 1 1663.341

C++

In C++ we offer several functions for the raw access to the data. To check out how to use the C++ API, check a basic usage example /examples/get_data.cpp, or the full documentation at /docs/opentims++

More options?

Consider TimsPy and TimsR for more user-friendly options.

Development

We will be happy to accept any contributions.

Current limitations

Due to patent restrictions, open source calibration functions used by Bruker cannot be revealed. For this reason, we have to use the original Bruker TDF-SDK for time of flight to mass over charge and scan to inverse ion mobility transformations. To make it as easy at can be, we have prepared a Python module called opentims_bruker_bridge that ships the necessary dll and so files. Please visit the project and follow language-specific instructions for its installation.

Plans for future

  • Together with Bruker we are working on opening up the tof-mz and scan-dt conversions which is scheduled for the next release of the acquisition software.
  • This way fully open source access will be available on all of the commonly used platforms.
  • Adding bindings to other languages.

Licence

OpenTIMS is released under the terms of MIT licence. Full text below in LICENCE file. If you require other licensing terms please contact the authors.

OpenTIMS contains built-in versions of the following software:

  • sqlite3, public domain
  • ZSTD, BSD licence
  • mio, MIT licence

See the respective files for details. Consider TimsPy for Bruker proprietary time of flight to mass to charge ratio and scan to drift time transformations, which are shipped under separate license.

If the above license terms do not suit you, please contact us. We are open to discussion about your particular licensing needs.

Special thanks

We would like to thank Michael Krause, Sascha Winter, and Sven Brehmer, all from Bruker Daltonik GmbH, for their magnificent work in developing tfd-sdk.

Knowns Issues:

pybind11 causes an error upon installation:

  Building wheel for opentimspy (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /home/matteo/Projects/opentims/timspy/timspyVE/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-06parpqo/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-06parpqo/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-rq1ll2m4
       cwd: /tmp/pip-req-build-06parpqo/
  Complete output (11 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.8
  creating build/lib.linux-x86_64-3.8/opentimspy
  copying opentimspy/opentims.py -> build/lib.linux-x86_64-3.8/opentimspy
  copying opentimspy/__init__.py -> build/lib.linux-x86_64-3.8/opentimspy
  running build_ext
  building 'opentimspy_support' extension
  pybind11 not found. Please either install it manually, or install via pip rather than through setuptools directly.
  ----------------------------------------
  ERROR: Failed building wheel for opentimspy

Ignore it: it is pip-related and does not influence the intallation.

R function rt_query

If you see error: Error in col[1] : object of type 'closure' is not subsettable then interpret the following set of functions:

get_left_frame = function(x,y) ifelse(x > y[length(y)], NA, findInterval(x, y, left.open=T) + 1)
get_right_frame = function(x,y) ifelse(x < y[1], NA, findInterval(x, y, left.open=F))

rt_query = function(opentims,
                    min_retention_time,
                    max_retention_time,
                    columns=c('frame','scan','tof','intensity','mz','inv_ion_mobility','retention_time')
){
  RTS = retention_times(opentims)
  
  min_frame = get_left_frame(min_retention_time, RTS)
  max_frame = get_right_frame(max_retention_time, RTS)
  
  if(is.na(min_frame) | is.na(max_frame))
    stop("The [min_retention_time,max_retention_time] interval does not hold any data.")
  
  query(opentims, min_frame:max_frame, columns=columns)
}

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

opentimspy-1.2.0b2.tar.gz (5.4 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

opentimspy-1.2.0b2-cp314-cp314t-win_amd64.whl (429.3 kB view details)

Uploaded CPython 3.14tWindows x86-64

opentimspy-1.2.0b2-cp314-cp314t-win32.whl (402.7 kB view details)

Uploaded CPython 3.14tWindows x86

opentimspy-1.2.0b2-cp314-cp314t-musllinux_1_2_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

opentimspy-1.2.0b2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (496.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

opentimspy-1.2.0b2-cp314-cp314t-macosx_11_0_arm64.whl (428.8 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

opentimspy-1.2.0b2-cp314-cp314-win_amd64.whl (414.7 kB view details)

Uploaded CPython 3.14Windows x86-64

opentimspy-1.2.0b2-cp314-cp314-win32.whl (393.0 kB view details)

Uploaded CPython 3.14Windows x86

opentimspy-1.2.0b2-cp314-cp314-musllinux_1_2_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

opentimspy-1.2.0b2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (497.8 kB view details)

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

opentimspy-1.2.0b2-cp314-cp314-macosx_11_0_arm64.whl (419.0 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

opentimspy-1.2.0b2-cp313-cp313-win_amd64.whl (409.5 kB view details)

Uploaded CPython 3.13Windows x86-64

opentimspy-1.2.0b2-cp313-cp313-win32.whl (388.1 kB view details)

Uploaded CPython 3.13Windows x86

opentimspy-1.2.0b2-cp313-cp313-musllinux_1_2_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

opentimspy-1.2.0b2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (497.5 kB view details)

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

opentimspy-1.2.0b2-cp313-cp313-macosx_11_0_arm64.whl (418.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

opentimspy-1.2.0b2-cp312-cp312-win_amd64.whl (409.5 kB view details)

Uploaded CPython 3.12Windows x86-64

opentimspy-1.2.0b2-cp312-cp312-win32.whl (388.2 kB view details)

Uploaded CPython 3.12Windows x86

opentimspy-1.2.0b2-cp312-cp312-musllinux_1_2_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

opentimspy-1.2.0b2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (497.3 kB view details)

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

opentimspy-1.2.0b2-cp312-cp312-macosx_11_0_arm64.whl (418.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

opentimspy-1.2.0b2-cp311-cp311-win_amd64.whl (407.5 kB view details)

Uploaded CPython 3.11Windows x86-64

opentimspy-1.2.0b2-cp311-cp311-win32.whl (387.7 kB view details)

Uploaded CPython 3.11Windows x86

opentimspy-1.2.0b2-cp311-cp311-musllinux_1_2_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

opentimspy-1.2.0b2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (492.0 kB view details)

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

opentimspy-1.2.0b2-cp311-cp311-macosx_11_0_arm64.whl (417.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

opentimspy-1.2.0b2-cp310-cp310-win_amd64.whl (406.5 kB view details)

Uploaded CPython 3.10Windows x86-64

opentimspy-1.2.0b2-cp310-cp310-win32.whl (386.6 kB view details)

Uploaded CPython 3.10Windows x86

opentimspy-1.2.0b2-cp310-cp310-musllinux_1_2_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

opentimspy-1.2.0b2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (490.9 kB view details)

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

opentimspy-1.2.0b2-cp310-cp310-macosx_11_0_arm64.whl (416.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

opentimspy-1.2.0b2-cp39-cp39-win_amd64.whl (411.0 kB view details)

Uploaded CPython 3.9Windows x86-64

opentimspy-1.2.0b2-cp39-cp39-win32.whl (386.8 kB view details)

Uploaded CPython 3.9Windows x86

opentimspy-1.2.0b2-cp39-cp39-musllinux_1_2_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

opentimspy-1.2.0b2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (491.1 kB view details)

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

opentimspy-1.2.0b2-cp39-cp39-macosx_11_0_arm64.whl (416.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

opentimspy-1.2.0b2-cp38-cp38-win_amd64.whl (406.5 kB view details)

Uploaded CPython 3.8Windows x86-64

opentimspy-1.2.0b2-cp38-cp38-win32.whl (386.6 kB view details)

Uploaded CPython 3.8Windows x86

opentimspy-1.2.0b2-cp38-cp38-musllinux_1_2_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

opentimspy-1.2.0b2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (491.0 kB view details)

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

opentimspy-1.2.0b2-cp38-cp38-macosx_11_0_arm64.whl (416.0 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file opentimspy-1.2.0b2.tar.gz.

File metadata

  • Download URL: opentimspy-1.2.0b2.tar.gz
  • Upload date:
  • Size: 5.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for opentimspy-1.2.0b2.tar.gz
Algorithm Hash digest
SHA256 f07aa76d88936b5f311183fbae7834698aec399563558763ee08c4c3243f7075
MD5 fc6af9b7d2f63507c2637e9bb6534d38
BLAKE2b-256 16915a0034215cacebde4f02cfc510e14608c3ee6df851c41367a073ee32e117

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2.tar.gz:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 674ff014e769d3b2900034c49615923cdf648865e990e31dbf76e5ebd04a924f
MD5 c89f81a94426ef1a46bef1a8a95b3756
BLAKE2b-256 99745219a78fc34710a41718aae33132badafa18a239edddffe214a3bf1f02a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp314-cp314t-win_amd64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp314-cp314t-win32.whl.

File metadata

  • Download URL: opentimspy-1.2.0b2-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 402.7 kB
  • Tags: CPython 3.14t, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for opentimspy-1.2.0b2-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 9cb1102cdcbadee57380c6d0bf322c5ffcf3417b23f5849da3448a090b903636
MD5 3e5e4aab19090f55ab86ea8e2b9b0fcc
BLAKE2b-256 c37030606cd7ade7186dd6f563e89a5320701d2d9c678b565fa12042117fd09b

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp314-cp314t-win32.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 155deb83dca413a1eb67c5d67c53835239d8970ae3603652b46c6b13695c7786
MD5 6126ba915d7b7db881d6bf3accee25a5
BLAKE2b-256 11cc6ac21d27015d8db24c842f49832400594d6ee115e9555c4df41d6b24e1f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c018323ce1f23b54c4f2a2342dac2d71c31ca0f9246e634e943b047499acbfd7
MD5 56b80fda83fb625c328a0ab334b00cba
BLAKE2b-256 faf07262d43df8213bde21544f3c2bb011c7db51aaa0719fd852bf55c4d7835f

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1feeae025f0d9b77fb9b08f36a42427ec1d9e8161a2ab21d1304f3f45b541578
MD5 6f03cc1025a5b38890b50e979dab6954
BLAKE2b-256 5c60cd930107ef2e36f03b97ed6a2624bfcf76d4a32a3e997ecb25488166343c

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 9d1cb9e807af6916229db4185f42f0ba19fd5d64bea0fdf6e407c9d21aa61575
MD5 46a7536aa5b23b072af54288b5fe00ec
BLAKE2b-256 1b651b7215d12486947e5b0c46d47ed37cdd2d9b554d8d1f45764bcd95c86dd0

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp314-cp314-win32.whl.

File metadata

  • Download URL: opentimspy-1.2.0b2-cp314-cp314-win32.whl
  • Upload date:
  • Size: 393.0 kB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for opentimspy-1.2.0b2-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 aa6ce4b39018e2b55756e68a95e1786f432b3dd162953bdb1413ff7c9e17fe59
MD5 727a4b56db8f3ceb8d0c63c190072eb6
BLAKE2b-256 a71bbbba5035cbbf82d2a85ddb17b8f081a4af894781f2888df041a2ae5fdd70

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp314-cp314-win32.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6ad00caa855fc1b11c92a2dc34f781e3c0850bf16f1c84dfa6af1f9d8c496456
MD5 1bdf23ffa1f30c6b5069b5ab54efc78e
BLAKE2b-256 212d8692222765e242ddba949fb2fc71a0e33059339832cb7c57f5727fa14121

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2ab2c25dc26b6ade7aea4ebaa9e5141a7a9af174efb7bee0a64e34651700c6da
MD5 cf4ca33f2da08fe8844ddf929e0e4331
BLAKE2b-256 f4c6b377aef3117b1b2c54c564ccb458f39a2c1ed2801ca23f1cd7cd77de962d

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 379f974488b77f038735deb3a79e96f38ec09b7d38ea8f75cf1c6a0e7aade1cd
MD5 5ba0b53461f383937691074f33745fb3
BLAKE2b-256 b4a58bb85abc30b296f746b8e94503ffee12bde20763f268241acefedbe38343

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 43e768c8af2b3dfe50b8335c2b2e98bfaed5f15511b8322998f64eda5b5ae6cc
MD5 3f6f17fc5b4c2cc86383b4fefb8c8996
BLAKE2b-256 1d3239a0e9c07ed3e168e8e984235c83056fb71690e4b70aee63effc51d07b01

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp313-cp313-win32.whl.

File metadata

  • Download URL: opentimspy-1.2.0b2-cp313-cp313-win32.whl
  • Upload date:
  • Size: 388.1 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for opentimspy-1.2.0b2-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 4d338c0d6802839deb2d6a255e6bed1f6374693851abf1f7ecdf7b1c6d8b98c3
MD5 d4beb2edd3b23e8a69af2e35452eb6db
BLAKE2b-256 ddfe3da793b15bc96431fd555e794b559e2cbb2b22da49df8c8928d5e331eda8

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp313-cp313-win32.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7193676e02bcda4f2c11289e9e1d1a55bf183f8d0af175a7297b34b67acfb5c5
MD5 7674ac0a12f4ddd29d3b4f5bc441c5b7
BLAKE2b-256 66eab46e0b524c9cbb3cf65fd0b2e7f1d11085e3c4342670f08256d58b0988c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f2e29f4785f5de56b51c9cc5d155b92cd04aa77b3a23349cda56801fee86e01f
MD5 94832f5abe3007944d2f9d0c59d9b82a
BLAKE2b-256 0de19a24559bb0924c91a964ba621cd834a4a62dad4cad3993b389d5bb837bb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b4f6eca302b151bc9778c86e1a5d6b60fea88920fc59e8c9b2aee31506f2e5c1
MD5 796b5cd69d6acca33776ab8d8123a2ca
BLAKE2b-256 913fd21f1d1cf3ecf7ade9b19f124a94f8c79ac86b9b9c0ee9ccaad8afd2925d

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 81cdcc9c84c89af835f0a141d6a2e7017d04f6d4fe3c4c238520ed25d76ab39f
MD5 8922d2cb3cd7da0782ac276f37e0415c
BLAKE2b-256 fa93dd2a0865235fc5b4e341a76c22d370a0e2c6ce63b93e10401bf6a796c432

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp312-cp312-win32.whl.

File metadata

  • Download URL: opentimspy-1.2.0b2-cp312-cp312-win32.whl
  • Upload date:
  • Size: 388.2 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for opentimspy-1.2.0b2-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 7f366d696553c6e099d3ef588dd795dd217f8cf440914ceb6d120ff119df365e
MD5 df826510b0e27c6abb2830d743f1ecc7
BLAKE2b-256 e1b856c72f0cbb79108f18cec6ffb826d494be0259c19ab2943f8dd52af0b3ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp312-cp312-win32.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bc8c1b0ac73b60d75a310df0afde140425e6280d67ee17367ecb3fe6aa9c2d20
MD5 0154de39372ce6b72836e83b0342e73b
BLAKE2b-256 623ffc7ae9ed8e9b6839a240f2c93f90114b45e7a5518a6a281b980d3d5d1fb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 198ec1696ed0612b28c7e8b4e2785f5ffb2020b7e7d3682a6e024a017188dc4c
MD5 8a0d4ab24c9f7c97d5f36e365bcf7158
BLAKE2b-256 5cc5057092bdf4394cf3af2babdf38e430d8371e3c8e8f5b9b9d8a711bf5ca5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2165af52c74e4346a95847bd2d352d2277dfe73c68b6a6f3ad17245bf8504901
MD5 fc6448a33ea1eeadbc620c1bc82a0791
BLAKE2b-256 fce035c2b1d9ac4e5a9bdc893030d920df881c0008ddcb62b2ba8696d3d73580

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4f9fbcc0dc94899a3e2e9ddfcb08b4a665e8c35daa3941c5bc77c51c919c0541
MD5 4a6a3abd39bba42d80ae8d25c4de0e07
BLAKE2b-256 31a55fc7185c74b1582548e666df6b8d5857518fc65d72b4d44ee8ea97cc7b3f

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp311-cp311-win32.whl.

File metadata

  • Download URL: opentimspy-1.2.0b2-cp311-cp311-win32.whl
  • Upload date:
  • Size: 387.7 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for opentimspy-1.2.0b2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 759f889c0f1404bb4cc49a1a0b62b2d43a2120f55bd93555a168ead16f8eee09
MD5 87c79ee79885e5d56ef1918a3b135af2
BLAKE2b-256 f82535ce70ca00e8132954af9ea863595b9d4e2562df0f5b7d29a8fe73f6513b

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp311-cp311-win32.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1c1d7a5964c0923143ed1d5152ad0a58573e349962d5bc0398cf91066a5fd927
MD5 bc334145cb2cd71d61c907b4b9beb7db
BLAKE2b-256 5c5e3418687f25ec17c0b7f65355e5680d23018bb45180f6e968b6f2fb876098

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f77724121413af8eba9025e7830b463fc1794012e5d80e20a4c5fbd1106244fb
MD5 64fc982d34132d805a57bb3804ff7e69
BLAKE2b-256 2d31d38c04c99fba85f4095f79e25beeccb3079e1cf502e32a18a79f1a4805bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fd0124c3eed0653cdaebce04409df61ded8bb87d826c48b0b0ab51d4a6d56e52
MD5 c860900d4ef8e55456753da592de2d36
BLAKE2b-256 2496c786ca4b69845d96cefdeb4421dcd7693abf437d2471e94c820cfa8b8188

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b0b3c84c87dc8092b8908d39abac249d95ad65571ccec2026026ac7a2e2cec8f
MD5 b836765a71afa99721c472cf92743089
BLAKE2b-256 a5ed7e1239c91d6e7bf005c7f8f55f522fbc61bded606c5caa460792df640fb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp310-cp310-win32.whl.

File metadata

  • Download URL: opentimspy-1.2.0b2-cp310-cp310-win32.whl
  • Upload date:
  • Size: 386.6 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for opentimspy-1.2.0b2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 4a2c80ae2f3f3446a5474529ac5aed5464140f5c4273ef50628997f0cbb5d271
MD5 8acf8df8d672ca5a37d31586b5deeb73
BLAKE2b-256 30c26384364215d4eaa553c59750c0b00b7acc2b865d1ac9d93b8a2399fa9142

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp310-cp310-win32.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9e3bda3d3f4f8537500c9c438fe2ac89bdc64b8e535c1c1d958edca84bf57b24
MD5 6942b2908336ad7ce989960cc36a2f65
BLAKE2b-256 61389dfed87f3f5081c74c09fbff325c030ddaeef2ae03796d5ec2adc2d61a52

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f8fc746197fce5b9b75f772d1a620a1d236dd3bd47d5a38d5500b3e079397534
MD5 f31d0209c4ec4e00920fa53521b1fffe
BLAKE2b-256 457587a892cbd33c98f67cc4257aff8066ca600cda7c791db08c6ef468ea4025

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 11be6677f939926edbfeeedb92656ea2ea762724a55798754061e47458164b84
MD5 8ce596160ffa01a983054c9fb155f879
BLAKE2b-256 2bee609823d968614eed7c1435f64f63a521a3d23b8a1d261d692b9ce6711887

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: opentimspy-1.2.0b2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 411.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for opentimspy-1.2.0b2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d1f08380aa5a121649fee810dd60f1f81118f311568881c46f7a2c820a845124
MD5 5dac3c7aafcadc83455a1f1cff003d5e
BLAKE2b-256 b2b5ca2ed838ec15cb8920a40619f6c185214c40f146b0ec5c34252efa7cade5

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp39-cp39-win_amd64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp39-cp39-win32.whl.

File metadata

  • Download URL: opentimspy-1.2.0b2-cp39-cp39-win32.whl
  • Upload date:
  • Size: 386.8 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for opentimspy-1.2.0b2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 0a8fc25160424582f1cf4f87e90e441b796fb633ad37f410f7d8346a4d5d701c
MD5 a03d92f9789f6428f0211aa74b2a81dd
BLAKE2b-256 6fbe1fefaa43af35420d48adbe9cf2506af801c2de62723b01c3119f095fd20b

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp39-cp39-win32.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 63c001201d8d2dd419feb386c0d0f8282fe65908b0d8e0ddcf8f699aa508d303
MD5 d7ff42d7381b8518d9c073d5f2a6250d
BLAKE2b-256 b5dc6b45727dfb68afde584979ebadfea4d7f2a9d78811a9a9cd5b4ed28b27f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 de20ed1655be6cfd1238ca615895c9d1091fa549faf03a874bc64ed0ca2fb361
MD5 04de9d161160c6119824e519eb7ac744
BLAKE2b-256 356f3f17431ffd5439dd62e373782cd797a2e8f29e6b1b899f6b130182946f94

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b1c8b22956cc2fb78ea475c7bb91f44e65ec7946383dbe77d2c386638037aad1
MD5 12bb7f001c08a139d823d2e5b43f04b2
BLAKE2b-256 4c130c3396a16d980aafd5476028524002d6e93ca2a69377f680e6847b6880f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: opentimspy-1.2.0b2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 406.5 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for opentimspy-1.2.0b2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 cc1d951aba815fe1ea20c0e679e57a341ffaa4ff9a5c5cf45f9b3efa8a3df651
MD5 d1c1900568fa14e1b93e1803448669e7
BLAKE2b-256 22081d2733cde9886d04f532b0d8df752847667224f6916856a405376e63b3a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp38-cp38-win_amd64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp38-cp38-win32.whl.

File metadata

  • Download URL: opentimspy-1.2.0b2-cp38-cp38-win32.whl
  • Upload date:
  • Size: 386.6 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for opentimspy-1.2.0b2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 1117e4ebb36b67bdde5c8e811ba4856419a61ec84dc56b85ea6dd7872c9470ff
MD5 f7275695e8abcd0c8fdcc123d872d20d
BLAKE2b-256 0af2147b8bfbd103e913cefa397c1d2752005577a9e893c30614f673e71c4b6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp38-cp38-win32.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5197f79c12d6db129bf1819263495e3c72b9da8254747a50e7e30c04a88306f7
MD5 6517feb7f1fc4660ddd248f4ecae5de8
BLAKE2b-256 a4a5ca58b6a4ac1098968e4d5dba6633fb46b8d96b613b29e54914f5466dfcb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp38-cp38-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f2bad68d0fbbfdcfde89e097d495e873000902b8a95a6998e6e701b7e9a240d7
MD5 08545359d8b559bb853410910709ccea
BLAKE2b-256 ea6269784394da34d986d71dc7ba33b9e62de7677f2894ec17296e95302ac650

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file opentimspy-1.2.0b2-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for opentimspy-1.2.0b2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f730fcc699137312dbce8d99d344308cc17dcda9d235087504761ff2657b15aa
MD5 fc08971223c70d2293920bfa20aa8304
BLAKE2b-256 77da641f277cc12b61bb01641e53559e40a9ffe046f30712ce513257baa8a60d

See more details on using hashes here.

Provenance

The following attestation bundles were made for opentimspy-1.2.0b2-cp38-cp38-macosx_11_0_arm64.whl:

Publisher: publish.yml on michalsta/opentims

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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