Summary
Pass a schema.Algorithm object to the link method rather than models.Algorithm
Details / Tasks
Theres a one way relationship between schemas and models, the former knows about the latter, but not the other way around (necessary to prevent circular imports). This has created some problems when passing models.Algorithm around in the linkage code, for instance we always have to convert a blocking key id/string to a BlockingKey object for evaluation, same goes for Feature. The schemas class has everything we need for parsing the data into the appropriate objects for evaluation, it made a lot of sense and reduced some of the logic needed in recordlinker/linking by making this switch.
Summary
Pass a schema.Algorithm object to the link method rather than models.Algorithm
Details / Tasks
Theres a one way relationship between schemas and models, the former knows about the latter, but not the other way around (necessary to prevent circular imports). This has created some problems when passing models.Algorithm around in the linkage code, for instance we always have to convert a blocking key id/string to a BlockingKey object for evaluation, same goes for Feature. The schemas class has everything we need for parsing the data into the appropriate objects for evaluation, it made a lot of sense and reduced some of the logic needed in recordlinker/linking by making this switch.