Skip to main content

A Python package for handling messy CSV files

Project description


Travis Build Status PyPI version Documentation Status Downloads chat on gitter 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 | 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

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

Uploaded Source

Built Distributions

clevercsv-0.6.5-cp39-cp39-win_amd64.whl (59.4 kB view details)

Uploaded CPython 3.9 Windows x86-64

clevercsv-0.6.5-cp39-cp39-win32.whl (57.8 kB view details)

Uploaded CPython 3.9 Windows x86

clevercsv-0.6.5-cp38-cp38-win_amd64.whl (59.4 kB view details)

Uploaded CPython 3.8 Windows x86-64

clevercsv-0.6.5-cp38-cp38-win32.whl (57.7 kB view details)

Uploaded CPython 3.8 Windows x86

clevercsv-0.6.5-cp38-cp38-manylinux2010_x86_64.whl (91.6 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

clevercsv-0.6.5-cp38-cp38-manylinux2010_i686.whl (90.5 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

clevercsv-0.6.5-cp38-cp38-manylinux1_x86_64.whl (91.6 kB view details)

Uploaded CPython 3.8

clevercsv-0.6.5-cp38-cp38-manylinux1_i686.whl (90.4 kB view details)

Uploaded CPython 3.8

clevercsv-0.6.5-cp38-cp38-macosx_10_9_x86_64.whl (53.0 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

clevercsv-0.6.5-cp37-cp37m-win_amd64.whl (59.3 kB view details)

Uploaded CPython 3.7m Windows x86-64

clevercsv-0.6.5-cp37-cp37m-win32.whl (57.6 kB view details)

Uploaded CPython 3.7m Windows x86

clevercsv-0.6.5-cp37-cp37m-manylinux2010_x86_64.whl (91.8 kB view details)

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

clevercsv-0.6.5-cp37-cp37m-manylinux2010_i686.whl (90.6 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

clevercsv-0.6.5-cp37-cp37m-manylinux1_x86_64.whl (91.8 kB view details)

Uploaded CPython 3.7m

clevercsv-0.6.5-cp37-cp37m-manylinux1_i686.whl (90.6 kB view details)

Uploaded CPython 3.7m

clevercsv-0.6.5-cp37-cp37m-macosx_10_9_x86_64.whl (52.9 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

clevercsv-0.6.5-cp36-cp36m-win_amd64.whl (59.3 kB view details)

Uploaded CPython 3.6m Windows x86-64

clevercsv-0.6.5-cp36-cp36m-win32.whl (57.6 kB view details)

Uploaded CPython 3.6m Windows x86

clevercsv-0.6.5-cp36-cp36m-manylinux2010_x86_64.whl (90.0 kB view details)

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

clevercsv-0.6.5-cp36-cp36m-manylinux2010_i686.whl (88.8 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ i686

clevercsv-0.6.5-cp36-cp36m-manylinux1_x86_64.whl (90.0 kB view details)

Uploaded CPython 3.6m

clevercsv-0.6.5-cp36-cp36m-manylinux1_i686.whl (88.8 kB view details)

Uploaded CPython 3.6m

clevercsv-0.6.5-cp36-cp36m-macosx_10_9_x86_64.whl (52.9 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: clevercsv-0.6.5.tar.gz
  • Upload date:
  • Size: 62.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

File hashes

Hashes for clevercsv-0.6.5.tar.gz
Algorithm Hash digest
SHA256 01129ca52157f4b5c5e0c357e23b468c614a112cfd2ec15536ed56789a308c94
MD5 c989450162ef1a3d28a95907f8940be1
BLAKE2b-256 70779751398befb6d93ed5b55d80e825c27b1cdd16c524ee0633f0f019dfa275

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 59.4 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.6.8

File hashes

Hashes for clevercsv-0.6.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7f70c80a617ff32acbc2ea1a8832977a249c58ac22012fe9c6216f841e7d3db5
MD5 47d138ea279994c356922511df18f266
BLAKE2b-256 67c7e8d224ec7b5e93c96f279894d38a6e49bc0fce15d7cecb71f35d6163564e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp39-cp39-win32.whl
  • Upload date:
  • Size: 57.8 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.6.8

File hashes

Hashes for clevercsv-0.6.5-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 a0f35b15403829375435004ab5f9fac5b980d7a9425b3d05e1df35ba69e049f3
MD5 fe460f52613623feb6aa6851df5f638a
BLAKE2b-256 8821cdb4f0d4b89f73ad44f2576f8ce1d03a02c4e9f1f23cc16b9329051fa5dc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 59.4 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.6.8

File hashes

Hashes for clevercsv-0.6.5-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 49869db95af51bb2f7d79aa9e1142622dc1d6fe1ea4a2760e80cd49b7a72b22c
MD5 502c5f823899fd6f97018a873e95c0d2
BLAKE2b-256 5989657f78e32cbdd93fb14fcbad7fa946bd32c6227cc31633faf1bfe0dc84d8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp38-cp38-win32.whl
  • Upload date:
  • Size: 57.7 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.6.8

File hashes

Hashes for clevercsv-0.6.5-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 6d5e3360f1f4677ce33339929f02a2915cceddb6c3ec295381fcb4951a428c0d
MD5 626761ea3901aded29b91912d941fb54
BLAKE2b-256 9d0ebc1714cc98cbb900a15059f6fbf89cff33a280143bb56a99bfe14b35cab5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 91.6 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.7.1

File hashes

Hashes for clevercsv-0.6.5-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 25f406656c7efe52b4c16e4c783bd68c7476f5fee672ad98e5ebfd765103fa83
MD5 6fb798f6587252b09811656969b4e45a
BLAKE2b-256 ce1e0fd2078bb6bab6cefa7e2cc908ef0caf3f04c1221744a3827a2f4bac7257

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp38-cp38-manylinux2010_i686.whl
  • Upload date:
  • Size: 90.5 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.7.1

File hashes

Hashes for clevercsv-0.6.5-cp38-cp38-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 05a6e413d3f76d981086e72084dc104d6f7bae2b2fadc3ecee37b5c5ec5ac628
MD5 242dda82daf3b45ecb7ccbfffd645c51
BLAKE2b-256 6be73019f5acdba4b888feec88c5caf8129002ddc5286475c73a75165fefaa9f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 91.6 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.7.1

File hashes

Hashes for clevercsv-0.6.5-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 a2f5f7f32446d000f457a50f8b591ecf27ab739150b169262116f493d17e0ee6
MD5 98c9c1c16cdd1461716e0fb9c63ef5ae
BLAKE2b-256 ace454bb3cf57739c0cd309c11f525ba4c55941050afd585e986f427a8332119

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp38-cp38-manylinux1_i686.whl
  • Upload date:
  • Size: 90.4 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.7.1

File hashes

Hashes for clevercsv-0.6.5-cp38-cp38-manylinux1_i686.whl
Algorithm Hash digest
SHA256 8daf0f2895e48eb125e3a7fcf3fd8512e8c8ec87b1bb878242e0fe15d54fec6d
MD5 ec1fea4de644121a39b241b0b295e945
BLAKE2b-256 61782c068a19496db3ab9672024165d13ecce810d1d95e1f57706bb931e63195

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 53.0 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.8.4

File hashes

Hashes for clevercsv-0.6.5-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1c920c38fad9c51ac582cdcabf5763324b020a20c2758d44b0391560d8545d4e
MD5 2c85250b0685135416053751557071f1
BLAKE2b-256 e1585a1361408d1d0315fc6479c129fd095f5b57578da83e8ee69dab85562df7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 59.3 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.6.8

File hashes

Hashes for clevercsv-0.6.5-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 79430006b50207884a6ed802ad224d6cc16c696ae99edf9a4e1e4909afb5c224
MD5 e6ccbf177aef7bca5937aeb83e0378cb
BLAKE2b-256 4563f0cd54e40ea45c4452bc49902bebc861e681540b50f25f3ae1c0f271ff86

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 57.6 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.6.8

File hashes

Hashes for clevercsv-0.6.5-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 5e2609bfc9caf7fdb7e0925b166b6c21e053f7c2f2c733c204a2e502f1be8b74
MD5 f3089eb017af5a2b3c77f1d331076428
BLAKE2b-256 10790fc39f753b7a8b1b2dce8882474a33b043f42de7da3b1491444df4cb2d1b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 91.8 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.7.1

File hashes

Hashes for clevercsv-0.6.5-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f98735b71a8ca44212fe4cabfe94b14b2844dd327346db5ffb53447fd8465022
MD5 6c2aabef696e901620f7a8605b5a2435
BLAKE2b-256 aafadf28d53057766dd3fd08d8e967ef2e01dc4ed98a4504e70e25e7ad8e9e7a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp37-cp37m-manylinux2010_i686.whl
  • Upload date:
  • Size: 90.6 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.7.1

File hashes

Hashes for clevercsv-0.6.5-cp37-cp37m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 45bd5cc5eb2d65a3f9ce860bb75654eabaea248c6f07cd204cca2d2d4710a9cc
MD5 937b8c4b960314d675ffc87390fa7f32
BLAKE2b-256 ffdc39cd5b7f95f6e63d86f414b050bea900530fa4e541763fda7ed92cc18c83

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 91.8 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.7.1

File hashes

Hashes for clevercsv-0.6.5-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 39dd90a2a43db95df9f7b37b940da6ad956ffe3c75c00ba5a897c1f89c37bb74
MD5 a576bfdc86d467f38387321379805f19
BLAKE2b-256 2d0da19e784988dba80255bced74e21c34a3e1206022ff634eebb317be979c26

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp37-cp37m-manylinux1_i686.whl
  • Upload date:
  • Size: 90.6 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.7.1

File hashes

Hashes for clevercsv-0.6.5-cp37-cp37m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 f893c7fc3ec879191bc323fcbf7f529e26ddf46c7ed09989c8c6e8a3914cfe02
MD5 83e55ad206065d09fa40bf0f4c10a317
BLAKE2b-256 3b09d2d18097cf2b49d3a2e0cfc89324c518ef4a481d34ac3629f9d94a6dc748

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 52.9 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.8.4

File hashes

Hashes for clevercsv-0.6.5-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 84b4fdde5fad712a5af86ac5124da4dac612d85c2a5236d645da37f2a97a8da1
MD5 029fa5e241325b22f475c1a6b694e857
BLAKE2b-256 6817ae8ece82996fc218e40ff77333f6fd5e581a1e5d46406fa340a02a3d7302

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 59.3 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.6.8

File hashes

Hashes for clevercsv-0.6.5-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 ae579c45ad60e23d2c74a4cdd7b530b0194f5593ddac95c9112965c35e3dfb58
MD5 f35e48d8111b7c8e6a1ec1cdac98a5d6
BLAKE2b-256 601f1bf0089b46545e143efff0d2cfab120badc7b69201cc6c13792ffff01957

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 57.6 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.6.8

File hashes

Hashes for clevercsv-0.6.5-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 c4e1e6fb6c6bed724042fbdfc7cee032dcaba6e103c984f09d46257343117000
MD5 947653b9cadf960be32e89cb156a3677
BLAKE2b-256 f819e2b6cd503929fd1afade7d15690c52c1ebde949287f781fd6cb2c20c88f2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 90.0 kB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.7.1

File hashes

Hashes for clevercsv-0.6.5-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 fbc21e3441d38e244a846819c502437f2c1a40c5c1eccca70a385cf7cb0073cf
MD5 9a86d5b569b9e9e8c866317821b80587
BLAKE2b-256 5d13b3c4448655f98980bffbe70e33d5c0edf90240d075747bcab0c091999cc2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp36-cp36m-manylinux2010_i686.whl
  • Upload date:
  • Size: 88.8 kB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.7.1

File hashes

Hashes for clevercsv-0.6.5-cp36-cp36m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 7c9df4d2e5283eaf007507f1e607dbc19fd7cc81eb5341fea5449e3867cd9478
MD5 c18bbea5db49d603af2fadd778e12bb1
BLAKE2b-256 9823edf9b570b735630b94496e79afb04164f083ac6126a14b2bca8303b8b540

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 90.0 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.7.1

File hashes

Hashes for clevercsv-0.6.5-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 8609b6f8b9dc998a96fa56c1331f57da1a8397c5fb926f47910d449e9c7d4a09
MD5 b0d304a8913b5d21d4f6ad7c99abc114
BLAKE2b-256 b1fd923a9c497a15ea3a17ccd60f435ba7f90e294c15eb63625f820f75cdf24a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp36-cp36m-manylinux1_i686.whl
  • Upload date:
  • Size: 88.8 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.7.1

File hashes

Hashes for clevercsv-0.6.5-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 082413d07ff79812161ada57cdf46e77777d4fa7abdc9501e26e27883e63bf32
MD5 53d713d5a52dd9309fc4b458eb4cf9d4
BLAKE2b-256 c50b39461ec113e2cf724d49ba680a8e7a01c43c205e0d70fea3aea94e69055b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: clevercsv-0.6.5-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 52.9 kB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.1 CPython/3.8.4

File hashes

Hashes for clevercsv-0.6.5-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 284087a4f185aab8ec7fc501bb9b3198ebe9d0c79506e829816551104cb72e68
MD5 31df73d0a14b6885ff7a0a67484d4e1a
BLAKE2b-256 65606cf4cd273a8f8d82a3104f351dab8159aa2ad2c7adb3aff9a9b92dbea98f

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