Skip to content

fastflowtransform.stdlib.engine

normalize_engine

normalize_engine(engine)

Normalize an engine string into a canonical key.

  • None / empty → "generic"
  • Known aliases → canonical (e.g. "postgresql" → "postgres")
  • Other values → lower-case as-is

Examples

normalize_engine("Postgres") 'postgres' normalize_engine("databricks_spark") 'spark' normalize_engine(None) 'generic'

Source code in src/fastflowtransform/stdlib/engine.py
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
def normalize_engine(engine: str | None) -> str:
    """
    Normalize an engine string into a canonical key.

    - None / empty → "generic"
    - Known aliases → canonical (e.g. "postgresql" → "postgres")
    - Other values  → lower-case as-is

    Examples
    --------
    >>> normalize_engine("Postgres")
    'postgres'
    >>> normalize_engine("databricks_spark")
    'spark'
    >>> normalize_engine(None)
    'generic'
    """
    if not engine:
        return "generic"
    key = engine.strip().lower()
    if not key:
        return "generic"
    return _ENGINE_ALIASES.get(key, key)

engine_family

engine_family(engine)

Return a broad engine family key.

For now this is identical to normalize_engine(), but having a separate function makes it easy to distinguish “exact engine” vs “family” later.

Source code in src/fastflowtransform/stdlib/engine.py
54
55
56
57
58
59
60
61
def engine_family(engine: str | None) -> str:
    """
    Return a broad engine *family* key.

    For now this is identical to normalize_engine(), but having a separate
    function makes it easy to distinguish “exact engine” vs “family” later.
    """
    return normalize_engine(engine)

is_engine

is_engine(engine, *candidates)

Convenience helper: check if engine matches any of the given candidates.

Examples

is_engine("duckdb", "duckdb", "postgres") True is_engine("bigquery", "duckdb", "postgres") False

Source code in src/fastflowtransform/stdlib/engine.py
64
65
66
67
68
69
70
71
72
73
74
75
76
77
def is_engine(engine: str | None, *candidates: str) -> bool:
    """
    Convenience helper: check if `engine` matches any of the given candidates.

    Examples
    --------
    >>> is_engine("duckdb", "duckdb", "postgres")
    True
    >>> is_engine("bigquery", "duckdb", "postgres")
    False
    """
    norm = normalize_engine(engine)
    cand_norm = {normalize_engine(c) for c in candidates}
    return norm in cand_norm