dpmcore.services.data_dictionary

Read-only queries over the DPM dictionary: releases, tables, item signatures, table versions, and item categories. Release-aware methods accept release_id or release_code (at most one).

DataDictionaryService

class dpmcore.services.data_dictionary.DataDictionaryService(session)[source]

Bases: object

Query the DPM data dictionary.

Parameters:

session (Session) – An open SQLAlchemy session.

__init__(session)[source]

Build the service bound to session.

Parameters:

session (Session)

Return type:

None

get_releases()[source]

Return all releases, latest first.

Ordered by the date-based sort order (see compute_sort_order()), so an undated (unpublished) working release ranks as the latest and comes first; ties break by release_id for determinism.

Return type:

List[Dict[str, Any]]

get_release_by_id(release_id)[source]

Return a single release by ID.

Return type:

Optional[Dict[str, Any]]

Parameters:

release_id (int)

get_release_by_code(release_code)[source]

Return a single release by code.

Return type:

Optional[Dict[str, Any]]

Parameters:

release_code (str)

get_latest_release()[source]

Return the latest release by the date-based sort order.

An undated (unpublished) working release ranks as the latest; ties break by release_id for determinism.

Return type:

Optional[Dict[str, Any]]

get_tables(release_id=None, date=None, release_code=None, verbose=False)[source]

Return available tables.

When verbose is False (default) returns a list of table codes. When verbose is True returns a list of dicts with {code, name, description} for each active table version.

Return type:

Union[List[str], List[Dict[str, Optional[str]]]]

Parameters:
  • release_id (int | None)

  • date (str | None)

  • release_code (str | None)

  • verbose (bool)

get_table_version(table_code, release_id=None, release_code=None)[source]

Return table version info for a given table code.

Return type:

Optional[Dict[str, Any]]

Parameters:
  • table_code (str)

  • release_id (int | None)

  • release_code (str | None)

get_open_keys_for_tables(table_codes, release_id=None, release_code=None)[source]

Return {table_code: {property_code: data_type_code}}.

Identifies the open-key (compound-key) variables of each table by walking TableVersionKeyCompositionVariableVersionPropertyItemCategory (for the property code) → DataType (for the type code).

Return type:

Dict[str, Dict[str, str]]

Parameters:
  • table_codes (List[str])

  • release_id (int | None)

  • release_code (str | None)

get_open_keys_for_table(table_code, release_id=None, release_code=None)[source]

Return {property_code: data_type_code} for one table.

Return type:

Dict[str, str]

Parameters:
  • table_code (str)

  • release_id (int | None)

  • release_code (str | None)

get_all_item_signatures(release_id=None, release_code=None)[source]

Return all distinct item signatures.

Return type:

List[str]

Parameters:
  • release_id (int | None)

  • release_code (str | None)

get_item_categories(release_id=None, release_code=None)[source]

Return (code, signature) pairs for item categories.

Return type:

List[Tuple[str, str]]

Parameters:
  • release_id (int | None)

  • release_code (str | None)