Skip to main content

Extract and read data from National Instruments LabVIEW tdx/tdm files and export them as csv files

Project description

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

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

tdmtermite-2.1.3.tar.gz (61.8 kB view details)

Uploaded Source

Built Distributions

tdmtermite-2.1.3-pp37-pypy37_pp73-win_amd64.whl (126.6 kB view details)

Uploaded PyPyWindows x86-64

tdmtermite-2.1.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (206.2 kB view details)

Uploaded PyPymanylinux: glibc 2.12+ x86-64

tdmtermite-2.1.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (220.6 kB view details)

Uploaded PyPymanylinux: glibc 2.12+ i686

tdmtermite-2.1.3-cp310-cp310-win_amd64.whl (130.3 kB view details)

Uploaded CPython 3.10Windows x86-64

tdmtermite-2.1.3-cp310-cp310-win32.whl (121.6 kB view details)

Uploaded CPython 3.10Windows x86

tdmtermite-2.1.3-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ x86-64

tdmtermite-2.1.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (1.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ i686

tdmtermite-2.1.3-cp39-cp39-win_amd64.whl (131.0 kB view details)

Uploaded CPython 3.9Windows x86-64

tdmtermite-2.1.3-cp39-cp39-win32.whl (121.9 kB view details)

Uploaded CPython 3.9Windows x86

tdmtermite-2.1.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64

tdmtermite-2.1.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (1.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ i686

tdmtermite-2.1.3-cp38-cp38-win_amd64.whl (131.1 kB view details)

Uploaded CPython 3.8Windows x86-64

tdmtermite-2.1.3-cp38-cp38-win32.whl (122.0 kB view details)

Uploaded CPython 3.8Windows x86

tdmtermite-2.1.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

tdmtermite-2.1.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (1.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ i686

tdmtermite-2.1.3-cp37-cp37m-win_amd64.whl (131.5 kB view details)

Uploaded CPython 3.7mWindows x86-64

tdmtermite-2.1.3-cp37-cp37m-win32.whl (122.2 kB view details)

Uploaded CPython 3.7mWindows x86

tdmtermite-2.1.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

tdmtermite-2.1.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl (1.9 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ i686

tdmtermite-2.1.3-cp36-cp36m-win_amd64.whl (137.1 kB view details)

Uploaded CPython 3.6mWindows x86-64

tdmtermite-2.1.3-cp36-cp36m-win32.whl (125.4 kB view details)

Uploaded CPython 3.6mWindows x86

tdmtermite-2.1.3-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64

tdmtermite-2.1.3-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl (1.9 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ i686

File details

Details for the file tdmtermite-2.1.3.tar.gz.

File metadata

  • Download URL: tdmtermite-2.1.3.tar.gz
  • Upload date:
  • Size: 61.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for tdmtermite-2.1.3.tar.gz
Algorithm Hash digest
SHA256 b73c19610d8a9a48a0c32f348fff1da3dfe6726c150025e3c949449cff93a9c7
MD5 76443aee9f81393c3cb97f8b7ce9bfa0
BLAKE2b-256 3ce8473e896629ce50538d958afeee9912fd88047e72050ce75ac77c10d6fdb4

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-pp37-pypy37_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for tdmtermite-2.1.3-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 1bdf816aa4993bc7aa9c949d1103ecc48b11b716523bfbd28c256ff1eff9a3c5
MD5 1080d3b75ac6158161531cf8ab338b8f
BLAKE2b-256 7548246ee2c9712676179cc199a06afbe4b51b127f908fdfe1db983b27a4232b

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for tdmtermite-2.1.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 c54ffcdae429ca9051a407c40fe625c9b5689c8ea86715101f41ca96d296197f
MD5 28a7a6702856b02dc7bd73b7e8aee998
BLAKE2b-256 28c1cafe569c9b2ee4a43a8b2faaedc85ed4fbe4e94afbfde4c9b7f889581ffc

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for tdmtermite-2.1.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 5b7b935912f173b202dd958b56226854428162dced93ebde947a23b8ae3c581b
MD5 6c06df7867f8cf17664ceb049dc6afe5
BLAKE2b-256 05a5af6d5bd0109d6d21e5d46ee3eb1e6e6394ea7cc01f8aa0ce931a735a1750

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: tdmtermite-2.1.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 130.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for tdmtermite-2.1.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b55ba9ae338a13c4669424fac6539f0346dc11633ac045633809e6b66c2cd867
MD5 217b27f825c909f182ee4c6c212fce0e
BLAKE2b-256 dc5e8def69867d5a6b264be3a67460d18f2912c2cb3b724a839f9356cdf175a3

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp310-cp310-win32.whl.

File metadata

  • Download URL: tdmtermite-2.1.3-cp310-cp310-win32.whl
  • Upload date:
  • Size: 121.6 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for tdmtermite-2.1.3-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 02b967ee463933b5adf574ea29e0993431c1a07857e25ba496b8be83537491e8
MD5 722fb5f8a69405fe2c4e624c1318f76a
BLAKE2b-256 035708ae2f06d246c953c3f974157f15598d4340f2abdcbfe5c726e280b8bcdb

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for tdmtermite-2.1.3-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 19f23000774ba4bc60a33630319d0e9a1af935e5277bc5e7f94593ad4ad25a3c
MD5 b5aedc59ebfa93320a5d0d5ae0c2789b
BLAKE2b-256 a7bb2df50eed15bc9b8d46ebe9ae4710c4181ca70e549f32995dcebb8744bfc8

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for tdmtermite-2.1.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 a26ddbe8ffa7a7ac75b042fa22d167b98324bdaea2ec9869f6f45206276e4164
MD5 c114bc32bc29728be41b4ea65a5f55ea
BLAKE2b-256 65d72a07d2778cfe0b93300b9aa96bfc35f5a65bac58915ac62968a7f94017e2

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: tdmtermite-2.1.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 131.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for tdmtermite-2.1.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b30b1480225c57af00505f90e60d8e2da145d02d97cb51f660f112d404723bf8
MD5 6ff685de98249051f06a1b1021df96e9
BLAKE2b-256 4d551e817c13db60c124d74d011cfcae9c304f11168b69c8e4b7f228aeefbb62

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp39-cp39-win32.whl.

File metadata

  • Download URL: tdmtermite-2.1.3-cp39-cp39-win32.whl
  • Upload date:
  • Size: 121.9 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for tdmtermite-2.1.3-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 8a33e920e0661fd745aa2ba98385c126cd8a52b5cda6edfc46c6502ae4472d91
MD5 bdf610eed12e08933ce535b1c56adbb1
BLAKE2b-256 9f562f8cc7f08f5272fa287026d526fc597b3c5c106fa4208f01fe5c51eb5de9

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for tdmtermite-2.1.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 bc4f8db4f311493621bf139facc22ac7de013cb1c2ee657f7e697513a1fd8c4b
MD5 3baabcb336e75faa89fd39ed7dfd164b
BLAKE2b-256 6f25321b80a961c85f7959da8e7912f84e44c350b228c7d205ccab7ae4847b2b

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for tdmtermite-2.1.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 c25d14b39b894345e5717b0d3b8327930bdc6869bddb501680af4386c72eb03a
MD5 ff37cc4363cd40a3801be77e07f89a16
BLAKE2b-256 b1fc1d17bd7bb3de955f5ed260cbb35b2e6f0f12340b1885c055a312343acc4d

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: tdmtermite-2.1.3-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 131.1 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for tdmtermite-2.1.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 6fc3593c0ddd0528db0727b404df8d8c22d8242c0470e2dde39b069bccf9993f
MD5 4859f909b9bc99fc433ba9f7236f0afe
BLAKE2b-256 2a4d3419b82738b39c0fe7717d650a5feb6f11e088ac63dfaa661902e780f7be

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp38-cp38-win32.whl.

File metadata

  • Download URL: tdmtermite-2.1.3-cp38-cp38-win32.whl
  • Upload date:
  • Size: 122.0 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for tdmtermite-2.1.3-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 d7d6d5d45f6d32882dbada47185459ada1f564309a1d0c28e81d165a9da69b8d
MD5 26c2768ecfb830e64eda8120216f7626
BLAKE2b-256 6b50b980278ceac09e23baa63f1d9133a9981860c383781cc23403faf656031d

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for tdmtermite-2.1.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 e5b86c44c77cc736cda01eb9c2a8ea2083e0f9a606ab12ef2ebd795a5768a23d
MD5 0770c5c9efe7c8d2eab76f311571afe8
BLAKE2b-256 9e4b3a94c80ea0f1efa621384022fbf85f5960ba86deacc190ce03b24df6ccca

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for tdmtermite-2.1.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 3528a4d008ce29dd27e93b6d8fe1421359211065bfb69584515bd8fc93b65f85
MD5 ae765dcbfec7c11189d83d175df7d86c
BLAKE2b-256 feb8fefd5dd404401d73f33ccf6d2de5b3418769b1ec305cd0f71b1a062e8c6a

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: tdmtermite-2.1.3-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 131.5 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for tdmtermite-2.1.3-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 e4d0ad66996aa8e227b188c316238c60e6690cb2995e21a02f1bd20e22818f29
MD5 115c54787709354d459c9bcd7846e458
BLAKE2b-256 8cda5691fbc88191dd832947175c107feaffa8a6594554f4926616d655383bd7

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp37-cp37m-win32.whl.

File metadata

  • Download URL: tdmtermite-2.1.3-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 122.2 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for tdmtermite-2.1.3-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 07ef5cb7fef87792ba1ccc1ef50c77e2cbcfae66b833c4a12657b73b8504c9af
MD5 76301c00594d1e4a148cd31846359e92
BLAKE2b-256 9c97f9effb7898372cfdd54a57fa0f841fb588baa5bddae7a4fd442a9de3e57d

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for tdmtermite-2.1.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a2d6aee1cb2a6c7f54aa2973bdd58e3a05e59a2db2369140a418a41eb28bed4c
MD5 5fbc2e0851e86e512746f0d08351b05d
BLAKE2b-256 3346b9829ac627300fc03f7dd23a7bc3d8851d65d2a4ed39d040d1564ba8e771

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for tdmtermite-2.1.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 ea014cb22afc872f35cf1ef88e37a1134ff403a71028cb53e0b3d3a6ee7c1342
MD5 7407c3d57454b312f3c3ea5c015d7feb
BLAKE2b-256 829ff413cba0964fb68aa598fcefa15f9aa2d666064cd53682308402dbeb8f98

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: tdmtermite-2.1.3-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 137.1 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for tdmtermite-2.1.3-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 0a1c3bed48a49a7fa2887a1efcbbf9379846473e21517ccbaa784f4848d296b9
MD5 3e0de62a7d1770591359773875886637
BLAKE2b-256 5e424632a1a713e6e0da10e5fc6cfa057ab2e7ad7ded63a7f57bfe185a856283

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp36-cp36m-win32.whl.

File metadata

  • Download URL: tdmtermite-2.1.3-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 125.4 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for tdmtermite-2.1.3-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 6c96a814b63ced8836395d1330f5dd5d32553088b7b979d03afa7de7aa8174d7
MD5 64f5c1d04b24928793b826ab31127066
BLAKE2b-256 3ce260afea34ba69f49db19a5838b49be3bba721d537915430ebe3aaaf8f560e

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for tdmtermite-2.1.3-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3ebc8d12eeb45aa51a937f86c62d2390cc9308becc975a3318d9c92296972fe3
MD5 04f6c75ed424340ce79a8fcd9df2c783
BLAKE2b-256 271fe5ff522a606fdf60dd3da4624c7f96db6f2d20d86fec49b4aa93283b29ec

See more details on using hashes here.

File details

Details for the file tdmtermite-2.1.3-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for tdmtermite-2.1.3-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 f8c77e9133ff3e18091a44cd1c8d3fe9f2864279103bfbeb5e534ee2a6486fce
MD5 c2cb845e94733ce9185351cec5265b7b
BLAKE2b-256 6bc5d182c8962850cd9b32797c98d6176182c08514db56c364e4a3175631ae16

See more details on using hashes here.

Supported by

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