API Reference

Services

All services are accessible through DpmConnection.services:

from dpmcore import connect

with connect("sqlite:///dpm.db") as db:
    db.services.syntax           # SyntaxService
    db.services.semantic         # SemanticService
    db.services.ast_generator    # ASTGeneratorService
    db.services.scope_calculator # ScopeCalculatorService
    db.services.expression_metadata # ExpressionMetadataService
    db.services.data_dictionary  # DataDictionaryService
    db.services.explorer         # ExplorerService
    db.services.hierarchy        # HierarchyService
    db.services.dpm_xl           # DpmXlService (facade)
    db.services.layout_exporter  # LayoutExporterService
    db.services.migration        # MigrationService (Engine-based)

Note

The read-only dictionary services accept a SQLAlchemy Session. MigrationService is the exception — it accepts an Engine because it needs Base.metadata.create_all() and DataFrame.to_sql().

Pipeline and loader services

These mutate data or run end-to-end pipelines, so they live outside the read-only db.services facade and are used standalone:

from dpmcore.loaders.migration import MigrationService
from dpmcore.services.database_update import DatabaseUpdateService
from dpmcore.services.export_csv import ExportCsvService
from dpmcore.services.meili_build import MeiliBuildService

Read-only service references

Pipeline and loader references