Skip to main content

TDMtermite

TDMtermite is a C++ based library that decodes the proprietary file format TDM/TDX for measurement data. First introduced by National Instruments, the TDM format relies on the technical data management data model and is employed by LabVIEW, LabWindows™/CVI™, Measurement Studio, SignalExpress, and DIAdem.

The Record Evolution Platform uses TDMtermite to integrate measurement data into ETL processes. The TDMtermite library is available both as a command line tool and as a Python module. The Python module of TDMtermite enables data scientists to conveniently include TDM formats in their existing data pipelines by providing access to both raw data and metadata in terms of native Python objects.

Overview

Dataformat

Datasets encoded in the TDM/TDX format come in pairs comprised of a .tdm (header) file and a .tdx (data) file. While the .tdm file is a human-readable file providing meta information about the dataset, the .tdx file is a binary file containing the actual data. The .tdm based on the technical data management model is an XML file. It describes what data the .tdx file contains and how to read it. The TDM data model structures the data hierarchically with respect to file, (channel) groups and channels. The file-level XML may contain any number of (channel) groups, each of which is made up of an arbitrary number of channels. Thus, the XML tree in the TDM header file looks like this:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<usi:tdm xmlns:usi="http://www.ni.com/Schemas/USI/1_0" version="1.0">

  <usi:documentation>
    <usi:exporter>National Instruments USI</usi:exporter>
    <usi:exporterVersion>1.5</usi:exporterVersion>
  </usi:documentation>

  <usi:model modelName="National Instruments USI generated meta file" modelVersion="1.0">
    <usi:include nsUri="http://www.ni.com/DataModels/USI/TDM/1_0"/>
  </usi:model>

  <usi:include>
    <file byteOrder="littleEndian" url="example.tdx">
    ...
    <block byteOffset="0" id="inc0" length="1000" valueType="eFloat64Usi"/>
    ...
    <block_bm id="inc4" blockOffset="100" blockSize="7" byteOffset="0" length="4" valueType="eInt8Usi"/>
    ...
  </usi:include>

  <usi:data>
    ...
  </usi:data>

</usi:tdm>

The XML tree is comprised of four main XML elements: usi:documentation, usi:model, usi:include and usi:data. The element usi:include references the data file example.tdx and reveals one of two possible orderings of the mass data (.tdx):

  1. either channel-wise (<block>) - all values of a specific channel follow subsequently
  2. or block-wise (<block_bm>) - all values of a specific measurement time follow subsequently.

The supported numerical data types are:

datatype channel datatype numeric value sequence size description
eInt16Usi DT_SHORT 2 short_sequence 2byte signed 16 bit integer
eInt32Usi DT_LONG 6 long_sequence 4byte signed 32 bit integer
eUInt8Usi DT_BYTE 5 byte_sequence 1byte unsigned 8 bit integer
eUInt16Usi DT_SHORT 2 short_sequence 2byte unsigned 16 bit integer
eUInt32Usi DT_LONG 6 long_sequence 4byte unsigned 32 bit integer
eFloat32Usi DT_FLOAT 3 float_sequence 4byte 32 bit float
eFloat64Usi DT_DOUBLE 7 double_sequence 8byte 64 Bit double
eStringUsi DT_STRING 1 string_sequence text

The XML element <usi:data> is comprised of five different types of elements that are <tdm_root>, <tdm_channelgroup>, <tdm_channel>, <localcolumn> and <submatrix>. The root element <tdm_root> describes the general properties of the dataset and lists the ids of all channel groups that belong to the dataset. The element <tdm_channelgroup> divides the channels into groups and has a unique id that is referenced by its root element. The <channels> element in <tdm_channelgroup> lists the unique ids of all channels that belong to that group. Finally, the element <tdm_channel> describes a single column of actual data including its datatype. The remaining element types are <localcolumn>

<localcolumn id="usiXY">
  <name>Untitled</name>
  <measurement_quantity>#xpointer(id("usiAB"))</measurement_quantity>
  <submatrix>#xpointer(id("usiMN"))</submatrix>
  <global_flag>15</global_flag>
  <independent>0</independent>
  <sequence_representation> ... </sequence_representation>
  <values>#xpointer(id("usiZ"))</values>
</localcolumn>

with a unique id, the <measurement_quantity> referring to one specific channel, the <submatrix> and its id respectively, the type of representation in <sequence_representation> - being one of explicit, implicit linear or rawlinear - and the <values> element, which refers to one value sequence, and the element <submatrix>

<submatrix id="usiXX">
  <name>Untitled</name>
  <measurement>#xpointer(id("usiUV"))</measurement>
  <number_of_rows>N</number_of_rows>
  <local_columns>#xpointer(id("usiMN"))</local_columns>
</submatrix>

that references the channel group in <measurement> to which it belongs and provides the number of rows in the channels listed in <local_columns>.

Installation

The library can be used both as a CLI-based tool and as a Python module.

CLI tool

To install the CLI tool TDMtermite, do

make install

which uses /usr/local/bin as an installation directory. On macOSX, please first build the binary locally with make and install it in your preferred location.

Python

In order to build a Python module from the C++ code base, the Cython package must be available. It may be installed via python3 -m pip install cython . The Numpy package is recommended to pass arrays of data from the C++ kernel to Python. The makefile provides the target make cython-requirements to install all required Python modules. Finally, to build the Python extension tdm_termite locally or install it, the targets make cython-build and make cython-install are provided. To install the Python module on the system, simply do

make cython-requirements
make cython-install

which makes the module available for import by import tdm_termite .

Installation with pip

The package is also available via the Python Package Index at TDMtermite. To install the latest version simply do

python3 -m pip install tdmtermite
Unix

Note, that python3_setuptools and gcc version >= 10.2.0 are required to successfully install and use it.

Usage

CLI tool

The usage of the CLI tool is sufficiently clarified by its help message displayed by tdmtermite --help. To extract the data decoded in the pair of files samples/SineData.tdm and samples/SineData.tdx into the directory /home/jack/data/:

tdmtermite samples/SineData.tdm samples/SineData.tdx --output /home/jack/data

The tool can also be used to list the available objects in the TDM dataset, which are i.a. channels, channelgroups and TDX blocks. To list all channels and channelgroups (without writing any file output):

tdmtermite samples/SineData.tdm samples/SineData.tdx --listgroups --listchannels

The user may also submit a filenaming rule to control the names of the files the channel(group)s are written to. To this end, the magic flags %G %g, %C and %c representing the group id, group name, channel index and channel name are defined. The default filenaming option is:

tdmtermite samples/SineData.tdm samples/SineData.tdx --output /home/jack/data --filenames channelgroup_%G.csv

This makes the tool write all channels grouped into files according to their group association, while all channelgroup filenames obey the pattern channelgroup_%G.csv, with %G being replaced by the group id. The filenaming rule also enables the user to extract only a single channel(group) by providing a particular channel(group) id in the filenaming flag. For example,

tdmtermite samples/SineData.tdm samples/SineData.tdx --output /home/jack/data -f channel_usi16_%c.csv --includemeta

This will write the single channel with the id usi16 to the file /home/jack/data/channel_usi16_A4.csv, including its meta-data as a file header.

Python

To be able to use the Python module tdm_termite, it first has to be built locally or installed on the system. In the Python interpreter, simply do:

import tdmtermite

This will import the module. The TDM files are provided by creating an instance of the tdmtermite class:

# create 'tdmtermite' instance object
try :
    jack = tdmtermite.tdmtermite(b'samples/SineData.tdm',b'samples/SineData.tdx')
except RuntimeError as e:
    print("failed to load/decode TDM files: " + str(e))

After initializing the tdmtermite object, it can be used to extract any of the available data. For instance, to list the included channelgroups and channels:

# list ids of channelgroups
grpids = jack.get_channelgroup_ids()


# list ids of channels
chnids = jack.get_channel_ids()

As a use case, we have a look at listing the ids of all channelgroups and printing their data to separate files:

import tdmtermite
import re

# create 'tdmtermite' instance object
try :
    jack = tdmtermite.tdmtermite(b'samples/SineData.tdm',b'samples/SineData.tdx')
except RuntimeError as e :
    print("failed to load/decode TDM files: " + str(e))

# list ids of channelgroups
grpids = jack.get_channelgroup_ids()
grpids = [x.decode() for x in grpids]
print("list of channelgroups: ",grpids)

for grp in grpids :

    # obtain meta data of channelgroups
    grpinfo = jack.get_channelgroup_info(grp.encode())
    print( json.dumps(grpinfo,sort_keys=False,indent=4) )

    # write this channelgroup to file
    try :
        grpname = re.sub('[^A-Za-z0-9]','',grpinfo['name'])
        grpfile = "channelgroup_" + str(grp) + "_" + str(grpname) + ".csv"
        jack.print_channelgroup(grp.encode(),      # id of group to be printed
                                grpfile.encode(),  # filename
                                True,              # include metadata as fileheader
                                ord(' ')           # delimiter char
                                )
    except RuntimeError as e :
        print("failed to print channelgroup: " + str(grp) + " : " + str(e))

For details, see this extensive example and the absolute minimal example minimal usage. In order to simply extract all data of the TDM datatset and dump it to files in a given (existing!) directory, do

import tdmtermite
jack = tdmtermite.tdmtermite(b'samples/SineData.tdm',b'samples/SineData.tdx')
jack.write_all(b"./my_tdm_data_directory/")

The interface allows you to construct customized file/column headers from any meta-data and provide these headers for usage in file output (see this example).

References

TDM

IEEE Standard and datatypes

Implementation

Packaging

Documentation

C/C++ Extensions

Articles

Release files for tdmtermite 2.1.3

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

Source distribution (sdist)

Source distribution for tdmtermite 2.1.3
File Size Uploaded
tdmtermite-2.1.3.tar.gz 61.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for tdmtermite 2.1.3
File
tdmtermite-2.1.3-pp37-pypy37_pp73-win_amd64.whl PyPy 3.7 PyPy 3.7 7.3 Windows x86-64 Details
tdmtermite-2.1.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.12+ x86-64 Details
tdmtermite-2.1.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.12+ x86-32 Details
tdmtermite-2.1.3-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
tdmtermite-2.1.3-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details
tdmtermite-2.1.3-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.12+ x86-64 Details
tdmtermite-2.1.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl CPython 3.10 CPython 3.10 Linux glibc 2.12+ x86-32 Details
tdmtermite-2.1.3-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
tdmtermite-2.1.3-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details
tdmtermite-2.1.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.12+ x86-64 Details
tdmtermite-2.1.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl CPython 3.9 CPython 3.9 Linux glibc 2.12+ x86-32 Details
tdmtermite-2.1.3-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
tdmtermite-2.1.3-cp38-cp38-win32.whl CPython 3.8 CPython 3.8 Windows x86-32 Details
tdmtermite-2.1.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.12+ x86-64 Details
tdmtermite-2.1.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl CPython 3.8 CPython 3.8 Linux glibc 2.12+ x86-32 Details
tdmtermite-2.1.3-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details
tdmtermite-2.1.3-cp37-cp37m-win32.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-32 Details
tdmtermite-2.1.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64 Details
tdmtermite-2.1.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-32 Details
tdmtermite-2.1.3-cp36-cp36m-win_amd64.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-64 Details
tdmtermite-2.1.3-cp36-cp36m-win32.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-32 Details
tdmtermite-2.1.3-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-64 Details
tdmtermite-2.1.3-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-32 Details

Total release size: 21.6 MB

Release files / tdmtermite-2.1.3.tar.gz

Download URL tdmtermite-2.1.3.tar.gz
Size 61.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b73c19610d8a9a48a0c32f348fff1da3dfe6726c150025e3c949449cff93a9c7
BLAKE2b-256 checksum
How to use checksums
3ce8473e896629ce50538d958afeee9912fd88047e72050ce75ac77c10d6fdb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-pp37-pypy37_pp73-win_amd64.whl

Download URL tdmtermite-2.1.3-pp37-pypy37_pp73-win_amd64.whl
Size 126.6 kB
Tags PyPy 3.7 PyPy 3.7 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
1bdf816aa4993bc7aa9c949d1103ecc48b11b716523bfbd28c256ff1eff9a3c5
BLAKE2b-256 checksum
How to use checksums
7548246ee2c9712676179cc199a06afbe4b51b127f908fdfe1db983b27a4232b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL tdmtermite-2.1.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 206.2 kB
Tags Linux glibc 2.12+ x86-64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
c54ffcdae429ca9051a407c40fe625c9b5689c8ea86715101f41ca96d296197f
BLAKE2b-256 checksum
How to use checksums
28c1cafe569c9b2ee4a43a8b2faaedc85ed4fbe4e94afbfde4c9b7f889581ffc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl

Download URL tdmtermite-2.1.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Size 220.6 kB
Tags Linux glibc 2.12+ x86-32 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
5b7b935912f173b202dd958b56226854428162dced93ebde947a23b8ae3c581b
BLAKE2b-256 checksum
How to use checksums
05a5af6d5bd0109d6d21e5d46ee3eb1e6e6394ea7cc01f8aa0ce931a735a1750
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp310-cp310-win_amd64.whl

Download URL tdmtermite-2.1.3-cp310-cp310-win_amd64.whl
Size 130.3 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
b55ba9ae338a13c4669424fac6539f0346dc11633ac045633809e6b66c2cd867
BLAKE2b-256 checksum
How to use checksums
dc5e8def69867d5a6b264be3a67460d18f2912c2cb3b724a839f9356cdf175a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp310-cp310-win32.whl

Download URL tdmtermite-2.1.3-cp310-cp310-win32.whl
Size 121.6 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
02b967ee463933b5adf574ea29e0993431c1a07857e25ba496b8be83537491e8
BLAKE2b-256 checksum
How to use checksums
035708ae2f06d246c953c3f974157f15598d4340f2abdcbfe5c726e280b8bcdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL tdmtermite-2.1.3-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 2.0 MB
Tags CPython 3.10 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
19f23000774ba4bc60a33630319d0e9a1af935e5277bc5e7f94593ad4ad25a3c
BLAKE2b-256 checksum
How to use checksums
a7bb2df50eed15bc9b8d46ebe9ae4710c4181ca70e549f32995dcebb8744bfc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl

Download URL tdmtermite-2.1.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Size 1.9 MB
Tags CPython 3.10 Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
a26ddbe8ffa7a7ac75b042fa22d167b98324bdaea2ec9869f6f45206276e4164
BLAKE2b-256 checksum
How to use checksums
65d72a07d2778cfe0b93300b9aa96bfc35f5a65bac58915ac62968a7f94017e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp39-cp39-win_amd64.whl

Download URL tdmtermite-2.1.3-cp39-cp39-win_amd64.whl
Size 131.0 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
b30b1480225c57af00505f90e60d8e2da145d02d97cb51f660f112d404723bf8
BLAKE2b-256 checksum
How to use checksums
4d551e817c13db60c124d74d011cfcae9c304f11168b69c8e4b7f228aeefbb62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp39-cp39-win32.whl

Download URL tdmtermite-2.1.3-cp39-cp39-win32.whl
Size 121.9 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
8a33e920e0661fd745aa2ba98385c126cd8a52b5cda6edfc46c6502ae4472d91
BLAKE2b-256 checksum
How to use checksums
9f562f8cc7f08f5272fa287026d526fc597b3c5c106fa4208f01fe5c51eb5de9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL tdmtermite-2.1.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 2.0 MB
Tags CPython 3.9 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
bc4f8db4f311493621bf139facc22ac7de013cb1c2ee657f7e697513a1fd8c4b
BLAKE2b-256 checksum
How to use checksums
6f25321b80a961c85f7959da8e7912f84e44c350b228c7d205ccab7ae4847b2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl

Download URL tdmtermite-2.1.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Size 1.9 MB
Tags CPython 3.9 Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
c25d14b39b894345e5717b0d3b8327930bdc6869bddb501680af4386c72eb03a
BLAKE2b-256 checksum
How to use checksums
b1fc1d17bd7bb3de955f5ed260cbb35b2e6f0f12340b1885c055a312343acc4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp38-cp38-win_amd64.whl

Download URL tdmtermite-2.1.3-cp38-cp38-win_amd64.whl
Size 131.1 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
6fc3593c0ddd0528db0727b404df8d8c22d8242c0470e2dde39b069bccf9993f
BLAKE2b-256 checksum
How to use checksums
2a4d3419b82738b39c0fe7717d650a5feb6f11e088ac63dfaa661902e780f7be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp38-cp38-win32.whl

Download URL tdmtermite-2.1.3-cp38-cp38-win32.whl
Size 122.0 kB
Tags CPython 3.8 Windows x86-32
SHA-256 checksum
How to use checksums
d7d6d5d45f6d32882dbada47185459ada1f564309a1d0c28e81d165a9da69b8d
BLAKE2b-256 checksum
How to use checksums
6b50b980278ceac09e23baa63f1d9133a9981860c383781cc23403faf656031d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL tdmtermite-2.1.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 2.0 MB
Tags CPython 3.8 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
e5b86c44c77cc736cda01eb9c2a8ea2083e0f9a606ab12ef2ebd795a5768a23d
BLAKE2b-256 checksum
How to use checksums
9e4b3a94c80ea0f1efa621384022fbf85f5960ba86deacc190ce03b24df6ccca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl

Download URL tdmtermite-2.1.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Size 1.9 MB
Tags CPython 3.8 Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
3528a4d008ce29dd27e93b6d8fe1421359211065bfb69584515bd8fc93b65f85
BLAKE2b-256 checksum
How to use checksums
feb8fefd5dd404401d73f33ccf6d2de5b3418769b1ec305cd0f71b1a062e8c6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp37-cp37m-win_amd64.whl

Download URL tdmtermite-2.1.3-cp37-cp37m-win_amd64.whl
Size 131.5 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
e4d0ad66996aa8e227b188c316238c60e6690cb2995e21a02f1bd20e22818f29
BLAKE2b-256 checksum
How to use checksums
8cda5691fbc88191dd832947175c107feaffa8a6594554f4926616d655383bd7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp37-cp37m-win32.whl

Download URL tdmtermite-2.1.3-cp37-cp37m-win32.whl
Size 122.2 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
07ef5cb7fef87792ba1ccc1ef50c77e2cbcfae66b833c4a12657b73b8504c9af
BLAKE2b-256 checksum
How to use checksums
9c97f9effb7898372cfdd54a57fa0f841fb588baa5bddae7a4fd442a9de3e57d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL tdmtermite-2.1.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 2.0 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
a2d6aee1cb2a6c7f54aa2973bdd58e3a05e59a2db2369140a418a41eb28bed4c
BLAKE2b-256 checksum
How to use checksums
3346b9829ac627300fc03f7dd23a7bc3d8851d65d2a4ed39d040d1564ba8e771
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl

Download URL tdmtermite-2.1.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Size 1.9 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
ea014cb22afc872f35cf1ef88e37a1134ff403a71028cb53e0b3d3a6ee7c1342
BLAKE2b-256 checksum
How to use checksums
829ff413cba0964fb68aa598fcefa15f9aa2d666064cd53682308402dbeb8f98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp36-cp36m-win_amd64.whl

Download URL tdmtermite-2.1.3-cp36-cp36m-win_amd64.whl
Size 137.1 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
0a1c3bed48a49a7fa2887a1efcbbf9379846473e21517ccbaa784f4848d296b9
BLAKE2b-256 checksum
How to use checksums
5e424632a1a713e6e0da10e5fc6cfa057ab2e7ad7ded63a7f57bfe185a856283
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp36-cp36m-win32.whl

Download URL tdmtermite-2.1.3-cp36-cp36m-win32.whl
Size 125.4 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
6c96a814b63ced8836395d1330f5dd5d32553088b7b979d03afa7de7aa8174d7
BLAKE2b-256 checksum
How to use checksums
3ce260afea34ba69f49db19a5838b49be3bba721d537915430ebe3aaaf8f560e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL tdmtermite-2.1.3-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 2.0 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
3ebc8d12eeb45aa51a937f86c62d2390cc9308becc975a3318d9c92296972fe3
BLAKE2b-256 checksum
How to use checksums
271fe5ff522a606fdf60dd3da4624c7f96db6f2d20d86fec49b4aa93283b29ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release files / tdmtermite-2.1.3-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl

Download URL tdmtermite-2.1.3-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl
Size 1.9 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
f8c77e9133ff3e18091a44cd1c8d3fe9f2864279103bfbeb5e534ee2a6486fce
BLAKE2b-256 checksum
How to use checksums
6bc5d182c8962850cd9b32797c98d6176182c08514db56c364e4a3175631ae16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.8

Release history Release notifications | RSS feed

This release

2.1.3 This release

24 release files

2.1.2

24 release files

2.0.2

24 release files

2.0.1

24 release files

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.5.0

1 release file

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