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.0.2.tar.gz (55.0 kB view details)

Uploaded Source

Built Distributions

TDMtermite-2.0.2-pp37-pypy37_pp73-win_amd64.whl (125.2 kB view details)

Uploaded PyPy Windows x86-64

TDMtermite-2.0.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (206.2 kB view details)

Uploaded PyPy manylinux: glibc 2.12+ x86-64

TDMtermite-2.0.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (220.6 kB view details)

Uploaded PyPy manylinux: glibc 2.12+ i686

TDMtermite-2.0.2-cp310-cp310-win_amd64.whl (129.1 kB view details)

Uploaded CPython 3.10 Windows x86-64

TDMtermite-2.0.2-cp310-cp310-win32.whl (120.8 kB view details)

Uploaded CPython 3.10 Windows x86

TDMtermite-2.0.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

TDMtermite-2.0.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (1.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

TDMtermite-2.0.2-cp39-cp39-win_amd64.whl (129.8 kB view details)

Uploaded CPython 3.9 Windows x86-64

TDMtermite-2.0.2-cp39-cp39-win32.whl (121.1 kB view details)

Uploaded CPython 3.9 Windows x86

TDMtermite-2.0.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

TDMtermite-2.0.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (1.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

TDMtermite-2.0.2-cp38-cp38-win_amd64.whl (129.9 kB view details)

Uploaded CPython 3.8 Windows x86-64

TDMtermite-2.0.2-cp38-cp38-win32.whl (121.2 kB view details)

Uploaded CPython 3.8 Windows x86

TDMtermite-2.0.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

TDMtermite-2.0.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (1.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

TDMtermite-2.0.2-cp37-cp37m-win_amd64.whl (130.3 kB view details)

Uploaded CPython 3.7m Windows x86-64

TDMtermite-2.0.2-cp37-cp37m-win32.whl (121.2 kB view details)

Uploaded CPython 3.7m Windows x86

TDMtermite-2.0.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

TDMtermite-2.0.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl (1.9 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

TDMtermite-2.0.2-cp36-cp36m-win_amd64.whl (135.6 kB view details)

Uploaded CPython 3.6m Windows x86-64

TDMtermite-2.0.2-cp36-cp36m-win32.whl (124.1 kB view details)

Uploaded CPython 3.6m Windows x86

TDMtermite-2.0.2-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

TDMtermite-2.0.2-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl (1.9 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ i686

File details

Details for the file TDMtermite-2.0.2.tar.gz.

File metadata

  • Download URL: TDMtermite-2.0.2.tar.gz
  • Upload date:
  • Size: 55.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for TDMtermite-2.0.2.tar.gz
Algorithm Hash digest
SHA256 0f3c5242192c0e555bceb1d619d4a8f8c2555edbf5b30831d8a0dc8b7f992a92
MD5 5624ccb264a5f4b4c39404d9cb60456a
BLAKE2b-256 2fc2717d81b4d64e01935d7db20611a5905053b815821ec40dfd0c399c4d373b

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-pp37-pypy37_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 442d59bb2fe1b46db764a9bcd1246a710e550775775068b1f09e2718380b153f
MD5 eb6d04a5de03cbbf156e909e4185e3dc
BLAKE2b-256 649ecf89871998c261ee54787eb1bc728c1f1fd6e54f4561b4b5c85cbe7d8ee0

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 cce891692eeb80a74d1f07011386179e9d340bdaa69ea98b8a820a8625e03cc4
MD5 f9af17d8503c8d91f76b75455dfd6955
BLAKE2b-256 e248c582c32242583874069b948c9a38dd38c469c75a840edca6c10fffba93b7

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 11df05acc75156fdf3c2d5e25123c46943c6f26f8b3e73a97f21dff2bc6cc13b
MD5 46e8baa14323a4c59dbc792dfe8e4b6e
BLAKE2b-256 c1e43c01e2a33d84dfe2ec7bdb3ebc23bd5f10c2276eb7449d39d0f6b9f2882e

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 aa5b06958c85a0517168d02ab940b8f4ff402374f6ec8029e53ca117db6de942
MD5 7ca58e1e4eaaf2afbfdba9b09f032368
BLAKE2b-256 5b1de612d797228a5b35f5c766e068c4a3cb226854c51ddbce47e934a13c8fdc

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp310-cp310-win32.whl.

File metadata

  • Download URL: TDMtermite-2.0.2-cp310-cp310-win32.whl
  • Upload date:
  • Size: 120.8 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for TDMtermite-2.0.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 e31df3e67a47cc28e6c0754787244d5e57e6808351cc0e51a0b849840bb7ef91
MD5 7158750571c2b2a60f13eb314bf0e599
BLAKE2b-256 2854e4869974add34718a9754c44138556ce836889503640ca5aac2d1c95eeae

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b87f4881ec0978d5104256119eeac56a8c3cdb7d2809d05d1a1b6ac90409c4f5
MD5 f668e991286179c184b1c6bd14886e65
BLAKE2b-256 7c4207fda64eb182c9760cb6352b073300702c9a50c3764f41313d70c9156e5b

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 eef7ee121726ff4112c29089857a11ae679cf6874f25e06680f991f631bdd681
MD5 9d75de13ac3539012d3d398011d6bb5b
BLAKE2b-256 3cdb38749e35f29b24d99241b7cbf4ebb974777e2e1ef07bcaba7f46ae148ada

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: TDMtermite-2.0.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 129.8 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for TDMtermite-2.0.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 039c41aa056a1c9809e2c55c32988314f0d7b268e3ea90ffeb60ec3a2228ae64
MD5 d2e6ee39e7c34fd541ff1dc59f5363bc
BLAKE2b-256 c83b5749472029a0070d71245b73cf86bc573f92ed02c3cea82fe10b954c0c47

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp39-cp39-win32.whl.

File metadata

  • Download URL: TDMtermite-2.0.2-cp39-cp39-win32.whl
  • Upload date:
  • Size: 121.1 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for TDMtermite-2.0.2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 766dca05ff1cbe2bec302046abfcbd45e1c6c75c8ab0122f1d7155a679852659
MD5 964ad0232003027c4c7cdaee8e23a368
BLAKE2b-256 4cfae99107a4b6657a008ce9598f54527c6f0a68c8eb8d874d52e55dec206de2

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 1753521ff56a1babe48c477093278ecd864c4d20a040effde331001eeb7a91b4
MD5 59cf2530d657b4c09d0098bd8367aecc
BLAKE2b-256 0b1b9d5a943472359ef43ab0fbebf70bb545691f2ef9e94c0d09d7396cee00a4

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 ab9b0e12bb40ac401abbe9caf345db3440127e0e6e6a08ebcad04952e113cc17
MD5 5253d05502f99db7c8037fc8aa4419ee
BLAKE2b-256 b1d96792f08d505222e37a20676907f618be122f9801e894ed80618690c55bc6

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: TDMtermite-2.0.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 129.9 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for TDMtermite-2.0.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 2dc354229ba21ae83fd0f4accf348e24a52ee6a80facd9c056c8fa2e29a56c24
MD5 15aae070a685042f07b452267a82b07c
BLAKE2b-256 0173357680c9810433b82fddab030cd486ae7aa2273466b5c111709dcb853514

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp38-cp38-win32.whl.

File metadata

  • Download URL: TDMtermite-2.0.2-cp38-cp38-win32.whl
  • Upload date:
  • Size: 121.2 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for TDMtermite-2.0.2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 c117e5bb6d52ac975187205cb5a565705c38430e59b7e254c78aaece279c3ffa
MD5 8b6245218a5048c78d8801b23cbc9b64
BLAKE2b-256 c2ee4398161ddbd704e0cee1a60b5257cb67a279559349aee858e995d8ada663

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b5759865d78bf1a1cd7600cbeef1fada9e7594ffa50f9d72ffd6eba39a0a925b
MD5 41a52c5b6055b2da176fbc519fa4ebaa
BLAKE2b-256 75804bf5aa676feb17a1817c418eabf35a5ee8f5eda573a1aa40b6026d179c0f

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 54f082fceee5e508ec9ce57dbd83e4d18daa3c509b581f39fcb0e796a122fe8b
MD5 92b6bb8c39607cf38ee11ed87e5b3c25
BLAKE2b-256 f430791d5ff00dc7ef5582fed4054325425ff71c98bb05bb2401e7285f6e82be

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 fa953b0d837529628f3053fe5cf92678c9f51325ac2f512732fffa395c913f59
MD5 3c4ccf2e577577ddd2878ce3cba7db11
BLAKE2b-256 fd04d1fbffa698125ee259ef5e4a9f4705d851c8a11a5262b36656932dce45d9

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp37-cp37m-win32.whl.

File metadata

  • Download URL: TDMtermite-2.0.2-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 121.2 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for TDMtermite-2.0.2-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 97441b168408eec6208b2fc3a560774f3490a207bb370231d8072d7ad2d561e3
MD5 cde340081f7fc0c3e4f4fca5aba68128
BLAKE2b-256 6e40cf429812fd1a3a89a2cd785c992b137e270a709a43d223911d235e45b41d

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 2ee7d0a80c26c3f992d0eb06f2a5787398f00b3b1b42e3968a4467f68124fd49
MD5 5535773a4308785d954e976f3e157e06
BLAKE2b-256 124b5d7ee51b08263cf2b9bd96793d054600e3b37da00868dcafd4792a5c12dd

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 19251fa052e4aa8de2fd98dd365cd77a533d8977cc4e1bac833d20b38867f165
MD5 4cf850a0f22bcd8db42f1d21a24b8794
BLAKE2b-256 b23e6bc51a1f4d9a7efcabc01508f894c394432a1601b5357ffc1d2ceeec5003

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 1ca4de4c828da0c6bdd12f98970367cd55768b833e64428566f1d46fc7be771f
MD5 51a823d087aa2806e7cb6c14eed405d4
BLAKE2b-256 a1459e3f0fd43e4225a38aed36af1cbc8d12fed08b3898c3421ecae02ddd64f4

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp36-cp36m-win32.whl.

File metadata

  • Download URL: TDMtermite-2.0.2-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 124.1 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for TDMtermite-2.0.2-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 40f9a5034e8a61e5fdd38335646f5488cf91c793547cb933e8ca0599f6463b20
MD5 146126a1d78cfbd32b303bf961acc84a
BLAKE2b-256 e971fdc696f02c7d4618085ec61cf90fd5dde08e9403709a66f7024d8daafa85

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 73d58ff1b5b04168f915370e6718bdbdad481a8cad1fc7ae855a3d138dbbdcc9
MD5 2bcb9a8ea23e359d05654bccf2b2ab90
BLAKE2b-256 30a81fb2571af2827a3142c9178a7345aafcfdb757be0e4e5bcb77fad563fe3e

See more details on using hashes here.

File details

Details for the file TDMtermite-2.0.2-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for TDMtermite-2.0.2-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 f731905c8f9980d658aabbda6b1f4c1978b91a82f13d47f55d62709e1e8299be
MD5 7312fbfbb1d15f7941ac7d9853bf784f
BLAKE2b-256 cfb8a6ac413ea889317a85bd8b83bf860fd311ca3239cf2cc8cfe8a3541fcd6f

See more details on using hashes here.

Supported by

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