Skip to main content

High-performance parser and generator for PostgreSQL-compatible tab-separated values (TSV)

Project description

Parse and generate tab-separated values (TSV) data

Tab-separated values (TSV) is a simple and popular format for data storage, data transfer, exporting data from and importing data to relational databases. For example, PostgreSQL COPY moves data between PostgreSQL tables and standard file-system files or in-memory stores, and its text format (a text file with one line per table row) is a generic version of TSV. Meanwhile, packages like asyncpg help efficiently insert, update or query data in bulk with binary data transfer between Python and PostgreSQL.

This package offers a high-performance alternative to convert data between a TSV text file and Python objects. The parser can read a TSV record into a Python tuple consisting of built-in Python types, one for each field. The generator can produce a TSV record from a tuple.

Installation

Even though tsv2py contains native code, the package is already pre-built for several target architectures. In most cases, you can install directly from a binary wheel, selected automatically by pip:

python3 -m pip install tsv2py

If a binary wheel is not available for the target platform, pip will attempt to install tsv2py from the source distribution. This will build the package on the fly as part of the installation process, which requires a C compiler such as gcc or clang. The following commands install a C compiler and the Python development headers on AWS Linux:

sudo yum groupinstall -y "Development Tools"
sudo yum install -y python3-devel python3-pip

If you lack a C compiler or the Python development headers, you will get error messages similar to the following:

error: command 'gcc' failed: No such file or directory
lib/tsv_parser.c:2:10: fatal error: Python.h: No such file or directory

Quick start

from tsv.helper import Parser

# specify the column structure
parser = Parser(fields=(bytes, date, datetime, float, int, str, UUID, bool))

# read and parse an entire file
with open(tsv_path, "rb") as f:
    py_records = parser.parse_file(f)

# read and parse a file line by line
with open(tsv_path, "rb") as f:
    for line in f:
        py_record = parser.parse_line(line)

TSV format

Text format is a simple tabular format in which each record (table row) occupies a single line.

  • Output always begins with a header row, which lists data field names.
  • Fields (table columns) are delimited by tab characters.
  • Non-printable characters and special values are escaped with backslash (\), as shown below:
Escape Interpretation
\N NULL value
\0 NUL character (ASCII 0)
\b Backspace (ASCII 8)
\f Form feed (ASCII 12)
\n Newline (ASCII 10)
\r Carriage return (ASCII 13)
\t Tab (ASCII 9)
\v Vertical tab (ASCII 11)
\\ Backslash (single character)

This format allows data to be easily imported into a database engine, e.g. with PostgreSQL COPY.

Output in this format is transmitted as media type text/plain or text/tab-separated-values in UTF-8 encoding.

Parser

The parser understands the following Python types:

  • None. This special value is returned for the TSV escape sequence \N.
  • bool. A literal true or false is converted into a boolean value.
  • bytes. TSV escape sequences are reversed before the data is passed to Python as a bytes object. NUL bytes are permitted.
  • datetime. The input has to comply with RFC 3339 and ISO 8601. The timezone must be UTC (a.k.a. suffix Z).
  • date. The input has to conform to the format YYYY-MM-DD.
  • time. The input has to conform to the format hh:mm:ssZ with no fractional seconds, or hh:mm:ss.ffffffZ with fractional seconds. Fractional seconds allow up to 6 digits of precision.
  • float. Interpreted as double precision floating point numbers.
  • int. Arbitrary-length integers are allowed.
  • str. TSV escape sequences are reversed before the data is passed to Python as a str. NUL bytes are not allowed.
  • uuid.UUID. The input has to comply with RFC 4122, or be a string of 32 hexadecimal digits.
  • decimal.Decimal. Interpreted as arbitrary precision decimal numbers.
  • ipaddress.IPv4Address.
  • ipaddress.IPv6Address.
  • list and dict, which are understood as JSON, and invoke the equivalent of json.loads to parse a serialized JSON string.

The backslash character \ is both a TSV and a JSON escape sequence initiator. When JSON data is written to TSV, several backslash characters may be needed, e.g. \\n in a quoted JSON string translates to a single newline character. First, \\ in \\n is understood as an escape sequence by the TSV parser to produce a single \ character followed by an n character, and in turn \n is understood as a single newline embedded in a JSON string by the JSON parser. Specifically, you need four consecutive backslash characters in TSV to represent a single backslash in a JSON quoted string.

Internally, the implementation uses AVX2 instructions to

  • parse RFC 3339 date-time strings into Python datetime objects,
  • parse RFC 4122 UUID strings or 32-digit hexadecimal strings into Python UUID objects,
  • and find \t delimiters between fields in a line.

For parsing integers up to the range of the long type, the parser calls the C standard library function strtol.

For parsing IPv4 and IPv6 addresses, the parser calls the C function inet_pton in libc or Windows Sockets (WinSock2).

If installed, the parser employs orjson to improve parsing speed of nested JSON structures. If not available, the library falls back to the built-in JSON decoder.

Date-time format

YYYY-MM-DDThh:mm:ssZ
YYYY-MM-DDThh:mm:ss.fZ
YYYY-MM-DDThh:mm:ss.ffZ
YYYY-MM-DDThh:mm:ss.fffZ
YYYY-MM-DDThh:mm:ss.ffffZ
YYYY-MM-DDThh:mm:ss.fffffZ
YYYY-MM-DDThh:mm:ss.ffffffZ

Date format

YYYY-MM-DD

Time format

hh:mm:ssZ
hh:mm:ss.fZ
hh:mm:ss.ffZ
hh:mm:ss.fffZ
hh:mm:ss.ffffZ
hh:mm:ss.fffffZ
hh:mm:ss.ffffffZ

Performance

Depending on the field types, tsv2py is up to 7 times faster to parse TSV records than a functionally equivalent Python implementation based on the Python standard library. Savings in execution time are more substantial for dates, UUIDs and longer strings with special characters (up to 90% savings), and they are more moderate for simple types like small integers (approx. 60% savings).

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

tsv2py-0.7.1.tar.gz (26.3 kB view details)

Uploaded Source

Built Distributions

tsv2py-0.7.1-pp310-pypy310_pp73-win_amd64.whl (36.0 kB view details)

Uploaded PyPy Windows x86-64

tsv2py-0.7.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (32.5 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

tsv2py-0.7.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (21.6 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

tsv2py-0.7.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (22.8 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

tsv2py-0.7.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl (18.1 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

tsv2py-0.7.1-pp39-pypy39_pp73-win_amd64.whl (36.0 kB view details)

Uploaded PyPy Windows x86-64

tsv2py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (32.4 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

tsv2py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (21.6 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

tsv2py-0.7.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (22.8 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

tsv2py-0.7.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl (18.1 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

tsv2py-0.7.1-pp38-pypy38_pp73-win_amd64.whl (36.0 kB view details)

Uploaded PyPy Windows x86-64

tsv2py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (32.4 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

tsv2py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (21.6 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

tsv2py-0.7.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (22.8 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

tsv2py-0.7.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl (18.1 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

tsv2py-0.7.1-cp38-abi3-win_amd64.whl (35.7 kB view details)

Uploaded CPython 3.8+ Windows x86-64

tsv2py-0.7.1-cp38-abi3-win32.whl (33.5 kB view details)

Uploaded CPython 3.8+ Windows x86

tsv2py-0.7.1-cp38-abi3-musllinux_1_2_x86_64.whl (77.0 kB view details)

Uploaded CPython 3.8+ musllinux: musl 1.2+ x86-64

tsv2py-0.7.1-cp38-abi3-musllinux_1_2_i686.whl (40.5 kB view details)

Uploaded CPython 3.8+ musllinux: musl 1.2+ i686

tsv2py-0.7.1-cp38-abi3-musllinux_1_2_aarch64.whl (38.8 kB view details)

Uploaded CPython 3.8+ musllinux: musl 1.2+ ARM64

tsv2py-0.7.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (74.1 kB view details)

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

tsv2py-0.7.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (40.3 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

tsv2py-0.7.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (38.7 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

tsv2py-0.7.1-cp38-abi3-macosx_11_0_arm64.whl (18.1 kB view details)

Uploaded CPython 3.8+ macOS 11.0+ ARM64

File details

Details for the file tsv2py-0.7.1.tar.gz.

File metadata

  • Download URL: tsv2py-0.7.1.tar.gz
  • Upload date:
  • Size: 26.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for tsv2py-0.7.1.tar.gz
Algorithm Hash digest
SHA256 1c8a1316715b8ee4f0f9e6876251b77aa4a8d9364f40eb9d6e2f221276e81133
MD5 61ab4a7a3010a93243ba7d8562df4461
BLAKE2b-256 9be534de53e9807765169f84c3d865969b0fd831287acdfe01da188545138476

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 12640833b1caa891b2dbde327c9f1382de285f86db7551cb6e920a81fa50f6e2
MD5 d4446a6acfb4ae15f9736fce34c3db37
BLAKE2b-256 dbb631c89ee30fc5d37a25dc04a6bf0fd265c46bf152749c77a3ef5e77bd534f

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f467c61190431bdf58d9109c3eebe7c15cc65c031efa4c5e2665d9f8b671067
MD5 b8461f3fe5f23ceb05f12743162f4574
BLAKE2b-256 711fe0349cb75189863dc84c2c0818b7f9da0e1be8b9e58744a19d7e678c18e4

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 78d17808a57b4be0668bab6d4472513df1c7ef5eb33b3a0c73dc6cc0d6c3569d
MD5 c8a0d5749cafe14f679245a6b1423457
BLAKE2b-256 a1e8c17bc3d0db8867f6196c5853e466187f8b5a1f1ca7f2e74d76b5fdcf0986

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f7c52de72fcca26cc8b6681ed4a1ebfa73e3c58ab8b0e8ffaf764730ea69a33c
MD5 61884cac31d5a71490ec0e185cc1c6f7
BLAKE2b-256 4c8a154da5022389085de6347b23a67ad79a5e88403dc55d0a3937f5faa0c184

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 243c06eef8be9758a5185b20d187d9ff80f42703c7f6e427fb139f20b20393f4
MD5 3f11b646f88dc9bd39e8ebef68145a68
BLAKE2b-256 bfeaee1fdc58f53d0a401c495b4a28ecc8bead0d447abcea222b245d0259df4f

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 1be4fe775df70362ba4d980cc8cfd72041d3aec8129ccab75abae48b46ee647d
MD5 fc16e69d856e2fb30dd5275cdb2555e6
BLAKE2b-256 38e592fd5c05664c1241987239b5e76c33f4f32168f74c21d354c1acfdb0e73c

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b28bebc4974654ca4cfbb3ddf1bd9ef27423e4ec5f797d1043ca03780694de4b
MD5 9255abf7587136f42c4d309faed2179d
BLAKE2b-256 93f3b71815f393627fc7fbf173a808bc10606f1cd31298f5d6dc656b8c424258

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d5cb3837248ca3c17d473934e89ffcccbe615fe1453e88671855ee8fba0d297e
MD5 47afc1603702fc9a3fa15e11da0da0bd
BLAKE2b-256 fdc68fdacaf9184f45cf2507ccc83eabc9ad15a2f9621d1fd6f2522bd4a4a0b8

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 dd4765921e1a0884c7431e46fb55fa82880a432e353eb209a67737e81a752d27
MD5 5cb80b02e4aa2be24fb62b9fbee176ac
BLAKE2b-256 f335535d4ef6d25e7d439a2fafe16c0755b2bde4d39bdb21f99d59590df5b5f4

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bd5e5497c0fe5cb80dbe02d5032f32a7e7660cd6af600fff8a17e53239bbcd2f
MD5 2a48058576a0d7d12103c4519bd5ffb6
BLAKE2b-256 c6089547968e3527d794d32a9e128032d1c923e90c29335adc6535389aef4f5e

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 9753f799b4c8f0278ed2c906f8f572eb52d1905f930ab65120499729f2685dcf
MD5 239628ed926980719ee0130378bf691f
BLAKE2b-256 58ca49789cc972aeffd7951e0c5ce2cbe344390b7125b9c33bf27b4c91ecf8e9

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 06960807fcd54275929f21606eabe10310b21b0871b96d3fc3fee97a3185375f
MD5 af44310617a374923a135fc9656640b8
BLAKE2b-256 929b01e48af638993bb2497f2bf03591e27c5cfcb5e2ae7c483e51f8b7f9d57b

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 26c910de13e69ce45b4e7257325c4768145efe156754655d2fe19a57cfa336c5
MD5 2c6f0b665f99c094697354bf34db2796
BLAKE2b-256 cfa0cdde61807e23d0914894983cdc150e36a183298872be300117e136cd86f0

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0b34375f63cf28aa21fc130f3b4b13a383c105857b22f99ced10a8aebc560edf
MD5 b8e4b7e3bd801b2e23bb8ca415c86891
BLAKE2b-256 fdefd4c3e5ff537b837653b9e40bec37a9b322b224e9a2762f8241b2dd34478d

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4b31694d14bbad588306f3d1456544684150479a613b0a1c18f2339cc832bd63
MD5 da4c37a266c686d79c5084de94f0b07a
BLAKE2b-256 6608b84ff02799a4315861384f80049d69bdb27f307e29341ef1d5022242eaea

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: tsv2py-0.7.1-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 35.7 kB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for tsv2py-0.7.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d2471e255f1b25c90fe79721bc21c17be106982cb5823ba55da93ada0b35b69f
MD5 60c9d3ac2a2b98df690187c4917b06a9
BLAKE2b-256 00c5cd60581f4e9c98de89c22b73bf7ec682a6da3c3afc0633064c8047f59dd6

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-cp38-abi3-win32.whl.

File metadata

  • Download URL: tsv2py-0.7.1-cp38-abi3-win32.whl
  • Upload date:
  • Size: 33.5 kB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for tsv2py-0.7.1-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 bb651f78f08adbfa2d826644eb66b699927bd41742bd11c29354d8ddee846d9a
MD5 e4a46f071437b96eedfb98596968f598
BLAKE2b-256 c4e5e0238f0bce5d4dfca161fd33ec75d8e9d261f3c739430f7527670c77d47e

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7e503eabf2b07610d1ef32aa840166178944112e71da7f516c9c3376a7e05701
MD5 f590dc1c92eae55baa7eb2b723dec95e
BLAKE2b-256 365b6e1e6bc89ca62f543a8e16a985e9a91b49e9f5e732ecb3ca908bca1b51aa

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-cp38-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 0841db149f8bc468425989271e9bd3c52fd80f6effb28fb8007cd17764d85e11
MD5 e60ed105d7833c46a103a356547cceb5
BLAKE2b-256 55d178b9303efad1d7988fbac84f2e5c1b23b78a81aa377017cd395f1df72616

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f38e43480bfe7e419416f040bc97673e9b95cb6bd36b7eb9ec884f3821bb2e59
MD5 000376da6f4f36f4d5d410254d91252d
BLAKE2b-256 c516ae514beb5c812c38a5083849e99ffe3962aa58ea80c85f88279d68bed459

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 afc7941ce44fb34d8f180cf835f36fb277ab2293d99dfbf8b53715bc3196329c
MD5 94a15c9068ed5f6066b3edcc86ec9e1d
BLAKE2b-256 4cd0a6af369d0033762dd45a10747bb5898eaab5147a6900e96091febeca8a13

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9cdada09da048c1cd5240ac27652007fa68fb225ce93fed21548ac01d74f5306
MD5 ef02a13747a7dc4c1e03162900f07047
BLAKE2b-256 f1cc103c559a7d7cbf22922213fb89e200d09d762c4be76a6947e68acd20ca29

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 42267c185e316bd3ee3035dd5e7f4048204cd3074633fb9988f5e9bd83836b89
MD5 b1af750af1c2c9e5ec0da93a56635fff
BLAKE2b-256 12e2ad846e1102ef20e9d10e55b72504536fe2595257fb953d024baadccf933c

See more details on using hashes here.

File details

Details for the file tsv2py-0.7.1-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tsv2py-0.7.1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7a5bc7fa6ffda82c8e7d5be5c7f135677f6ddc64ac7213b2397759f7f1001e41
MD5 2515bccc659715b118d8b6578b9e381a
BLAKE2b-256 00d2729c1a2eb068f9fac6baeb36fe4e207b86829b8d92fc5f0f8e1109ac1a15

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