Mapping Sheet#

ocdskit.mapping_sheet.mapping_sheet(schema, order_by=None, infer_required=False, extension_field=None, include_codelist=False, include_deprecated=True, include_definitions=False, base_uri=None)[source]#

Returns information about all field paths in a JSON Schema, as columns and rows.

If include_definitions=False, this function resolves $ref properties.

Parameters
  • schema (dict) – a JSON schema

  • order_by (str) – the column by which to sort the rows

  • infer_required (bool) – whether to infer that a field is required if “null” is not in its type

  • extension_field (str) – the property in the JSON schema containing the name of the extension in which each field was defined

  • include_codelist (bool) – whether to include a “codelist” column

  • include_deprecated (bool) – whether to include any deprecated fields

  • include_definitions (bool) – whether to traverse the “definitions” property

  • base_uri (str) – the URL to resolve relative references against

Returns

information about all field paths in a JSON Schema, as columns and rows

Return type

tuple

The columns are:

Section

The first part of the JSON path to the field in the data, e.g. tender

Path

The JSON path to the field in the data, e.g. tender/id

Title

The field’s title in the JSON schema. If the field has no title, defaults to the field’s name followed by “*”.

Description

The field’s description in the JSON schema. URLs are removed (see the links column).

Type

A comma-separated list of the field’s type in the JSON schema, excluding “null”. If the field has no type, defaults to “unknown”.

Range

The field’s allowed number of occurrences.

  • “0..1” if the field defines an optional literal value.

  • “0..n” if the field defines an optional array.

  • “1..1” if the field defines a required literal value.

  • “1..n” if the field defines a required array.

Values

If the field’s schema sets:

  • format: the format

  • pattern: the pattern

  • enum: “Enum: ” followed by the enum as a comma-separated list, excluding null

  • items/enum: “Enum: ” followed by the items/enum as a comma-separated list, excluding null

Codelist

The field’s codelist in the JSON schema

Links

The URLs extracted from the field’s description

Deprecated

The OCDS minor version in which the field (or its parent) was deprecated

DeprecationNotes

The explanation for the deprecation of the field

Extension

The name of the extension that introduced the JSON path (see the extension_field parameter)

Raises

MissingColumnError – if the column by which to order is missing