xia_engine.fields.EmbeddedDocumentField

class xia_engine.fields.EmbeddedDocumentField(document_type, table_name: Optional[str] = None, key_fields: Optional[list] = None, fields_map: Optional[dict] = None, **kwargs)

Bases: BaseField

An embedded document field - with a declared document_type of an Embedded Document.

__init__(document_type, table_name: Optional[str] = None, key_fields: Optional[list] = None, fields_map: Optional[dict] = None, **kwargs)

Field which holds embedded information

Parameters
  • document_type – Class of Embedded Document

  • table_name – The name of sub table

  • key_fields – The key field of sub table

  • fields_map – Field of sub table should have different name

  • **kwargs – Other settings of BaseField

Methods

__init__(document_type[, table_name, ...])

Field which holds embedded information

from_db(value, /[, decoder, engine])

Value transformation from database form

from_display(value[, runtime_display])

Value transformation from display form to internal form

from_runtime(runtime_value, /)

Value transformation from runtime value to internal form

get_sample()

Get a sample value of a field

get_sql_meta()

get_value([value, runtime_value])

Get runtime value when it is necessary

guess_value([value])

Guess field value

to_db(value[, runtime_value, catalog, ...])

Value transformation to database form

to_display(value[, runtime_value, lazy, ...])

Value transformation to display form

validate(value[, runtime_value])

Validate data

Attributes

SAMPLE_DICT

detail_form

runtime_form

db_form

alias of dict

display_form

alias of dict

from_db(value: Any, /, decoder: callable = None, engine=None)

Value transformation from database form

Parameters
  • decoder (callable) – Encode the value

  • value (any) – value to be transformed from database form to internal form

  • engine (BaseEngine) – Engine to be passed

Returns

internal value and runtime value tuple

from_display(value: Any, runtime_display: Any = None, /)

Value transformation from display form to internal form

Parameters
  • value (any) – display value to be transformed

  • runtime_display (any) – display runtime value to be transformed

from_runtime(runtime_value: Any, /)

Value transformation from runtime value to internal form

Parameters

runtime_value – runtime value

get_sample()

Get a sample value of a field

Returns

sample value

Return type

object

get_value(value: Any = None, runtime_value: Any = None, /, **kwargs)

Get runtime value when it is necessary

Parameters
  • value (any) – value on internal form. could be None for no-stateful fields

  • runtime_value (any) – value of runtime value. could be None when the data is not loaded

guess_value(value: Optional[Any] = None)

Guess field value

Guess field value is normally called when parsing front. The general rules are:
  • If the fields is type runtime
    • Check if the input is type of runtime or detail form

    • When true, the output guess will be a tuple contain internal form, runtime form

  • Or the check will continue to see if it is display form or db_form
    • When found, it will return internal form

    • When field is runtime type, will return internal from, None (lazy load mode)

Parameters

value – value to be guessed

Notes

The default priority

internal_form

alias of BaseEmbeddedDocument

to_db(value: Any, runtime_value: Any = None, /, catalog: dict = None, encoder: callable = None, ignore_unknown: bool = False, engine=None)

Value transformation to database form

Parameters
  • encoder (callable) – Encode the value

  • runtime_value (any) – runtime value to be transformed

  • value (any) – value to be transformed from internal form to database form

  • catalog (dict) – Data catalog to decide if the field will be shown or not

  • ignore_unknown (bool) – If the unknown field should be ignored

  • engine (BaseEngine) – Engine to be passed

to_display(value: Any, runtime_value: Any = None, /, lazy: bool = True, catalog: dict = None, show_hidden: bool = False, **kwargs)

Value transformation to display form

Parameters
  • value (any) – value to be transformed from internal form to database form

  • runtime_value (any) – value of runtime value. could be None when the data is not loaded

validate(value: Any, runtime_value: Any = None, /)

Validate data

Parameters
  • value (any) – internal value to be validated

  • runtime_value (any) – runtime data to be validated

Notes

  • No exception raised = validation passed