Skip to content

type_bridge.generator.naming

naming

Naming convention utilities for code generation.

Handles conversion between TypeDB naming conventions (kebab-case) and Python conventions (PascalCase for classes, snake_case for identifiers).

to_class_name

to_class_name(label)

Convert a TypeDB name to PascalCase for Python classes.

Handles both kebab-case and snake_case inputs.

Examples:

"person" -> "Person" "isbn-13" -> "Isbn13" "user_story" -> "UserStory" "order-line" -> "OrderLine"

Source code in type_bridge/generator/naming.py
def to_class_name(label: str) -> str:
    """Convert a TypeDB name to PascalCase for Python classes.

    Handles both kebab-case and snake_case inputs.

    Examples:
        "person" -> "Person"
        "isbn-13" -> "Isbn13"
        "user_story" -> "UserStory"
        "order-line" -> "OrderLine"
    """
    # Split by both - and _
    parts = label.replace("_", "-").split("-")
    return "".join(part.capitalize() for part in parts)

to_python_name

to_python_name(label)

Convert a TypeDB name to snake_case for Python identifiers.

Examples:

"person" -> "person" "isbn-13" -> "isbn_13" "order-line" -> "order_line" "birth-date" -> "birth_date"

Source code in type_bridge/generator/naming.py
def to_python_name(label: str) -> str:
    """Convert a TypeDB name to snake_case for Python identifiers.

    Examples:
        "person" -> "person"
        "isbn-13" -> "isbn_13"
        "order-line" -> "order_line"
        "birth-date" -> "birth_date"
    """
    return label.replace("-", "_")

build_class_name_map

build_class_name_map(names)

Build a mapping from TypeDB names to Python class names.

Parameters:

Name Type Description Default
names Mapping[str, object]

Mapping with TypeDB names as keys (values ignored)

required

Returns:

Type Description
dict[str, str]

Dict mapping TypeDB name -> Python class name

Source code in type_bridge/generator/naming.py
def build_class_name_map(names: Mapping[str, object]) -> dict[str, str]:
    """Build a mapping from TypeDB names to Python class names.

    Args:
        names: Mapping with TypeDB names as keys (values ignored)

    Returns:
        Dict mapping TypeDB name -> Python class name
    """
    return {name: to_class_name(name) for name in names}

render_all_export

render_all_export(names, extras=None)

Generate all export list lines for a module.

Parameters:

Name Type Description Default
names list[str]

List of names to export (will be sorted)

required
extras list[str] | None

Optional additional names to export

None

Returns:

Type Description
list[str]

Lines for the all block including trailing newline

Source code in type_bridge/generator/naming.py
def render_all_export(names: list[str], extras: list[str] | None = None) -> list[str]:
    """Generate __all__ export list lines for a module.

    Args:
        names: List of names to export (will be sorted)
        extras: Optional additional names to export

    Returns:
        Lines for the __all__ block including trailing newline
    """
    lines = ["__all__ = ["]
    for name in sorted(names):
        lines.append(f'    "{name}",')
    for extra in extras or []:
        lines.append(f'    "{extra}",')
    lines.append("]")
    lines.append("")
    return lines