├── .github └── workflows │ └── test.yml ├── .gitignore ├── LICENSE.txt ├── Makefile ├── README.md ├── benchmark ├── __init__.py ├── backwards.py └── performance.py ├── casanova ├── __init__.py ├── __main__.py ├── cli.py ├── contiguous_range_set.py ├── defaults.py ├── enricher.py ├── exceptions.py ├── headers.py ├── http.py ├── ndjson.py ├── reader.py ├── record.py ├── resumers.py ├── reverse_reader.py ├── serialization.py ├── types.py ├── utils.py └── writer.py ├── docs ├── cli.md └── cli.template.md ├── requirements.txt ├── scripts ├── __init__.py ├── generate_readme.py ├── http.py └── null_byte_writer_error.py ├── setup.py ├── test ├── __init__.py ├── cli_functions.py ├── cli_test.py ├── contiguous_range_set_test.py ├── enricher_test.py ├── headers_test.py ├── inferring_enricher_test.py ├── inferring_writer_test.py ├── reader_test.py ├── record_test.py ├── resources │ ├── batches.csv │ ├── batches_broken_first.csv │ ├── batches_cursor_end.csv │ ├── batches_no_end.csv │ ├── batches_raw.csv │ ├── bom.csv │ ├── count.csv │ ├── empty.csv │ ├── empty_with_headers.csv │ ├── invalid_headers.csv │ ├── latin_1_encoding.csv │ ├── more_people.csv │ ├── multiplex.csv │ ├── no_headers.csv │ ├── people.csv │ ├── people.csv.gz │ ├── people.tsv │ ├── people_unordered.csv │ ├── semicolons.csv │ ├── transposed.csv │ ├── tricky_reverse.csv │ └── with_null_bytes.csv ├── resumer_test.py ├── reverse_reader_test.py ├── serialization_test.py ├── utils.py ├── utils_test.py └── writer_test.py └── tox.ini /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/README.md -------------------------------------------------------------------------------- /benchmark/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /benchmark/backwards.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/benchmark/backwards.py -------------------------------------------------------------------------------- /benchmark/performance.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/benchmark/performance.py -------------------------------------------------------------------------------- /casanova/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/__init__.py -------------------------------------------------------------------------------- /casanova/__main__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/__main__.py -------------------------------------------------------------------------------- /casanova/cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/cli.py -------------------------------------------------------------------------------- /casanova/contiguous_range_set.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/contiguous_range_set.py -------------------------------------------------------------------------------- /casanova/defaults.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/defaults.py -------------------------------------------------------------------------------- /casanova/enricher.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/enricher.py -------------------------------------------------------------------------------- /casanova/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/exceptions.py -------------------------------------------------------------------------------- /casanova/headers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/headers.py -------------------------------------------------------------------------------- /casanova/http.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/http.py -------------------------------------------------------------------------------- /casanova/ndjson.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/ndjson.py -------------------------------------------------------------------------------- /casanova/reader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/reader.py -------------------------------------------------------------------------------- /casanova/record.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/record.py -------------------------------------------------------------------------------- /casanova/resumers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/resumers.py -------------------------------------------------------------------------------- /casanova/reverse_reader.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/reverse_reader.py -------------------------------------------------------------------------------- /casanova/serialization.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/serialization.py -------------------------------------------------------------------------------- /casanova/types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/types.py -------------------------------------------------------------------------------- /casanova/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/utils.py -------------------------------------------------------------------------------- /casanova/writer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/casanova/writer.py -------------------------------------------------------------------------------- /docs/cli.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/docs/cli.md -------------------------------------------------------------------------------- /docs/cli.template.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/docs/cli.template.md -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/requirements.txt -------------------------------------------------------------------------------- /scripts/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /scripts/generate_readme.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/scripts/generate_readme.py -------------------------------------------------------------------------------- /scripts/http.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/scripts/http.py -------------------------------------------------------------------------------- /scripts/null_byte_writer_error.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/scripts/null_byte_writer_error.py -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/setup.py -------------------------------------------------------------------------------- /test/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/cli_functions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/cli_functions.py -------------------------------------------------------------------------------- /test/cli_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/cli_test.py -------------------------------------------------------------------------------- /test/contiguous_range_set_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/contiguous_range_set_test.py -------------------------------------------------------------------------------- /test/enricher_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/enricher_test.py -------------------------------------------------------------------------------- /test/headers_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/headers_test.py -------------------------------------------------------------------------------- /test/inferring_enricher_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/inferring_enricher_test.py -------------------------------------------------------------------------------- /test/inferring_writer_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/inferring_writer_test.py -------------------------------------------------------------------------------- /test/reader_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/reader_test.py -------------------------------------------------------------------------------- /test/record_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/record_test.py -------------------------------------------------------------------------------- /test/resources/batches.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resources/batches.csv -------------------------------------------------------------------------------- /test/resources/batches_broken_first.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resources/batches_broken_first.csv -------------------------------------------------------------------------------- /test/resources/batches_cursor_end.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resources/batches_cursor_end.csv -------------------------------------------------------------------------------- /test/resources/batches_no_end.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resources/batches_no_end.csv -------------------------------------------------------------------------------- /test/resources/batches_raw.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resources/batches_raw.csv -------------------------------------------------------------------------------- /test/resources/bom.csv: -------------------------------------------------------------------------------- 1 | name,color 2 | John,blue 3 | Mary,green 4 | -------------------------------------------------------------------------------- /test/resources/count.csv: -------------------------------------------------------------------------------- 1 | n 2 | 1 3 | 2 4 | 3 -------------------------------------------------------------------------------- /test/resources/empty.csv: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/resources/empty_with_headers.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resources/empty_with_headers.csv -------------------------------------------------------------------------------- /test/resources/invalid_headers.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resources/invalid_headers.csv -------------------------------------------------------------------------------- /test/resources/latin_1_encoding.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resources/latin_1_encoding.csv -------------------------------------------------------------------------------- /test/resources/more_people.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resources/more_people.csv -------------------------------------------------------------------------------- /test/resources/multiplex.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resources/multiplex.csv -------------------------------------------------------------------------------- /test/resources/no_headers.csv: -------------------------------------------------------------------------------- 1 | John,Matthews 2 | Mary,Sue 3 | Julia,Stone 4 | -------------------------------------------------------------------------------- /test/resources/people.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resources/people.csv -------------------------------------------------------------------------------- /test/resources/people.csv.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resources/people.csv.gz -------------------------------------------------------------------------------- /test/resources/people.tsv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resources/people.tsv -------------------------------------------------------------------------------- /test/resources/people_unordered.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resources/people_unordered.csv -------------------------------------------------------------------------------- /test/resources/semicolons.csv: -------------------------------------------------------------------------------- 1 | name;surname 2 | Rose;Philips 3 | Luke;Atman 4 | -------------------------------------------------------------------------------- /test/resources/transposed.csv: -------------------------------------------------------------------------------- 1 | one,two,three 2 | 35,23,26 -------------------------------------------------------------------------------- /test/resources/tricky_reverse.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resources/tricky_reverse.csv -------------------------------------------------------------------------------- /test/resources/with_null_bytes.csv: -------------------------------------------------------------------------------- 1 | name,surname 2 | John,Zero 3 | Mary,La Croix 4 | -------------------------------------------------------------------------------- /test/resumer_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/resumer_test.py -------------------------------------------------------------------------------- /test/reverse_reader_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/reverse_reader_test.py -------------------------------------------------------------------------------- /test/serialization_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/serialization_test.py -------------------------------------------------------------------------------- /test/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/utils.py -------------------------------------------------------------------------------- /test/utils_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/utils_test.py -------------------------------------------------------------------------------- /test/writer_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/test/writer_test.py -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/medialab/casanova/HEAD/tox.ini --------------------------------------------------------------------------------