(lines, converter, *, headers=None)
| 6 | log = logging.getLogger(__name__) |
| 7 | |
| 8 | def convert_csv(lines, converter, *, headers=None): |
| 9 | rows = csv.reader(lines) |
| 10 | if headers is None: |
| 11 | headers = next(rows) |
| 12 | |
| 13 | records = [] |
| 14 | for rowno, row in enumerate(rows, start=1): |
| 15 | try: |
| 16 | records.append(converter(headers, row)) |
| 17 | except ValueError as e: |
| 18 | log.warning('Row %s: Bad row: %s', rowno, row) |
| 19 | log.debug('Row %s: Reason: %s', rowno, row) |
| 20 | return records |
| 21 | |
| 22 | def csv_as_dicts(lines, types, *, headers=None): |
| 23 | return convert_csv(lines, |
no test coverage detected