# Finds the right CSV separator and excludes bad lines
#### Example:
```python
# You have probably seen this before, right?
import pandas as pd
pd.read_csv(r"https://github.com/zdavatz/diprela/raw/main/csv/diprela.csv")
Traceback (most recent call last):
File "C:\Users\Gamer\anaconda3\envs\dfdir\lib\site-packages\IPython\core\interactiveshell.py", line 3398, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-8-c5703c9ae399>", line 1, in <cell line: 1>
....
File "pandas\_libs\parsers.pyx", line 1973, in pandas._libs.parsers.raise_parser_error
pandas.errors.ParserError: Error tokenizing data. C error: Expected 1 fields in line 3, saw 10
pd.read_csv(r"https://github.com/zdavatz/diprela/raw/main/csv/diprela.csv",on_bad_lines='skip')
# Better, but everything in one column, and we have lost about 600 rows.
Schweizerische Nährwertdatenbank komplett (bearbeitet durch Lesley Grünenfelder) (Stand: 11.02.2023) ;;;;;;;;;;;;;;;;;;;;;;;;;;;Schweizerische Nährwertdatenbank komplett (bearbeitet durch Lesley Grünenfelder) (Stand: 30.01.2023) ;;;;;;;;;;;;;;;;;;;;;
0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1 Agar Agar;;Gelier- und Bindemittel ;Verschiede...
2 Agavensirup;Agavendicksaft ;Zucker und Süsssto...
3 Ahornsirup;;Zucker und Süssstoffe;Verschiedene...
4 Älplermagronen;zubereitet;salzige Gerichte ;Ge...
.. ...
521 Zwieback ;;Brot und Backware ;Getreide und Get...
522 Zwieback;Vollkorn;Brot und Backware ;Getreide ...
523 Zwiebel;gedünstet (ohne Zugabe von Fett und Sa...
524 Zwiebel;geröstet (ohne Zugabe von Fett und Sal...
525 Zwiebel;roh;Gemüse frisch ;Gemüse ;pro 100g es...
[526 rows x 1 columns]
# If you have problems reading a CSV file, use:
from outguncsv import read_balky_csv_files
alf3 = r"https://github.com/zdavatz/diprela/raw/main/csv/diprela.csv"
df3 = read_balky_csv_files(
csvfiles=alf3,
encoding="utf-8",
sep=None,
regexremove=(),
filepathcolumn="file",
on_bad_lines="warn",
)
df3
Out[4]:
0 ... file
0 Schweizerische Nährwertdatenbank komplett (bea... ... https://github.com/zdavatz/diprela/raw/main/cs...
1 NaN ... https://github.com/zdavatz/diprela/raw/main/cs...
2 Name ... https://github.com/zdavatz/diprela/raw/main/cs...
3 Agar Agar ... https://github.com/zdavatz/diprela/raw/main/cs...
4 Agavensirup ... https://github.com/zdavatz/diprela/raw/main/cs...
... ... ...
1213 Zwiebel ... https://github.com/zdavatz/diprela/raw/main/cs...
1214 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...
1215 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...
1216 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...
1217 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...
[1218 rows x 50 columns]
```
```python
from outguncsv import read_balky_csv_files
import glob
alf = glob.glob(
r"C:\Users\Gamer\Documents\Downloads\anyascii-master\input\tables\*.tsv"
)
df = read_balky_csv_files(
csvfiles=alf, # list or string (url/file path)
encoding="utf-8",
sep=None, # if None, it does its best to find the best separator
regexremove=(), # remove lines, regex must be in binary: rb"^\s*#\s+.*$",
filepathcolumn="file", # a new colum will be created with the file path
on_bad_lines="skip", # use either skip or warn, it won't work with error
# for *args, **kwargs -> https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html
)
alf = r"https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv"
df2 = read_balky_csv_files(
csvfiles=alf,
encoding="utf-8",
sep=None,
regexremove=(),
filepathcolumn="file",
on_bad_lines="skip",
)
alf3 = r"https://github.com/zdavatz/diprela/raw/main/csv/diprela.csv"
df3 = read_balky_csv_files(
csvfiles=alf3,
encoding="utf-8",
sep=None,
regexremove=(),
filepathcolumn="file",
on_bad_lines="warn",
)
alf4 = "https://github.com/curran/data/raw/gh-pages/migrants/events.csv"
df4 = read_balky_csv_files(
csvfiles=alf4,
encoding="utf-8",
sep=",",
regexremove=(),
filepathcolumn="file",
on_bad_lines="skip",
)
df
Out[3]:
0 1 file
0 𞤢 a C:\Users\Gamer\Documents\Downloads\anyascii-ma...
1 𞤣 d C:\Users\Gamer\Documents\Downloads\anyascii-ma...
2 𞤤 l C:\Users\Gamer\Documents\Downloads\anyascii-ma...
3 𞤥 m C:\Users\Gamer\Documents\Downloads\anyascii-ma...
4 𞤦 b C:\Users\Gamer\Documents\Downloads\anyascii-ma...
.. .. ...
14439 𜾿 - C:\Users\Gamer\Documents\Downloads\anyascii-ma...
14440 𜿀 - C:\Users\Gamer\Documents\Downloads\anyascii-ma...
14441 𜿁 - C:\Users\Gamer\Documents\Downloads\anyascii-ma...
14442 𜿂 - C:\Users\Gamer\Documents\Downloads\anyascii-ma...
14443 𜿃 - C:\Users\Gamer\Documents\Downloads\anyascii-ma...
[14444 rows x 3 columns]
df2
Out[4]:
0 1 2 ... 10 11 file
0 1 0 3 ... NaN S https://raw.githubusercontent.com/pandas-dev/p...
1 2 1 1 ... C85 C https://raw.githubusercontent.com/pandas-dev/p...
2 3 1 3 ... NaN S https://raw.githubusercontent.com/pandas-dev/p...
3 4 1 1 ... C123 S https://raw.githubusercontent.com/pandas-dev/p...
4 5 0 3 ... NaN S https://raw.githubusercontent.com/pandas-dev/p...
.. ... .. .. ... ... .. ...
886 887 0 2 ... NaN S https://raw.githubusercontent.com/pandas-dev/p...
887 888 1 1 ... B42 S https://raw.githubusercontent.com/pandas-dev/p...
888 889 0 3 ... NaN S https://raw.githubusercontent.com/pandas-dev/p...
889 890 1 1 ... C148 C https://raw.githubusercontent.com/pandas-dev/p...
890 891 0 3 ... NaN Q https://raw.githubusercontent.com/pandas-dev/p...
[891 rows x 13 columns]
df3
Out[5]:
0 ... file
0 Schweizerische Nährwertdatenbank komplett (bea... ... https://github.com/zdavatz/diprela/raw/main/cs...
1 NaN ... https://github.com/zdavatz/diprela/raw/main/cs...
2 Name ... https://github.com/zdavatz/diprela/raw/main/cs...
3 Agar Agar ... https://github.com/zdavatz/diprela/raw/main/cs...
4 Agavensirup ... https://github.com/zdavatz/diprela/raw/main/cs...
... ... ...
1213 Zwiebel ... https://github.com/zdavatz/diprela/raw/main/cs...
1214 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...
1215 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...
1216 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...
1217 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...
[1218 rows x 50 columns]
df4
Out[6]:
0 ... file
0 NaN ... https://github.com/curran/data/raw/gh-pages/mi...
1 57234.0 ... https://github.com/curran/data/raw/gh-pages/mi...
2 56633.0 ... https://github.com/curran/data/raw/gh-pages/mi...
3 72740.0 ... https://github.com/curran/data/raw/gh-pages/mi...
4 55194.0 ... https://github.com/curran/data/raw/gh-pages/mi...
.. ... ... ...
955 36496.0 ... https://github.com/curran/data/raw/gh-pages/mi...
956 36500.0 ... https://github.com/curran/data/raw/gh-pages/mi...
957 36499.0 ... https://github.com/curran/data/raw/gh-pages/mi...
958 36503.0 ... https://github.com/curran/data/raw/gh-pages/mi...
959 36502.0 ... https://github.com/curran/data/raw/gh-pages/mi...
[960 rows x 22 columns]
```
Raw data
{
"_id": null,
"home_page": "https://github.com/hansalemaos/outguncsv",
"name": "outguncsv",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "pandas,read_csv,corrupt,csv,numpy",
"author": "Johannes Fischer",
"author_email": "<aulasparticularesdealemaosp@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/a9/43/7adc585a7fd5a9887f794d7e0f9d8e79fa84e37b3be7525c9035de80bcf6/outguncsv-0.11.tar.gz",
"platform": null,
"description": "\r\n\r\n\r\n# Finds the right CSV separator and excludes bad lines\r\n\r\n\r\n\r\n#### Example:\r\n\r\n```python\r\n\r\n\r\n\r\n# You have probably seen this before, right?\r\n\r\nimport pandas as pd\r\n\r\npd.read_csv(r\"https://github.com/zdavatz/diprela/raw/main/csv/diprela.csv\")\r\n\r\nTraceback (most recent call last):\r\n\r\n File \"C:\\Users\\Gamer\\anaconda3\\envs\\dfdir\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3398, in run_code\r\n\r\n exec(code_obj, self.user_global_ns, self.user_ns)\r\n\r\n File \"<ipython-input-8-c5703c9ae399>\", line 1, in <cell line: 1>\r\n\r\n ....\r\n\r\n File \"pandas\\_libs\\parsers.pyx\", line 1973, in pandas._libs.parsers.raise_parser_error\r\n\r\npandas.errors.ParserError: Error tokenizing data. C error: Expected 1 fields in line 3, saw 10\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\npd.read_csv(r\"https://github.com/zdavatz/diprela/raw/main/csv/diprela.csv\",on_bad_lines='skip')\r\n\r\n# Better, but everything in one column, and we have lost about 600 rows. \r\n\r\n Schweizerische N\u00e4hrwertdatenbank komplett (bearbeitet durch Lesley Gr\u00fcnenfelder) (Stand: 11.02.2023) ;;;;;;;;;;;;;;;;;;;;;;;;;;;Schweizerische N\u00e4hrwertdatenbank komplett (bearbeitet durch Lesley Gr\u00fcnenfelder) (Stand: 30.01.2023) ;;;;;;;;;;;;;;;;;;;;;\r\n\r\n0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; \r\n\r\n1 Agar Agar;;Gelier- und Bindemittel ;Verschiede... \r\n\r\n2 Agavensirup;Agavendicksaft ;Zucker und S\u00fcsssto... \r\n\r\n3 Ahornsirup;;Zucker und S\u00fcssstoffe;Verschiedene... \r\n\r\n4 \u00c4lplermagronen;zubereitet;salzige Gerichte ;Ge... \r\n\r\n.. ... \r\n\r\n521 Zwieback ;;Brot und Backware ;Getreide und Get... \r\n\r\n522 Zwieback;Vollkorn;Brot und Backware ;Getreide ... \r\n\r\n523 Zwiebel;ged\u00fcnstet (ohne Zugabe von Fett und Sa... \r\n\r\n524 Zwiebel;ger\u00f6stet (ohne Zugabe von Fett und Sal... \r\n\r\n525 Zwiebel;roh;Gem\u00fcse frisch ;Gem\u00fcse ;pro 100g es... \r\n\r\n[526 rows x 1 columns]\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n# If you have problems reading a CSV file, use: \r\n\r\nfrom outguncsv import read_balky_csv_files\r\n\r\nalf3 = r\"https://github.com/zdavatz/diprela/raw/main/csv/diprela.csv\"\r\n\r\ndf3 = read_balky_csv_files(\r\n\r\n csvfiles=alf3,\r\n\r\n encoding=\"utf-8\",\r\n\r\n sep=None,\r\n\r\n regexremove=(),\r\n\r\n filepathcolumn=\"file\",\r\n\r\n on_bad_lines=\"warn\",\r\n\r\n)\r\n\r\n\r\n\r\n\r\n\r\ndf3\r\n\r\nOut[4]: \r\n\r\n 0 ... file\r\n\r\n0 Schweizerische N\u00e4hrwertdatenbank komplett (bea... ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n1 NaN ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n2 Name ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n3 Agar Agar ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n4 Agavensirup ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n ... ... ...\r\n\r\n1213 Zwiebel ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n1214 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n1215 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n1216 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n1217 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n[1218 rows x 50 columns]\r\n\r\n\r\n\r\n\r\n\r\n```\r\n\r\n\r\n\r\n```python\r\n\r\nfrom outguncsv import read_balky_csv_files\r\n\r\nimport glob\r\n\r\nalf = glob.glob(\r\n\r\n r\"C:\\Users\\Gamer\\Documents\\Downloads\\anyascii-master\\input\\tables\\*.tsv\"\r\n\r\n)\r\n\r\ndf = read_balky_csv_files(\r\n\r\n csvfiles=alf, # list or string (url/file path)\r\n\r\n encoding=\"utf-8\",\r\n\r\n sep=None, # if None, it does its best to find the best separator\r\n\r\n regexremove=(), # remove lines, regex must be in binary: rb\"^\\s*#\\s+.*$\",\r\n\r\n filepathcolumn=\"file\", # a new colum will be created with the file path\r\n\r\n on_bad_lines=\"skip\", # use either skip or warn, it won't work with error\r\n\r\n # for *args, **kwargs -> https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html\r\n\r\n\t\r\n\r\n\t\r\n\r\n)\r\n\r\n\r\n\r\nalf = r\"https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv\"\r\n\r\ndf2 = read_balky_csv_files(\r\n\r\n csvfiles=alf,\r\n\r\n encoding=\"utf-8\",\r\n\r\n sep=None,\r\n\r\n regexremove=(),\r\n\r\n filepathcolumn=\"file\",\r\n\r\n on_bad_lines=\"skip\",\r\n\r\n)\r\n\r\nalf3 = r\"https://github.com/zdavatz/diprela/raw/main/csv/diprela.csv\"\r\n\r\ndf3 = read_balky_csv_files(\r\n\r\n csvfiles=alf3,\r\n\r\n encoding=\"utf-8\",\r\n\r\n sep=None,\r\n\r\n regexremove=(),\r\n\r\n filepathcolumn=\"file\",\r\n\r\n on_bad_lines=\"warn\",\r\n\r\n)\r\n\r\nalf4 = \"https://github.com/curran/data/raw/gh-pages/migrants/events.csv\"\r\n\r\ndf4 = read_balky_csv_files(\r\n\r\n csvfiles=alf4,\r\n\r\n encoding=\"utf-8\",\r\n\r\n sep=\",\",\r\n\r\n regexremove=(),\r\n\r\n filepathcolumn=\"file\",\r\n\r\n on_bad_lines=\"skip\",\r\n\r\n)\r\n\r\n\r\n\r\n\r\n\r\ndf\r\n\r\nOut[3]: \r\n\r\n 0 1 file\r\n\r\n0 \ud83a\udd22 a C:\\Users\\Gamer\\Documents\\Downloads\\anyascii-ma...\r\n\r\n1 \ud83a\udd23 d C:\\Users\\Gamer\\Documents\\Downloads\\anyascii-ma...\r\n\r\n2 \ud83a\udd24 l C:\\Users\\Gamer\\Documents\\Downloads\\anyascii-ma...\r\n\r\n3 \ud83a\udd25 m C:\\Users\\Gamer\\Documents\\Downloads\\anyascii-ma...\r\n\r\n4 \ud83a\udd26 b C:\\Users\\Gamer\\Documents\\Downloads\\anyascii-ma...\r\n\r\n .. .. ...\r\n\r\n14439 \ud833\udfbf - C:\\Users\\Gamer\\Documents\\Downloads\\anyascii-ma...\r\n\r\n14440 \ud833\udfc0 - C:\\Users\\Gamer\\Documents\\Downloads\\anyascii-ma...\r\n\r\n14441 \ud833\udfc1 - C:\\Users\\Gamer\\Documents\\Downloads\\anyascii-ma...\r\n\r\n14442 \ud833\udfc2 - C:\\Users\\Gamer\\Documents\\Downloads\\anyascii-ma...\r\n\r\n14443 \ud833\udfc3 - C:\\Users\\Gamer\\Documents\\Downloads\\anyascii-ma...\r\n\r\n[14444 rows x 3 columns]\r\n\r\ndf2\r\n\r\nOut[4]: \r\n\r\n 0 1 2 ... 10 11 file\r\n\r\n0 1 0 3 ... NaN S https://raw.githubusercontent.com/pandas-dev/p...\r\n\r\n1 2 1 1 ... C85 C https://raw.githubusercontent.com/pandas-dev/p...\r\n\r\n2 3 1 3 ... NaN S https://raw.githubusercontent.com/pandas-dev/p...\r\n\r\n3 4 1 1 ... C123 S https://raw.githubusercontent.com/pandas-dev/p...\r\n\r\n4 5 0 3 ... NaN S https://raw.githubusercontent.com/pandas-dev/p...\r\n\r\n.. ... .. .. ... ... .. ...\r\n\r\n886 887 0 2 ... NaN S https://raw.githubusercontent.com/pandas-dev/p...\r\n\r\n887 888 1 1 ... B42 S https://raw.githubusercontent.com/pandas-dev/p...\r\n\r\n888 889 0 3 ... NaN S https://raw.githubusercontent.com/pandas-dev/p...\r\n\r\n889 890 1 1 ... C148 C https://raw.githubusercontent.com/pandas-dev/p...\r\n\r\n890 891 0 3 ... NaN Q https://raw.githubusercontent.com/pandas-dev/p...\r\n\r\n[891 rows x 13 columns]\r\n\r\ndf3\r\n\r\nOut[5]: \r\n\r\n 0 ... file\r\n\r\n0 Schweizerische N\u00e4hrwertdatenbank komplett (bea... ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n1 NaN ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n2 Name ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n3 Agar Agar ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n4 Agavensirup ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n ... ... ...\r\n\r\n1213 Zwiebel ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n1214 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n1215 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n1216 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n1217 Zwiebelkuchen ... https://github.com/zdavatz/diprela/raw/main/cs...\r\n\r\n[1218 rows x 50 columns]\r\n\r\ndf4\r\n\r\nOut[6]: \r\n\r\n 0 ... file\r\n\r\n0 NaN ... https://github.com/curran/data/raw/gh-pages/mi...\r\n\r\n1 57234.0 ... https://github.com/curran/data/raw/gh-pages/mi...\r\n\r\n2 56633.0 ... https://github.com/curran/data/raw/gh-pages/mi...\r\n\r\n3 72740.0 ... https://github.com/curran/data/raw/gh-pages/mi...\r\n\r\n4 55194.0 ... https://github.com/curran/data/raw/gh-pages/mi...\r\n\r\n.. ... ... ...\r\n\r\n955 36496.0 ... https://github.com/curran/data/raw/gh-pages/mi...\r\n\r\n956 36500.0 ... https://github.com/curran/data/raw/gh-pages/mi...\r\n\r\n957 36499.0 ... https://github.com/curran/data/raw/gh-pages/mi...\r\n\r\n958 36503.0 ... https://github.com/curran/data/raw/gh-pages/mi...\r\n\r\n959 36502.0 ... https://github.com/curran/data/raw/gh-pages/mi...\r\n\r\n[960 rows x 22 columns]\r\n\r\n```\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Finds the right CSV separator and excludes bad lines in corrupt CSV files",
"version": "0.11",
"split_keywords": [
"pandas",
"read_csv",
"corrupt",
"csv",
"numpy"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f9a72e229a126364a1095274624608dfca18ea10c36c7f7b2101db20eaa03c5e",
"md5": "6925ffbcee1e2b0ce542e0a8ee3fa219",
"sha256": "c287547ee29a727b0d028b37cdc0a00b17b9bd1dfcdee406f28b94a44a23e967"
},
"downloads": -1,
"filename": "outguncsv-0.11-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6925ffbcee1e2b0ce542e0a8ee3fa219",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 13677,
"upload_time": "2023-04-07T12:31:27",
"upload_time_iso_8601": "2023-04-07T12:31:27.872728Z",
"url": "https://files.pythonhosted.org/packages/f9/a7/2e229a126364a1095274624608dfca18ea10c36c7f7b2101db20eaa03c5e/outguncsv-0.11-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a9437adc585a7fd5a9887f794d7e0f9d8e79fa84e37b3be7525c9035de80bcf6",
"md5": "48ea0745687a35002ae4f49b9aa036d8",
"sha256": "a3564be2ea2c99d9b7722a7e25012f9d6c1cf17fec5f9049a931af72b78addaf"
},
"downloads": -1,
"filename": "outguncsv-0.11.tar.gz",
"has_sig": false,
"md5_digest": "48ea0745687a35002ae4f49b9aa036d8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14221,
"upload_time": "2023-04-07T12:31:30",
"upload_time_iso_8601": "2023-04-07T12:31:30.321042Z",
"url": "https://files.pythonhosted.org/packages/a9/43/7adc585a7fd5a9887f794d7e0f9d8e79fa84e37b3be7525c9035de80bcf6/outguncsv-0.11.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-04-07 12:31:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "hansalemaos",
"github_project": "outguncsv",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "pandas",
"specs": []
},
{
"name": "regex",
"specs": []
},
{
"name": "requests",
"specs": []
},
{
"name": "tolerant_isinstance",
"specs": []
}
],
"lcname": "outguncsv"
}