Skip to content

typetester for XLS files #61

@abulte

Description

@abulte

The type tester from #42 (at least Time) seems to break on real world xls files. Those files are included in tests/samples/real_xls in #60. The typetester is set to be removed for XLS files in #60 if we can't find a better solution.

Error traceback:

Traceback (most recent call last):
  File "/Users/alexandre/Developer/Etalab/csvapi/csvapi/csvapi/parseview.py", line 63, in get
    max_file_size=app.config.get('MAX_FILE_SIZE')
  File "/Users/alexandre/Developer/Etalab/csvapi/csvapi/csvapi/parseview.py", line 38, in do_parse
    parse(tmp.name, urlhash, storage, encoding=encoding, sniff_limit=sniff_limit)
  File "/Users/alexandre/Developer/Etalab/csvapi/csvapi/csvapi/parser.py", line 43, in parse
    table = from_excel(filepath)
  File "/Users/alexandre/Developer/Etalab/csvapi/csvapi/csvapi/parser.py", line 33, in from_excel
    return agate.Table.from_xls(filepath, column_types=agate_tester())
  File "/Users/alexandre/Developer/Etalab/csvapi/csvapi/pyenv/lib/python3.7/site-packages/agateexcel/table_xls.py", line 91, in from_xls
    tables[sheet.name] = agate.Table(rows, column_names, **kwargs)
  File "/Users/alexandre/Developer/Etalab/csvapi/csvapi/pyenv/lib/python3.7/site-packages/agate/table/__init__.py", line 109, in __init__
    self._column_types = column_types.run(rows, self._column_names)
  File "/Users/alexandre/Developer/Etalab/csvapi/csvapi/pyenv/lib/python3.7/site-packages/agate/type_tester.py", line 110, in run
    if len(row) > i and not column_type.test(row[i]):
  File "/Users/alexandre/Developer/Etalab/csvapi/csvapi/pyenv/lib/python3.7/site-packages/agate/data_types/base.py", line 29, in test
    self.cast(d)
  File "/Users/alexandre/Developer/Etalab/csvapi/csvapi/csvapi/type_tester.py", line 28, in cast
    if re.match(r"^(?:[01]\d|2[0-3]|\d):[0-5]\d$", d):
  File "/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/re.py", line 173, in match
    return _compile(pattern, flags).match(string)
TypeError: expected string or bytes-like object

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions