Metadata.validate(tables=None)[source]

Validate the metadata of each table:

• If tables are provided or they have been loaded, check that all the metadata tables exists in the tables dictionary.

• Validate the type/subtype combination for each field and if a field of type id exists it must be the primary_key or must have a ref entry.

• If primary_key entry exists, check that it’s an existing field and its type is id.

• If tables are provided or they have been loaded, check all the data types for the table correspond to each column and all the data types exists on the table.

• Validate that there is no circular relatioship in the metadata.

• Check that all the tables have at most one parent.

Parameters

tables (bool, dict) – If a dict of table is passed, validate that the columns and dtypes match the metadata. If True is passed, load the tables from the Metadata instead. If None, omit the data validation. Defaults to None.