Skip to main content

A Python package for handling messy CSV files

Project description


Github Actions Build Status PyPI version Documentation Status Downloads Binder

CleverCSV provides a drop-in replacement for the Python csv package with improved dialect detection for messy CSV files. It also provides a handy command line tool that can standardize a messy file or generate Python code to import it.

Useful links:


Contents: Introduction | Installation | Usage | Python Library | Command-Line Tool | Version Control Integration | Contributing | Notes


Introduction

  • CSV files are awesome! They are lightweight, easy to share, human-readable, version-controllable, and supported by many systems and tools!
  • CSV files are terrible! They can have many different formats, multiple tables, headers or no headers, escape characters, and there's no support for recording metadata!

CleverCSV is a Python package that aims to solve some of the pain points of CSV files, while maintaining many of the good things. The package automatically detects (with high accuracy) the format (dialect) of CSV files, thus making it easier to simply point to a CSV file and load it, without the need for human inspection. In the future, we hope to solve some of the other issues of CSV files too.

CleverCSV is based on science. We investigated thousands of real-world CSV files to find a robust way to automatically detect the dialect of a file. This may seem like an easy problem, but to a computer a CSV file is simply a long string, and every dialect will give you some table. In CleverCSV we use a technique based on the patterns of row lengths of the parsed file and the data type of the resulting cells. With our method we achieve 97% accuracy for dialect detection, with a 21% improvement on non-standard (messy) CSV files compared to the Python standard library.

We think this kind of work can be very valuable for working data scientists and programmers and we hope that you find CleverCSV useful (if there's a problem, please open an issue!) Since the academic world counts citations, please cite CleverCSV if you use the package. Here's a BibTeX entry you can use:

@article{van2019wrangling,
        title = {Wrangling Messy {CSV} Files by Detecting Row and Type Patterns},
        author = {{van den Burg}, G. J. J. and Naz{\'a}bal, A. and Sutton, C.},
        journal = {Data Mining and Knowledge Discovery},
        year = {2019},
        volume = {33},
        number = {6},
        pages = {1799--1820},
        issn = {1573-756X},
        doi = {10.1007/s10618-019-00646-y},
}

And of course, if you like the package please spread the word! You can do this by Tweeting about it (#CleverCSV) or clicking the ⭐️ on GitHub!

Installation

CleverCSV is available on PyPI. You can install either the full version, which includes the command line interface and all optional dependencies, using

$ pip install clevercsv[full]

or you can install a lighter, core version of CleverCSV with

$ pip install clevercsv

Usage

CleverCSV consists of a Python library and a command line tool called clevercsv.

Python Library

We designed CleverCSV to provide a drop-in replacement for the built-in CSV module, with some useful functionality added to it. Therefore, if you simply want to replace the builtin CSV module with CleverCSV, you can import CleverCSV as follows, and use it as you would use the builtin csv module.

import clevercsv

CleverCSV provides an improved version of the dialect sniffer in the CSV module, but it also adds some useful wrapper functions. These functions automatically detect the dialect and aim to make working with CSV files easier. We currently have the following helper functions:

  • detect_dialect: takes a path to a CSV file and returns the detected dialect
  • read_table: automatically detects the dialect and encoding of the file, and returns the data as a list of rows. A version that returns a generator is also available: stream_table
  • read_dataframe: detects the dialect and encoding of the file and then uses Pandas to read the CSV into a DataFrame. Note that this function requires Pandas to be installed.
  • read_dicts: detect the dialect and return the rows of the file as dictionaries, assuming the first row contains the headers. A streaming version called stream_dicts is also available.
  • write_table: write a table (a list of lists) to a file using the RFC-4180 dialect.

Of course, you can also use the traditional way of loading a CSV file, as in the Python CSV module:

import clevercsv

with open("data.csv", "r", newline="") as fp:
  # you can use verbose=True to see what CleverCSV does
  dialect = clevercsv.Sniffer().sniff(fp.read(), verbose=False)
  fp.seek(0)
  reader = clevercsv.reader(fp, dialect)
  rows = list(reader)

For large files, you can speed up detection by supplying a smaller sample to the sniffer, for instance:

dialect = clevercsv.Sniffer().sniff(fp.read(10000))

That's the basics! If you want more details, you can look at the code of the package, the test suite, or the API documentation. If you run into any issues or have comments or suggestions, please open an issue on GitHub.

Command-Line Tool

To use the command line tool, make sure that you install the full version of CleverCSV (see above).

The clevercsv command line application has a number of handy features to make working with CSV files easier. For instance, it can be used to view a CSV file on the command line while automatically detecting the dialect. It can also generate Python code for importing data from a file with the correct dialect. The full help text is as follows:

USAGE
  clevercsv [-h] [-v] [-V] <command> [<arg1>] ... [<argN>]

ARGUMENTS
  <command>       The command to execute
  <arg>           The arguments of the command

GLOBAL OPTIONS
  -h (--help)     Display this help message.
  -v (--verbose)  Enable verbose mode.
  -V (--version)  Display the application version.

AVAILABLE COMMANDS
  code            Generate Python code for importing the CSV file
  detect          Detect the dialect of a CSV file
  explore         Drop into a Python shell with the CSV file loaded
  help            Display the manual of a command
  standardize     Convert a CSV file to one that conforms to RFC-4180
  view            View the CSV file on the command line using TabView

Each of the commands has further options (for instance, the code and explore commands have support for importing the CSV file as a Pandas DataFrame). Use clevercsv help <command> for more information. Below are some examples for each command.

Note that each command accepts the -n or --num-chars flag to set the number of characters used to detect the dialect. This can be especially helpful to speed up dialect detection on large files.

Code

Code generation is useful when you don't want to detect the dialect of the same file over and over again. You simply run the following command and copy the generated code to a Python script!

$ clevercsv code imdb.csv

# Code generated with CleverCSV

import clevercsv

with open("imdb.csv", "r", newline="", encoding="utf-8") as fp:
    reader = clevercsv.reader(fp, delimiter=",", quotechar="", escapechar="\\")
    rows = list(reader)

We also have a version that reads a Pandas dataframe:

$ clevercsv code --pandas imdb.csv

# Code generated with CleverCSV

import clevercsv

df = clevercsv.read_dataframe("imdb.csv", delimiter=",", quotechar="", escapechar="\\")

Detect

Detection is useful when you only want to know the dialect.

$ clevercsv detect imdb.csv
Detected: SimpleDialect(',', '', '\\')

The --plain flag gives the components of the dialect on separate lines, which makes combining it with grep easier.

$ clevercsv detect --plain imdb.csv
delimiter = ,
quotechar =
escapechar = \

Explore

The explore command is great for a command-line based workflow, or when you quickly want to start working with a CSV file in Python. This command detects the dialect of a CSV file and starts an interactive Python shell with the file already loaded! You can either have the file loaded as a list of lists:

$ clevercsv explore milk.csv
Dropping you into an interactive shell.

CleverCSV has loaded the data into the variable: rows
>>>
>>> len(rows)
381

or you can load the file as a Pandas dataframe:

$ clevercsv explore -p imdb.csv
Dropping you into an interactive shell.

CleverCSV has loaded the data into the variable: df
>>>
>>> df.head()
                   fn        tid  ... War Western
0  titles01/tt0012349  tt0012349  ...   0       0
1  titles01/tt0015864  tt0015864  ...   0       0
2  titles01/tt0017136  tt0017136  ...   0       0
3  titles01/tt0017925  tt0017925  ...   0       0
4  titles01/tt0021749  tt0021749  ...   0       0

[5 rows x 44 columns]

Standardize

Use the standardize command when you want to rewrite a file using the RFC-4180 standard:

$ clevercsv standardize --output imdb_standard.csv imdb.csv

In this particular example the use of the escape character is replaced by using quotes.

View

This command allows you to view the file in the terminal. The dialect is of course detected using CleverCSV! Both this command and the standardize command support the --transpose flag, if you want to transpose the file before viewing or saving:

$ clevercsv view --transpose imdb.csv

Version Control Integration

If you'd like to make sure that you never commit a messy (non-standard) CSV file to your repository, you can install a pre-commit hook. First, install pre-commit using the installation instructions. Next, add the following configuration to the .pre-commit-config.yaml file in your repository:

repos:
  - repo: https://github.com/alan-turing-institute/CleverCSV-pre-commit
    rev: v0.6.6   # or any later version
    hooks:
      - id: clevercsv-standardize

Finally, run pre-commit install to set up the git hook. Pre-commit will now use CleverCSV to standardize your CSV files following RFC-4180 whenever you commit a CSV file to your repository.

Contributing

If you want to encourage development of CleverCSV, the best thing to do now is to spread the word!

If you encounter an issue in CleverCSV, please open an issue or submit a pull request. Don't hesitate, you're helping to make this project better for everyone! If GitHub's not your thing but you still want to contact us, you can send an email to gertjanvandenburg at gmail dot com instead. You can also ask questions on Gitter.

Note that all contributions to the project must adhere to the Code of Conduct.

The CleverCSV package was originally written by Gertjan van den Burg and came out of scientific research on wrangling messy CSV files by Gertjan van den Burg, Alfredo Nazabal, and Charles Sutton.

Notes

CleverCSV is licensed under the MIT license. Please cite our research if you use CleverCSV in your work.

Copyright (c) 2018-2021 The Alan Turing Institute.

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

clevercsv-0.6.8.tar.gz (61.4 kB view details)

Uploaded Source

Built Distributions

clevercsv-0.6.8-cp39-cp39-win_amd64.whl (60.5 kB view details)

Uploaded CPython 3.9 Windows x86-64

clevercsv-0.6.8-cp39-cp39-win32.whl (59.2 kB view details)

Uploaded CPython 3.9 Windows x86

clevercsv-0.6.8-cp39-cp39-manylinux2010_x86_64.whl (91.3 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

clevercsv-0.6.8-cp39-cp39-manylinux2010_i686.whl (90.1 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

clevercsv-0.6.8-cp39-cp39-manylinux1_x86_64.whl (91.3 kB view details)

Uploaded CPython 3.9

clevercsv-0.6.8-cp39-cp39-manylinux1_i686.whl (90.1 kB view details)

Uploaded CPython 3.9

clevercsv-0.6.8-cp39-cp39-macosx_10_9_x86_64.whl (53.7 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

clevercsv-0.6.8-cp38-cp38-win_amd64.whl (60.5 kB view details)

Uploaded CPython 3.8 Windows x86-64

clevercsv-0.6.8-cp38-cp38-win32.whl (59.2 kB view details)

Uploaded CPython 3.8 Windows x86

clevercsv-0.6.8-cp38-cp38-manylinux2010_x86_64.whl (92.2 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

clevercsv-0.6.8-cp38-cp38-manylinux2010_i686.whl (91.0 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

clevercsv-0.6.8-cp38-cp38-manylinux1_x86_64.whl (92.2 kB view details)

Uploaded CPython 3.8

clevercsv-0.6.8-cp38-cp38-manylinux1_i686.whl (91.0 kB view details)

Uploaded CPython 3.8

clevercsv-0.6.8-cp38-cp38-macosx_10_9_x86_64.whl (53.7 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

clevercsv-0.6.8-cp37-cp37m-win_amd64.whl (60.4 kB view details)

Uploaded CPython 3.7m Windows x86-64

clevercsv-0.6.8-cp37-cp37m-win32.whl (59.1 kB view details)

Uploaded CPython 3.7m Windows x86

clevercsv-0.6.8-cp37-cp37m-manylinux2010_x86_64.whl (92.4 kB view details)

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

clevercsv-0.6.8-cp37-cp37m-manylinux2010_i686.whl (91.2 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

clevercsv-0.6.8-cp37-cp37m-manylinux1_x86_64.whl (92.4 kB view details)

Uploaded CPython 3.7m

clevercsv-0.6.8-cp37-cp37m-manylinux1_i686.whl (91.2 kB view details)

Uploaded CPython 3.7m

clevercsv-0.6.8-cp37-cp37m-macosx_10_9_x86_64.whl (53.5 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

clevercsv-0.6.8-cp36-cp36m-win_amd64.whl (60.4 kB view details)

Uploaded CPython 3.6m Windows x86-64

clevercsv-0.6.8-cp36-cp36m-win32.whl (59.1 kB view details)

Uploaded CPython 3.6m Windows x86

clevercsv-0.6.8-cp36-cp36m-manylinux2010_x86_64.whl (90.6 kB view details)

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

clevercsv-0.6.8-cp36-cp36m-manylinux2010_i686.whl (89.4 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ i686

clevercsv-0.6.8-cp36-cp36m-manylinux1_x86_64.whl (90.6 kB view details)

Uploaded CPython 3.6m

clevercsv-0.6.8-cp36-cp36m-manylinux1_i686.whl (89.4 kB view details)

Uploaded CPython 3.6m

clevercsv-0.6.8-cp36-cp36m-macosx_10_9_x86_64.whl (53.5 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file clevercsv-0.6.8.tar.gz.

File metadata

  • Download URL: clevercsv-0.6.8.tar.gz
  • Upload date:
  • Size: 61.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8.tar.gz
Algorithm Hash digest
SHA256 e2e015221d27b95b6671852f23cb6d6fd003297ee3cd1220392b51253efd21e6
MD5 6c05557e2533183aac33f859271bcb34
BLAKE2b-256 502c2c64f2c524642a593c6a22e305bd9192ebb1f051422538652911337a903c

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 60.5 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 39f226a7d5a607d9c50e1d2c1f19a568d23979705a2ed39498e03c13a0b7e54f
MD5 6124473799311111c89d462bc95c2cb9
BLAKE2b-256 0746aca8cb5e74f22a5267ed5843c6fbd19f1d40d76a7baac278afa805d6e25f

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp39-cp39-win32.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp39-cp39-win32.whl
  • Upload date:
  • Size: 59.2 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 8dbd3089a4571442813eef789e51e1ea6a99e149580275f0009d6376eae9f02f
MD5 ab9f9c1cfe121a42fd3daa8bfbdde2e7
BLAKE2b-256 432f083679b8981001ceae494aa38d16dc0c7d9d267c36ce53478e45d32bb3ef

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp39-cp39-manylinux2010_x86_64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 91.3 kB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 8d682c48d89d129f5b5f6ad9a8da26378e3c1c10384b7911c8b6679a12757f4d
MD5 ea3f8a70bd10b85fcb7387680f659c67
BLAKE2b-256 7f19687a307e022cda71e057e3aff160cff68d1e32103871179d6c13ef3e5717

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp39-cp39-manylinux2010_i686.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp39-cp39-manylinux2010_i686.whl
  • Upload date:
  • Size: 90.1 kB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp39-cp39-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 0cfac3caa483c7eb1e96f59004e11c445d03dd69f485672687764a3fe7a206eb
MD5 00c05aeadd66e871b4dae03932d8195a
BLAKE2b-256 d49650106a107fcf9cdab63ebe149cc09ba8ace2eb340ddacc6b52a64b1f0d38

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp39-cp39-manylinux1_x86_64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp39-cp39-manylinux1_x86_64.whl
  • Upload date:
  • Size: 91.3 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp39-cp39-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 7081699e4721e457a8d94d663223d707f9ca3513cbbc0f49daa4f482110ac6ae
MD5 2eb8f49fa456fe742c9cb3f85c6bc83f
BLAKE2b-256 743f2c91b7cea87f5076c94fbfd4b93343cc6e7b7bfe4d634af1185d817cfe3b

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp39-cp39-manylinux1_i686.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp39-cp39-manylinux1_i686.whl
  • Upload date:
  • Size: 90.1 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp39-cp39-manylinux1_i686.whl
Algorithm Hash digest
SHA256 80747e7d0a4681e2d7787230d2c61309dd423cf088e7e1e51f2a1f6f1f38b9e3
MD5 55390ff195ac0a057cd567e53bf98494
BLAKE2b-256 7532fabba0ca406416ae603ce3f70e286392e5d06653d8312d2cdbf2073ff47e

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 53.7 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6f11159fef17690823b78d4af0178669fd8ab39fcb7960fce99c9d8341b637ae
MD5 1f2d4ff1fe98300a0d9ba2d58a712911
BLAKE2b-256 1e580463244079aa377b664450e6cbac6c208f54dea394bb5ebdbf8f70fed3d1

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 60.5 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 93d9d392b0d16a7d6588f57394f2421910b6b369660cc1a5f4e2ae6990c46830
MD5 db50637f3a7feaa4a813f7f6275bb14c
BLAKE2b-256 0afd6f18dad046aa7818e038e68b10ae60f50071899fd5b21f89065ecb886288

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp38-cp38-win32.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp38-cp38-win32.whl
  • Upload date:
  • Size: 59.2 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 fb5692b1e2da864475abf2fa51ba918310e9dc0bc9ab483c9aeea5bc5948869b
MD5 6e8e547011ad31d08c5e9c1d8eaae92b
BLAKE2b-256 c9a8134b9186c94693dee8964f87f2d7bf5802f3ab06193ad49e0d73379649ce

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 92.2 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3a928d0927dfa5a5466d735888169be776b52ed5f077161826c7bf74ba09768f
MD5 b9c4171076d9db51423d8200547eb3e1
BLAKE2b-256 0e029a827d8efccb0ea20f7270ca60e86bac4ad7ad8fbb3dc65aab3e68d2c275

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp38-cp38-manylinux2010_i686.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp38-cp38-manylinux2010_i686.whl
  • Upload date:
  • Size: 91.0 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp38-cp38-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 dd2d19eb7583b1eaae028f2719f145fa8f5b41f6b4a69d7062f20838eeb68e52
MD5 7c7bcc1bc2738a6a4401a9ffb3d2a1a1
BLAKE2b-256 6d192f3fd982761dc7b57785ffa091c6e990bae51edcbbb17f7056032f7bd183

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 92.2 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 9bca52f7471b25658e42e1c2e72ed1fa2f556ff48fcbcc81a5b69c81781ae271
MD5 14a0b299d19ad0c4be7e8d3f5ea714cd
BLAKE2b-256 aa47783cf4bda4581d12d5cfce6a95bc572e8f3c884b241241d4b90f61d42d8d

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp38-cp38-manylinux1_i686.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp38-cp38-manylinux1_i686.whl
  • Upload date:
  • Size: 91.0 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp38-cp38-manylinux1_i686.whl
Algorithm Hash digest
SHA256 ff50a0beb97a6496a7dba74d46cbb3367e1317d299b6f360176363753b5fb3a8
MD5 8ff4986e43124b86130f2cb383492a7b
BLAKE2b-256 404d807e500f2c85f8cad58c1a706dbd57b3de4acda6e94d702b79ff23f38f9f

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 53.7 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d3f86572bb17b2b55927030bb1b64b9bdb7cbeaf3e619586fba60ea7bbf9084d
MD5 9d165d3d4669b38f175ac9e83dc10c40
BLAKE2b-256 897b73f25daee705a09b74ba53b5293de61f8f79d989db031e5258e8362970ae

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 60.4 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 6df70641f2372a3bbd43ae3a65ee43c1dfe50bb8c5224086b4dd6742123aee43
MD5 e060d66179c83204179a937038e7a76c
BLAKE2b-256 6e032afe7e28f946f583fe392b0d6b5fdbf022fa7170ecc325b2bc9e150b5b8d

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp37-cp37m-win32.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 59.1 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 305e2de1e004ccf7f93018c04d627845f69ba30ce9cbcda17667d1943ccb683c
MD5 944965fd9111b7bd5e65f93ae035e50b
BLAKE2b-256 644eda9fe74af93c409af5b1c631f571c1372d222305becac84017c7977b5b80

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 92.4 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 fee93a5b2e313bd42217bf2f57e3bcf77932566a1e9ddce221d38a467b50efca
MD5 c43257a57688ba56136d7b2bab1b0193
BLAKE2b-256 f55e57f6bfe07ec7405b592b38b66336cec9fab65b09df765982779bc7a44866

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp37-cp37m-manylinux2010_i686.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp37-cp37m-manylinux2010_i686.whl
  • Upload date:
  • Size: 91.2 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp37-cp37m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 61fd546d9892c705f7fa39e899127ef0806adeab4a10992dade3fc023d87b996
MD5 72b01e115139344dcaba4122f7ba88c2
BLAKE2b-256 9603d1eefeeff4076a7246694d2b0a9fded49affe3320b6272d525b83d6277bb

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 92.4 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 c534304275a641f03e315ffb15a7c0fab19d570cc6fcdeb392135191ee025570
MD5 1c1b5983e46d924bac3d69af56be3c16
BLAKE2b-256 98310772a55a35251b67eaf729c6c12a35e1a3dda82524d1a8d52f097d815e9f

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp37-cp37m-manylinux1_i686.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp37-cp37m-manylinux1_i686.whl
  • Upload date:
  • Size: 91.2 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp37-cp37m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 c87651bfec38cf617019e7bd28df37584d0cfaf114b51f9fb16c99d21fe6ff0e
MD5 b313b7f901d27d2283a3c3c63b5219b3
BLAKE2b-256 89a1e27fa227467e9718f66c6b51719d396f4b33899663db5aa61b3629f83d04

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 53.5 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8c009a9c41de156721579383c3a65e2d5fdcb95a8b5f52a31a7b5e35c7257e24
MD5 07031c5ee0bc7046ea1ebe736dd40a53
BLAKE2b-256 7abd662673ae3b0474823e7dfff8db00e9f4b1e261cae35e76646b39ab0575cc

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 60.4 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 0f69d97997760ef0c8fcaee182ba60f9fd2244a0fe6234835c2bf4bd2690be1a
MD5 69021c5cc4590d99d3c01375c7432ed8
BLAKE2b-256 5de3b4d2e68b9ea388d35ec9864521504492511dc964d378bbe693a9c6f76a23

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp36-cp36m-win32.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 59.1 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 789561efd8bf09a93e8c02c4ea46370d208f49dd5580fd8811df67826b2ab5ed
MD5 46cedb3a57ab7c02ede95057a728bb13
BLAKE2b-256 a9a8ad28d91c0d8f9b4f75f123e7f7cedccbe509d846026c8eecd02edd4e9146

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 90.6 kB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 7c1a9e3e82e134e64037f447c2b9d82ae9e291d8ee581b371857f034b4cdfe39
MD5 17fea1fe90914d684845e639178619a5
BLAKE2b-256 e8a207ec7cb47d56060fc7b0370415f607328388f1bca8c8b7bc81393fccf9e4

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp36-cp36m-manylinux2010_i686.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp36-cp36m-manylinux2010_i686.whl
  • Upload date:
  • Size: 89.4 kB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp36-cp36m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 63e79f010eaa0118c2576d257b75998320a2b5bf15f0a6cc558c659e791f6419
MD5 fde20e0732cf26ca19df7bff4b82b9eb
BLAKE2b-256 a3bb9befb37a76a9c224da9434072c514cbf0e6e609c37bafeaf789b41cbc8ec

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 90.6 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 12409a54e6aff86127fe4ab64b0cfa5ac3a26ce3ba2825a7fea7f70ff7d08356
MD5 d6433767922bef2ad923e107feae7714
BLAKE2b-256 51cd93b626c75305ef270c29586c573969e4e30af0093d54e71bad0b72e73fd3

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp36-cp36m-manylinux1_i686.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp36-cp36m-manylinux1_i686.whl
  • Upload date:
  • Size: 89.4 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 9492b1b3dd876e3f1c2054ab932414edec900a50304dc4bc17ac875c7312b747
MD5 aa499ebbaf0ff4d2e411ff21ed5dfa85
BLAKE2b-256 4001bed7947aee9b461ee649fc8d5ce4ea37f02d333ab62ad9252bd637f51e46

See more details on using hashes here.

File details

Details for the file clevercsv-0.6.8-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: clevercsv-0.6.8-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 53.5 kB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for clevercsv-0.6.8-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 89f4b2c5666d64c91964a2c334d7ea54b117d31a08b23045c6fe90d20a6e01b2
MD5 1c38d10b4b259d812fb9dfee829a46cc
BLAKE2b-256 dd46580c157662844a15c0d993483cacc28903a231c0e35a59e549af290f3464

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