dtcs 0.2.0

Reference implementation of the Data Transformation Contract Standard (DTCS)
Documentation
{
  "fixtures": [
    {"file": "valid_customer.yaml", "parse_valid": true, "contract": true, "validate_valid": true},
    {"file": "valid_minimal.json", "parse_valid": true, "contract": true, "validate_valid": true},
    {"file": "valid_metadata.yaml", "parse_valid": true, "contract": true, "validate_valid": true},
    {"file": "streaming_unbounded.yaml", "parse_valid": true, "contract": true, "validate_valid": true},
    {"file": "optional_input.yaml", "parse_valid": true, "contract": true, "validate_valid": true},
    {"file": "input_precondition.yaml", "parse_valid": true, "contract": true, "validate_valid": true},
    {"file": "map_type_valid.yaml", "parse_valid": true, "contract": true, "validate_valid": true},
    {"file": "extension_type_valid.yaml", "parse_valid": true, "contract": true, "validate_valid": true},
    {"file": "expression_with_type.yaml", "parse_valid": true, "contract": true, "validate_valid": true},
    {"file": "nested_collection_valid.yaml", "parse_valid": true, "contract": true, "validate_valid": true},
    {"file": "valid_conversion_lossy.yaml", "parse_valid": true, "contract": true, "validate_valid": true},
    {"file": "malformed.yaml", "parse_valid": false, "contract": false, "validate_valid": false, "codes": ["dtcs:parse-error"]},
    {"file": "malformed.json", "parse_valid": false, "contract": false, "validate_valid": false, "codes": ["dtcs:parse-error"]},
    {"file": "invalid_streaming_mode.yaml", "parse_valid": false, "contract": false, "validate_valid": false},
    {"file": "missing_lineage.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:missing-lineage"]},
    {"file": "missing_inputs.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:missing-required-field"]},
    {"file": "duplicate_input_id.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:duplicate-identifier"]},
    {"file": "invalid_type.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-type"]},
    {"file": "bare_composite_type.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-type"]},
    {"file": "unresolved_reference.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:unresolved-reference"]},
    {"file": "invalid_semantic_action.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-semantic-action"]},
    {"file": "invalid_rule.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-rule"]},
    {"file": "unknown_lineage_input.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:unresolved-reference"]},
    {"file": "orphan_output_in_lineage.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:unresolved-reference"]},
    {"file": "typo_top_level_field.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:unknown-field"]},
    {"file": "duplicate_schema_field.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:duplicate-identifier"]},
    {"file": "semantic_type_mismatch.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-semantic-action"]},
    {"file": "unsupported_version.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:unsupported-version"]},
    {"file": "invalid_identifier.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-identifier"]},
    {"file": "invalid_metadata_timestamp.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-metadata"]},
    {"file": "invalid_metadata_identity_conflict.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-metadata"]},
    {"file": "all_inputs_optional.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-interface"]},
    {"file": "invalid_precondition_rule.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:unresolved-reference"]},
    {"file": "invalid_precondition_phase.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-interface"]},
    {"file": "invalid_map_arity.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-type"]},
    {"file": "invalid_conversion_lossy.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-conversion"]},
    {"file": "invalid_type_trailing_garbage.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-type"]},
    {"file": "invalid_metadata_restricted.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-metadata"]},
    {"file": "invalid_metadata_custom_key.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-metadata"]},
    {"file": "invalid_io_extension.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-interface"]},
    {"file": "invalid_postcondition_rule.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:unresolved-reference"]},
    {"file": "invalid_postcondition_phase.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-interface"]},
    {"file": "invalid_metadata_impossible_date.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-metadata"]},
    {"file": "invalid_http_rule.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-rule"]},
    {"file": "invalid_http_action.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-semantic-action"]},
    {"file": "invalid_http_type.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-type"]},
    {"file": "invalid_metadata_impossible_time.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-metadata"]},
    {"file": "invalid_misplaced_postcondition.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-interface"]},
    {"file": "expression_missing_type.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:missing-required-field"]},
    {"file": "expression_type_mismatch.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-type"]},
    {"file": "function_missing_return_type.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:missing-required-field"]},
    {"file": "expression_invalid_operator.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-type"]},
    {"file": "expression_unresolved_field.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-type"]},
    {"file": "expression_precedence_multiply.yaml", "parse_valid": true, "contract": true, "validate_valid": true},
    {"file": "expression_precedence_compare.yaml", "parse_valid": true, "contract": true, "validate_valid": true},
    {"file": "duplicate_io_id.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:duplicate-identifier"]},
    {"file": "expression_narrowing_decimal.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-type"]},
    {"file": "expression_unary_minus.yaml", "parse_valid": true, "contract": true, "validate_valid": true},
    {"file": "invalid_function_namespace.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-function"]},
    {"file": "invalid_dtcs_function.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-function"]},
    {"file": "function_optional_param_order.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-function"]},
    {"file": "function_call_arity.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-type"]},
    {"file": "lowercase_nullable_target.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-semantic-action"]},
    {"file": "expression_nullable_field.yaml", "parse_valid": true, "contract": true, "validate_valid": false, "codes": ["dtcs:invalid-type"]}
  ]
}