refactor: proper class for field info #1730
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a refactoring PR.
Currently, a complex private object
field_info
is created in "Table.__open_row_stream" (resources/table.py) and used in the (non-public) Row__init__
method.This PR introduces the FieldsInfo class that holds the same information but with types and a proper interface.
Next steps / investigation:
create_cell_reader
function, instead of a more directread_cell
, which at first glance would simplify the logic.create_cell_reader
(maybe to reuse thevalue_reader
). This does not seem the right place.value_reader
once and for all (but same question, why create avalue_reader
instead of aread_row
method.schema_sync=True
, instead, create a separate list or mapping of the actual data fields.