(cls, row, **markers)
| 774 | |
| 775 | @classmethod |
| 776 | def from_row(cls, row, **markers): |
| 777 | fixed = tuple(_tables.fix_row(row, **markers)) |
| 778 | if cls is Declaration: |
| 779 | _, _, _, kind, _ = fixed |
| 780 | sub = KIND_CLASSES.get(KIND(kind)) |
| 781 | if not sub or not issubclass(sub, Declaration): |
| 782 | raise TypeError(f'unsupported kind, got {row!r}') |
| 783 | else: |
| 784 | sub = cls |
| 785 | return sub._from_row(fixed) |
| 786 | |
| 787 | @classmethod |
| 788 | def _from_row(cls, row): |