Перейти к содержанию

CDictionaryElements

Класс по работе с элементами справочника с данными. Приходит как результат любого метода по получению данных.

После завершения работы со справочником необходимо вызвать метод .clear()

Инициализация

Раздел для опытных пользователей

Отдельно инициализировать класс не нужно, т.к. он приходит при получении данных справочника.

from src.service_dictionary.c_dictionary_elements import CDictionaryElements
CDictionaryElements(
    block_id: Optional[str] = None,
    dict_id: Optional[str] = None,
    revision_id: Optional[str] = None,
    binding: Dict = {},
    attributes: CAttributes = CAttributes(),
    _load_data: Optional[Dict] = None
)
  • block_id - идентификатор блока справочника;
  • dict_id - идентификатор справочника;
  • revision_id - идентификатор ревизии данных справочника;
  • binding - описание привязок справочника;
  • attributes - описание атрибутов справочника;
  • _load_data - данные для загрузки. После завершения инициализации использует метод fill для загрузки данных.

Очистка класса

При ручной инициализации класса, необходимо вызвать очистку (метод .clear()) после завершения работы.

Параметры

  • block_id: Optional[str] - Идентификатор блока справочника, из которого получены данные;
  • dict_id: Optional[str] - Идентификатор справочника, из которого получены данные;
  • revision_id: Optional[str] - Идентификатор ревизии данных справочника, из которого получены данные;
  • binding: Dict - Словарь с привязками данных справочника;
  • attributes: CAttributes - Метаданные всех атрибутов справочника.

Свойства

  • count -> int - Получение общего количества элементов в справочнике

Методы

serialize

Сериализация атрибутов и данных справочника в словарь.

serialize(self) -> Dict

Вид справочника
{
    "binding": {},
    "fields": [],
    "data": []
}

clear

Очистка класса справочника, для его корректной обработки сборщиком мусора.

clear(self) -> None

__getitem__

Получение элемента по его индексу. В случае иерархического справочника - создается плоский список и выбирается элемент.

(idx: int) -> CDictionaryElement

  • idx - индекс элемента, начиная с нуля.
Пример
elements = CDictionaryElements(...)
element = elements[idx]

fill

Заполнение элементов (метаданные и данные) справочника

fill(raw_data: Dict) -> None

fill_data

Заполнение данных справочника

fill_data(raw_data: List[Union[List, Dict]], clear: bool = False) -> None:

get_elements

Получение элементов справочника

get_elements(
    flatten: bool = False
) -> List[Union[CDictionaryElement, CDictionaryHierarchyElement]]:

to_json

Получение массива с данными справочника

to_json(self) -> List[Dict]

to_old_format_json

Получение объектов справочника (устаревший метод)

to_old_format_json(flatten: bool = False) -> List[Dict]

get_element_by_primary_keys

Получение элемента по первичным ключам

get_element_by_primary_keys(
    keys: Dict
) -> Union[None, CDictionaryElement, CDictionaryHierarchyElement]

get_element_from_alt_hierarchy_element

Получение оригинального элемента по элементу альтернативной иерархии

get_element_from_alt_hierarchy_element(
    alt_hierarchy_element: Union[CDictionaryElement, CDictionaryHierarchyElement]
) -> Union[None, CDictionaryElement, CDictionaryHierarchyElement]

get_element_from_alt_hierarchy_element_old_format

Получение оригинального элемента по объекту альтернативной иерархии (устаревший метод)

get_element_from_alt_hierarchy_element_old_format(
    alt_hierarchy_element: Dict
) -> Union[None, CDictionaryElement, CDictionaryHierarchyElement]