Skip to content

Output

output

Excel output handling for the security process flow.

ClassificationOutput

Classification systems to include in the output.

ALL = 'all' class-attribute instance-attribute

GECS = 'gecs' class-attribute instance-attribute

GICS = 'gics' class-attribute instance-attribute

NONE = 'none' class-attribute instance-attribute

get_classification_output(gecs: bool = False, gics: bool = False) -> ClassificationOutput

Return selected classification output.

Source code in src/equities_classifier/processflow/output.py
def get_classification_output(
    gecs: bool = False,
    gics: bool = False,
) -> ClassificationOutput:
    """Return selected classification output."""

    if gecs and gics:
        return ClassificationOutput.ALL
    if gecs:
        return ClassificationOutput.GECS
    if gics:
        return ClassificationOutput.GICS

    return ClassificationOutput.NONE

write_excel(securities: list[Security], filename: str | Path, *, classifications: ClassificationOutput = ClassificationOutput.NONE, provider_details: bool = False) -> None

Write securities to an Excel file.

Source code in src/equities_classifier/processflow/output.py
def write_excel(
    securities: list[Security],
    filename: str | Path,
    *,
    classifications: ClassificationOutput = ClassificationOutput.NONE,
    provider_details: bool = False,
) -> None:
    """Write securities to an Excel file."""

    workbook = Workbook()
    worksheet = workbook.active
    worksheet.title = "Securities"

    columns = _create_columns(
        securities,
        classifications,
        provider_details,
    )
    for column_index, column_name in enumerate(columns, start=1):
        worksheet.cell(row=1, column=column_index, value=column_name)

    for row_index, security in enumerate(securities, start=2):
        values = _create_row(
            security,
            columns,
            classifications,
            provider_details,
        )
        for column_index, value in enumerate(values, start=1):
            worksheet.cell(row=row_index, column=column_index, value=value)

    _format_worksheet(worksheet)

    workbook.save(filename)