You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Assuming Kingfisher can provide a release schema with all extensions applied, it should be possible to check the quality of extension fields (once issue 22 in Datlab's tracker is closed, related to automatically assigning checks to fields based on an input schema).
Related to this question from this document: "Should checks receive the extended OCDS schema as an input, so that rules like “for any Period object, do X” can be written, instead of having a separate rule for every Period object in the OCDS schema and all extensions?"
In terms of implementation, for rules like "For any field (or array item) with "$ref": "#/definitions/Identifier"", in other OCDS code, we run jsonref.JsonRef.replace_refs(schema), loop through the schema and, if a path matches a condition, we yield it as a tuple. Then, we loop through the data. If a path in the data matches a path from the schema (we need to remove array indices from the data’s path in order to match the schema’s path, e.g. (‘contracts’, 0, ‘id’) becomes (‘contracts’, ‘id’)), then we perform an operation.
The text was updated successfully, but these errors were encountered:
Assuming Kingfisher can provide a release schema with all extensions applied, it should be possible to check the quality of extension fields (once issue 22 in Datlab's tracker is closed, related to automatically assigning checks to fields based on an input schema).
Related to this question from this document: "Should checks receive the extended OCDS schema as an input, so that rules like “for any Period object, do X” can be written, instead of having a separate rule for every Period object in the OCDS schema and all extensions?"
In terms of implementation, for rules like "For any field (or array item) with
"$ref": "#/definitions/Identifier"
", in other OCDS code, we run jsonref.JsonRef.replace_refs(schema), loop through the schema and, if a path matches a condition, we yield it as a tuple. Then, we loop through the data. If a path in the data matches a path from the schema (we need to remove array indices from the data’s path in order to match the schema’s path, e.g. (‘contracts’, 0, ‘id’) becomes (‘contracts’, ‘id’)), then we perform an operation.The text was updated successfully, but these errors were encountered: