Description:
TDP represents field values in a data file in two ways: a Field or a TransformField. A TransformField is considered a child of the Field class because it represents an in-place transformation to a field or a transformation on a field to create a new field. The situation of a new field being created presents an issue. If the field in which the transform field is derived off of has errors/is malformed, the transform field will still happily apply it's transformation and create the new field because it lacks information about it's parent field. We would like to update the TransformField class to have knowledge of it's parent field's state. This way we aren't performing transformations, validation, and creation on invalid data. This presents another situation. If the TransformField's data is not generated or is converted to a None, the required validation check will throw an error because all TransformFields are required. We can ease this is by setting required=False and trust that the TransformFields newly acquired state info about it's parent will bridge the gap.
Acceptance Criteria:Create a list of functional outcomes that must be achieved to complete this issue
[ ] TransformField has knowledge of it's parent Field's state
[ ] TransformField does not execute if parent Field has any kind of error
[ ] No erroneous errors are generated if the TransformField does not execute
[ ] Testing Checklist has been run and all tests pass
[ ] README is updated, if necessary
Tasks:Create a list of granular, specific work items that must be completed to deliver the desired outcomes of this issue
[ ] Move field validators into the Field class and out of RowSchema
[ ] Update the Field class to run the field validators
[ ] Update the TransformField class to not apply the transformation until field validators have been run
[ ] Apply transformation if the validators do not fail
[ ] Consider letting the TransformField take a Field as a member if it has a parent field. E.g. CALENDAR_QUARTER -> RPT_MONTH_YEAR in the T6, M6 and Tribal T6 records.
[ ] Run Testing Checklist and confirm all tests pass
Notes:Add additional useful information, such as related issues and functionality that isn't covered by this specific issue, and other considerations that will be helpful for anyone reading this
This process of defining dependencies would be much easier if we didn't define our schema's statically. If instead they were loaded on app start from a file we could define dependencies in a declarative versus an imperative way.
Supporting Documentation:Please include any relevant log snippets/files/screen shots
Open Questions:Please include any questions or decisions that must be made before beginning work or to confidently call this issue complete
Description: TDP represents field values in a data file in two ways: a
Field
or aTransformField
. ATransformField
is considered a child of theField
class because it represents an in-place transformation to a field or a transformation on a field to create a new field. The situation of a new field being created presents an issue. If the field in which the transform field is derived off of has errors/is malformed, the transform field will still happily apply it's transformation and create the new field because it lacks information about it's parent field. We would like to update theTransformField
class to have knowledge of it's parent field's state. This way we aren't performing transformations, validation, and creation on invalid data. This presents another situation. If theTransformField
's data is not generated or is converted to aNone
, therequired
validation check will throw an error because allTransformField
s arerequired
. We can ease this is by settingrequired=False
and trust that theTransformField
s newly acquired state info about it's parent will bridge the gap.Acceptance Criteria: Create a list of functional outcomes that must be achieved to complete this issue
TransformField
has knowledge of it's parentField
's stateTransformField
does not execute if parentField
has any kind of errorTransformField
does not executeTasks: Create a list of granular, specific work items that must be completed to deliver the desired outcomes of this issue
Field
class and out ofRowSchema
Field
class to run the field validatorsTransformField
class to not apply the transformation until field validators have been runTransformField
take aField
as a member if it has a parent field. E.g. CALENDAR_QUARTER -> RPT_MONTH_YEAR in theT6
,M6
and TribalT6
records.Notes: Add additional useful information, such as related issues and functionality that isn't covered by this specific issue, and other considerations that will be helpful for anyone reading this
Supporting Documentation: Please include any relevant log snippets/files/screen shots
Open Questions: Please include any questions or decisions that must be made before beginning work or to confidently call this issue complete