aito.schema.AitoDatabaseSchema

class aito.schema.AitoDatabaseSchema(tables: Dict[str, AitoTableSchema])

Bases: AitoSchema

Aito Database Schema

Can be thought of as a dict-like container for AitoTableSchema objects

Methods

from_deserialized_object(obj)

create a class object from a JSON deserialized object

from_json_string(json_string, **kwargs)

create an class object from a JSON string

has_table(table_name)

check if the database has the specified table

json_schema()

the JSON schema of the class

json_schema_validate(obj)

Validate an object with the class json_schema Returns the object if validation success, else raise JsonValidationError

json_schema_validate_with_schema(obj, schema)

Validate an object with the given schema

reachable_columns(table_name)

return the name of the columns that can be reached from the specified table if the table has link, including the columns of the table

to_json_serializable()

convert the object to an object that can be serialized to a JSON formatted string

to_json_string(**kwargs)

convert the object to a JSON string

Attributes

column_link_pattern

column_name_pattern

comparison_properties

properties of the schema object that will be used for comparison operation

table_name_pattern

tables

a list contains the names of the database's tables

tables_schemas

a dictionary contains the name of the database's tables and its corresponding schemas

type

the type of the schema component

uuid_pattern

property comparison_properties: Iterable[str]

properties of the schema object that will be used for comparison operation

Return type:

Iterable[str]

classmethod from_deserialized_object(obj)

create a class object from a JSON deserialized object

classmethod from_json_string(json_string: str, **kwargs)

create an class object from a JSON string

Parameters:
  • json_string (str) – the JSON string

  • kwargs – the keyword arguments for json.loads method

has_table(table_name: str) bool

check if the database has the specified table

Parameters:

table_name (str) – the name of the column

Returns:

true if the table has the specified column

Return type:

bool

classmethod json_schema()

the JSON schema of the class

Return type:

Dict

classmethod json_schema_validate(obj: Any)

Validate an object with the class json_schema Returns the object if validation success, else raise JsonValidationError

Parameters:

obj (Any) – the object to be validated

Returns:

the object if validation succeed

Return type:

Any

json_schema_validate_with_schema(obj: Any, schema: Dict)

Validate an object with the given schema

Parameters:
  • obj (Any) – the object to be validated

  • schema (Dict) – the schema to be validate against

Returns:

the object if validation succeed

Return type:

Any

reachable_columns(table_name) List[str]

return the name of the columns that can be reached from the specified table if the table has link, including the columns of the table

Parameters:

table_name (str) – the name of the table

Returns:

list of linked columns

Return type:

List[str]

property tables: List[str]

a list contains the names of the database’s tables

Return type:

property tables_schemas: Dict[str, AitoTableSchema]

a dictionary contains the name of the database’s tables and its corresponding schemas

Return type:

Dict[str, AitoTableSchema]

to_json_serializable()

convert the object to an object that can be serialized to a JSON formatted string

to_json_string(**kwargs)

convert the object to a JSON string

Parameters:

kwargs – the keyword arguments for json.dumps method

Return type:

str

property type

the type of the schema component

Return type:

str