Skip to content

filenames

FileNames

Bases: BaseModel

Name of files that need to be written.

Attributes:

Name Type Description
m_dir str

...

local_dir str

...

ci_dir str

...

manifests_dir str

...

makefile str

...

gh_workflow str

...

Source code in m/ci/docker/filenames.py
class FileNames(BaseModel):
    """Name of files that need to be written."""

    m_dir: str
    local_dir: str
    ci_dir: str
    manifests_dir: str
    makefile: str
    gh_workflow: str

    @classmethod
    def create_instance(cls: type['FileNames'], m_dir: str) -> 'FileNames':
        """Create and instance of FileNames.

        Args:
            m_dir: The m directory.

        Returns:
            An instance of FileNames.
        """
        gh_dir = Path(f'{m_dir}/../.github/workflows')
        gh_dir.mkdir(parents=True, exist_ok=True)
        return FileNames(
            m_dir=m_dir,
            local_dir=f'{m_dir}/.m/blueprints/local',
            ci_dir=f'{m_dir}/.m/blueprints/ci',
            manifests_dir=f'{m_dir}/.m/blueprints/ci/manifests',
            makefile=f'{m_dir}/../Makefile',
            gh_workflow=f'{m_dir}/../.github/workflows/m.yaml',
        )

    def local_file(self: 'FileNames', filename: str) -> str:
        """Generate the name of a local script.

        Args:
            filename: The name of the file.

        Returns:
            The full name of the file.
        """
        return f'{self.local_dir}/{filename}'

create_instance(m_dir) classmethod

Create and instance of FileNames.

Parameters:

Name Type Description Default
m_dir str

The m directory.

required

Returns:

Type Description
FileNames

An instance of FileNames.

Source code in m/ci/docker/filenames.py
@classmethod
def create_instance(cls: type['FileNames'], m_dir: str) -> 'FileNames':
    """Create and instance of FileNames.

    Args:
        m_dir: The m directory.

    Returns:
        An instance of FileNames.
    """
    gh_dir = Path(f'{m_dir}/../.github/workflows')
    gh_dir.mkdir(parents=True, exist_ok=True)
    return FileNames(
        m_dir=m_dir,
        local_dir=f'{m_dir}/.m/blueprints/local',
        ci_dir=f'{m_dir}/.m/blueprints/ci',
        manifests_dir=f'{m_dir}/.m/blueprints/ci/manifests',
        makefile=f'{m_dir}/../Makefile',
        gh_workflow=f'{m_dir}/../.github/workflows/m.yaml',
    )

local_file(filename)

Generate the name of a local script.

Parameters:

Name Type Description Default
filename str

The name of the file.

required

Returns:

Type Description
str

The full name of the file.

Source code in m/ci/docker/filenames.py
def local_file(self: 'FileNames', filename: str) -> str:
    """Generate the name of a local script.

    Args:
        filename: The name of the file.

    Returns:
        The full name of the file.
    """
    return f'{self.local_dir}/{filename}'