(self, c)
| 324 | return self._parse_start_field(c) |
| 325 | |
| 326 | def _parse_start_field(self, c): |
| 327 | if c == '\n' or c == '\r' or c == '\0': |
| 328 | self.parse_save_field() |
| 329 | self.state = START_RECORD if c == '\0' else EAT_CRNL |
| 330 | elif (c == self.dialect.quotechar and |
| 331 | self.dialect.quoting != QUOTE_NONE): |
| 332 | self.state = IN_QUOTED_FIELD |
| 333 | elif c == self.dialect.escapechar: |
| 334 | self.state = ESCAPED_CHAR |
| 335 | elif c == ' ' and self.dialect.skipinitialspace: |
| 336 | pass # Ignore space at start of field |
| 337 | elif c == self.dialect.delimiter: |
| 338 | # Save empty field |
| 339 | self.parse_save_field() |
| 340 | else: |
| 341 | # Begin new unquoted field |
| 342 | if self.dialect.quoting == QUOTE_NONNUMERIC: |
| 343 | self.numeric_field = True |
| 344 | self.parse_add_char(c) |
| 345 | self.state = IN_FIELD |
| 346 | |
| 347 | def _parse_escaped_char(self, c): |
| 348 | if c == '\n' or c == '\r': |
no test coverage detected