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 a 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

License: MIT (see LICENSE file).

Copyright (c) 2019-2020 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.7.tar.gz (61.3 kB view details)

Uploaded Source

Built Distributions

clevercsv-0.6.7-cp39-cp39-win_amd64.whl (60.4 kB view details)

Uploaded CPython 3.9 Windows x86-64

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

Uploaded CPython 3.9 Windows x86

clevercsv-0.6.7-cp39-cp39-manylinux2010_x86_64.whl (91.2 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

clevercsv-0.6.7-cp39-cp39-manylinux2010_i686.whl (90.0 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

clevercsv-0.6.7-cp39-cp39-manylinux1_x86_64.whl (91.2 kB view details)

Uploaded CPython 3.9

clevercsv-0.6.7-cp39-cp39-manylinux1_i686.whl (90.0 kB view details)

Uploaded CPython 3.9

clevercsv-0.6.7-cp39-cp39-macosx_10_9_x86_64.whl (53.6 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

clevercsv-0.6.7-cp38-cp38-win_amd64.whl (60.4 kB view details)

Uploaded CPython 3.8 Windows x86-64

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

Uploaded CPython 3.8 Windows x86

clevercsv-0.6.7-cp38-cp38-manylinux2010_x86_64.whl (92.1 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

clevercsv-0.6.7-cp38-cp38-manylinux1_x86_64.whl (92.1 kB view details)

Uploaded CPython 3.8

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

Uploaded CPython 3.8

clevercsv-0.6.7-cp38-cp38-macosx_10_9_x86_64.whl (53.6 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

clevercsv-0.6.7-cp37-cp37m-win_amd64.whl (60.3 kB view details)

Uploaded CPython 3.7m Windows x86-64

clevercsv-0.6.7-cp37-cp37m-win32.whl (59.0 kB view details)

Uploaded CPython 3.7m Windows x86

clevercsv-0.6.7-cp37-cp37m-manylinux2010_x86_64.whl (92.3 kB view details)

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

clevercsv-0.6.7-cp37-cp37m-manylinux2010_i686.whl (91.1 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

clevercsv-0.6.7-cp37-cp37m-manylinux1_x86_64.whl (92.3 kB view details)

Uploaded CPython 3.7m

clevercsv-0.6.7-cp37-cp37m-manylinux1_i686.whl (91.1 kB view details)

Uploaded CPython 3.7m

clevercsv-0.6.7-cp37-cp37m-macosx_10_9_x86_64.whl (53.4 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

clevercsv-0.6.7-cp36-cp36m-win_amd64.whl (60.3 kB view details)

Uploaded CPython 3.6m Windows x86-64

clevercsv-0.6.7-cp36-cp36m-win32.whl (59.0 kB view details)

Uploaded CPython 3.6m Windows x86

clevercsv-0.6.7-cp36-cp36m-manylinux2010_x86_64.whl (90.5 kB view details)

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

clevercsv-0.6.7-cp36-cp36m-manylinux2010_i686.whl (89.3 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ i686

clevercsv-0.6.7-cp36-cp36m-manylinux1_x86_64.whl (90.5 kB view details)

Uploaded CPython 3.6m

clevercsv-0.6.7-cp36-cp36m-manylinux1_i686.whl (89.3 kB view details)

Uploaded CPython 3.6m

clevercsv-0.6.7-cp36-cp36m-macosx_10_9_x86_64.whl (53.4 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: clevercsv-0.6.7.tar.gz
  • Upload date:
  • Size: 61.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7.tar.gz
Algorithm Hash digest
SHA256 e2f26567f44f89dc48f83a7c244ca7625207e628d55b3f6c825d26a6af42dcf2
MD5 1268cd746149744a16e7952bdad2fe2c
BLAKE2b-256 f61a6b8667a70b74278e55f2266eaf783fdc75971e1e1b8e195a2b347774853c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 60.4 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 175d469b1a1b1e991d247048856b2a21b1050384e30535a277b7987fa84a4dda
MD5 617577b4bbee3899559eb7ffa7ff8662
BLAKE2b-256 f1999d7fb2546d5caef0588bf25dee004790c15afa93ace7ef48496e1376df92

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-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.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 16db16c40a501051967c12467e600ce8453f178c5772d86897038fc83c5cb415
MD5 d0f4942f372ee2750b35e3879f5af311
BLAKE2b-256 7e6cbb9872b754a09d9deddc59fd1a428aa22bb6500eca87f3eb4d90a083a280

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 91.2 kB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 67338f20915f321e86c1294c76feb714305ecc93fd96affa870f122c5fe12a21
MD5 3f9ba63b5b4cae9587ffbd4ae47e2461
BLAKE2b-256 8b9cc84a9fc41155b91b665b70d816867860b10565bec4f8039b102704691bc0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp39-cp39-manylinux2010_i686.whl
  • Upload date:
  • Size: 90.0 kB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp39-cp39-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 c73271f82e84ac9e57951b827770b8973ba6d4b16bc2187e5450c0efcd4e9302
MD5 4fcda7b6c23ca080aa4fbe442158e140
BLAKE2b-256 aa354230c9a63ea3f93ac8cf883dffa1438547c5cc34201cff076b0f595acb68

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp39-cp39-manylinux1_x86_64.whl
  • Upload date:
  • Size: 91.2 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp39-cp39-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 7deb228596296b46ccfb40e2a14c8d8d251b67f884105c54aba9cffbcdc130e8
MD5 fb2855d6d97e4e69c6de2f19a1ee45a1
BLAKE2b-256 ec790b735e0d76042ab61b45b45b751ec57b7ce4e05d488018b0bd325f814afd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp39-cp39-manylinux1_i686.whl
  • Upload date:
  • Size: 90.0 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp39-cp39-manylinux1_i686.whl
Algorithm Hash digest
SHA256 b00ade7248cf7e557ed081c9b67af26a6fe21c60f96ca7773af961cc28254cd3
MD5 90907fdd20b4bcbf86cbb9349460b1f4
BLAKE2b-256 28767f1bb0f600eea1100768b66fa7ac3f03641cda066b31fcb7246c5009dc92

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 53.6 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3a0fc9250c8d8a35f4ee1ef79b91772e6742c0ce6358751e50cf3a5023699bfe
MD5 dfa589950d4942491dd481abdcc6e086
BLAKE2b-256 85eb880fae2dda50bfd2635adf44c856797e67a043fea55c63536cec85fdcd89

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 60.4 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 c97b46ced95908bfdf058ad8eaf85ece4788ec7ce32d705bfe8e2d04536bbb74
MD5 2902fbd1af31a91a43c030143d2066c3
BLAKE2b-256 4d3415e92443dbc713a7c8ba932c83a83849b4060b3e9a6a80cab3ec11247103

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-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.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 21f0b7b8c3a667018f376f1aa6d15827903b43a005fb4314d7b670d4089da7f1
MD5 a2c4db13ca6025911bfb75cebc9cad41
BLAKE2b-256 f99782deb5571bfb7c97910a4925752fe3de8fea9a0ef064c3eb1d1d4c10f41e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 92.1 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 daf94252646e06378b0b177f7d63b96b47957c4b173c5fa35914f91259845986
MD5 58fa3b3deb1ba3c02cbbf2e45a1b0baf
BLAKE2b-256 3c140a282957bd5004477717f8459a2b97e8d7d446e907998f951c4ef162ca68

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-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.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp38-cp38-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 b89a05a347da3250d3748d5725839a816570c9c30ec4501604804a4395924aa3
MD5 f3b93b31e2519baf82ee1d0cecb00c8d
BLAKE2b-256 ee86dabfefec55e1f093189dbb60a625fe7144a8ea48c8ab10b98e27cc9e0fc2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 92.1 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 5ea5b873498eea5c88c20dbf60f9a3eade9e55f2c37d316914e8e828d7abf037
MD5 0f3312751e124535fcd708ec149fdc27
BLAKE2b-256 1a790ac008270759167d8f3f34e8e79e30624003b50a3d475837b98cade93385

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp38-cp38-manylinux1_i686.whl
  • Upload date:
  • Size: 91.0 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp38-cp38-manylinux1_i686.whl
Algorithm Hash digest
SHA256 bfe836c4d4ea9e3c7e00bd54b2045461b6b4c4108974ef086e331e2c678606d9
MD5 db9be56c2c6ff2568c8e75fab1706033
BLAKE2b-256 adff92d80b84850160049f804f259ce951cdb5ecbcab9cb2d7aae027c4fdcf3e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 53.6 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d8d4980753ebc58d0bdb408cf8abed7d21444ef88284f453b7aee18f1a103022
MD5 0b87d90d830bc167e5b3768945eb59f3
BLAKE2b-256 7dca2125bb447c7ae9c555750d2821d540e4621f78bd86b39bd30c0dd44770ea

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 60.3 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 35cb4927c552001a7656bccd5ad51f7442d333f6285f07808874be382e2e95bc
MD5 7a44346fd5a5106d124b7d9b8d4c4633
BLAKE2b-256 eeee14f8d7a8e41b3f5b188596c3612df3154f41c90bcccd4f54d5d98819e8f2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 59.0 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 9ae58e6aa60036b50a4a01557cf4520a877025179e796401628069114714dabe
MD5 f32d359a9d74c1cce3480702c0b2ce33
BLAKE2b-256 b6be6594118a243bbc2d7eec29fd8554a0d368aaf3cf0f78fcb0d5ca6486fa99

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 92.3 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 621e5334617ba7a43e3905f8fb84b6fd04179b11efffac6466397127b44014e4
MD5 c164471ec491bc12f24b479bcb4e9e8b
BLAKE2b-256 faf5b086e8f66d9347e2d4b2190ca217b73298d13f4127760d828264d66adc17

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp37-cp37m-manylinux2010_i686.whl
  • Upload date:
  • Size: 91.1 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp37-cp37m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 7548a04215fff90234111d786e2d2222d7979e0991fc099b0f43c0a78f1f9ff1
MD5 7a3e5cc99ea91deff8397039d9277d1a
BLAKE2b-256 8bb2387095601d8af1f60e83ee2cf6bfd473f3c1dd804710da39b8fe306142eb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 92.3 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 117cd5eb9529e4705519c7dca646fcf6a0c105a8663dc83ce64acf73cedf6ae5
MD5 48c31e60ac0b062c727ce76de53d60de
BLAKE2b-256 1113c260f17e98b6b0f94ca0a7e2cd325f5d8650b6708024ad953bb63b57bbf7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp37-cp37m-manylinux1_i686.whl
  • Upload date:
  • Size: 91.1 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp37-cp37m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 bb6886371856865305b17c596a671fd2d0135b70d33c785f8db65d267f50ce9c
MD5 a7bcbd3824d6536660d183e56532be9b
BLAKE2b-256 e78fd84e9330e644200606ea28822bb5e1f9727d25c1afe8d69e2d7445155fcc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 53.4 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ec98ffed2ef0b173dafad6a8f510aa4a751f6f353575ff83fb713151ba8a456e
MD5 61f6e7237d946550b87ba1a39447abf2
BLAKE2b-256 1e7d2246e91fecd09ab34ccf77798f8b812ea7faf147e27660ac0afbb2557721

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 60.3 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 79d38966afd9a1ae9bd1bb8f002c02b64271af130c8452342aec1302e92e6133
MD5 bf16a6279d94ac713416a18823f84084
BLAKE2b-256 cd18e3810663f9c8ab7a0b28b4574846cb241d3172973121565416ec19fa982e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 59.0 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 e0e3c0e44c0631cb0bc535b4b85630cd0fba8cde1c5a463ca7220c0e9d574fac
MD5 bd8556103b37a27d246027012f5352b4
BLAKE2b-256 0c75828333cdbcc4497ce3ac1f320c196190f33783a2ab451fa84652acb48c0e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 90.5 kB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 acbc286192bc14bb577609ad926345afd118b50c493bbe85d9617d7bc06027ed
MD5 cd6919c0a937e9d974b43327fff16056
BLAKE2b-256 231641f797396c58e59b6e567caeb621e300dfdcd0797d87e1a8ebe430d12418

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp36-cp36m-manylinux2010_i686.whl
  • Upload date:
  • Size: 89.3 kB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp36-cp36m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 1a466d79b9018e279da5974db5c4ef1cae710a2bdabf5d4484191b7995f89af1
MD5 71b5c7c15710dfdd02e318f0bfadb306
BLAKE2b-256 67e66517b1264d8bcc3c59fdaf6d381da79a6071f3bdcb70637ac746bab4dd54

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 90.5 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 29e19949ee3499a76d07add1964a435dc0bb1d6e0ef48c1f7f282e36029c2269
MD5 e587ec65317152ed69e4b257753e08a4
BLAKE2b-256 41579e4650e5962cc973e9d2634bac41f9be2d7a5cdc476852229008c34b17a0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp36-cp36m-manylinux1_i686.whl
  • Upload date:
  • Size: 89.3 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 d51d81ae452e875f0c7fec843884c54bcd766cee61edc2c6535edc1404b7cef9
MD5 cba3aee3d691e45503699e594fd89f41
BLAKE2b-256 8910f8fc435e05a5f931982f258c269b934dd0ed09a868e8df960b71bbd439c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.7-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 53.4 kB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.7

File hashes

Hashes for clevercsv-0.6.7-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d82444213c78277ae13343b6f0915644903b3749118355f1b1f67d5edd83f43c
MD5 8b46e2ef0032792af1548dee78134100
BLAKE2b-256 7c7f8128c9860861e4e63e3bff32be17d149cfe68b0878f825724daa247d24f9

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