Skip to content

processor

django_spire.core.management.commands.spire_startapp_pkg.processor

TemplateEngine

Renders template strings with variable replacements.

This class uses Python's string.Template to safely substitute placeholders in template files with actual values.

render

Renders a template string by replacing placeholders with values.

Parameters:

  • text (str) –

    Template string containing ${variable} placeholders.

  • replacements (dict[str, str]) –

    Dictionary mapping placeholder names to their values.

Returns:

  • str

    Rendered string with all placeholders replaced.

Source code in django_spire/core/management/commands/spire_startapp_pkg/processor.py
def render(self, text: str, replacements: dict[str, str]) -> str:
    """
    Renders a template string by replacing placeholders with values.

    :param text: Template string containing ${variable} placeholders.
    :param replacements: Dictionary mapping placeholder names to their values.
    :return: Rendered string with all placeholders replaced.
    """

    template = Template(text)
    return template.safe_substitute(replacements)

TemplateProcessor

Processes template files for Django app generation.

This class handles the replacement of placeholders in template files and manages file renaming based on user configuration.

Initializes the processor with an engine and file system.

Parameters:

  • engine (TemplateEngine) –

    Template engine for rendering strings.

  • filesystem (FileSystem) –

    File system for file operations.

Source code in django_spire/core/management/commands/spire_startapp_pkg/processor.py
def __init__(self, engine: TemplateEngine, filesystem: FileSystem):
    """
    Initializes the processor with an engine and file system.

    :param engine: Template engine for rendering strings.
    :param filesystem: File system for file operations.
    """

    self._engine = engine
    self._filesystem = filesystem

process_app_templates

Processes all template files in an app directory.

Replaces placeholders in .template files, renames them, and updates content in .py files based on user inputs.

Parameters:

  • directory (Path) –

    Root directory containing template files.

  • components (list[str]) –

    List of app path components.

  • user_inputs (dict[str, str] | None, default: None ) –

    Optional dictionary of user-provided configuration values.

Source code in django_spire/core/management/commands/spire_startapp_pkg/processor.py
def process_app_templates(
    self,
    directory: Path,
    components: list[str],
    user_inputs: dict[str, str] | None = None
) -> None:
    """
    Processes all template files in an app directory.

    Replaces placeholders in .template files, renames them, and updates
    content in .py files based on user inputs.

    :param directory: Root directory containing template files.
    :param components: List of app path components.
    :param user_inputs: Optional dictionary of user-provided configuration values.
    """

    for file_path in self._filesystem.iterate_files(directory, '*.template'):
        self._process_file(file_path, components, user_inputs)

    for file_path in self._filesystem.iterate_files(directory, '*.py'):
        self._replace_content(file_path, components, user_inputs)
        self._rename_file(file_path, components, user_inputs)

    self._rename_template_files(directory)

process_html_templates

Processes all HTML template files in a directory.

Replaces placeholders in .template files and renames them to remove the .template extension.

Parameters:

  • directory (Path) –

    Root directory containing HTML template files.

  • components (list[str]) –

    List of app path components.

  • user_inputs (dict[str, str] | None, default: None ) –

    Optional dictionary of user-provided configuration values.

Source code in django_spire/core/management/commands/spire_startapp_pkg/processor.py
def process_html_templates(
    self,
    directory: Path,
    components: list[str],
    user_inputs: dict[str, str] | None = None
) -> None:
    """
    Processes all HTML template files in a directory.

    Replaces placeholders in .template files and renames them to remove
    the .template extension.

    :param directory: Root directory containing HTML template files.
    :param components: List of app path components.
    :param user_inputs: Optional dictionary of user-provided configuration values.
    """

    for file_path in self._filesystem.iterate_files(directory, '*.template'):
        self._process_file(file_path, components, user_inputs)

    self._rename_template_files(directory)