Skip to content

migrate_value_annotation

Source code in src/library_analyzer/processing/migration/annotations/_migrate_value_annotation.py
def migrate_value_annotation(origin_annotation: ValueAnnotation, mapping: Mapping) -> list[AbstractAnnotation]:
    migrated_annotations: list[AbstractAnnotation] = []
    for parameter in mapping.get_apiv2_elements():
        value_annotation = deepcopy(origin_annotation)
        authors = value_annotation.authors
        authors.append(migration_author)
        value_annotation.authors = authors
        if isinstance(parameter, Parameter):
            if isinstance(value_annotation, ConstantAnnotation):
                migrated_constant_annotation = migrate_constant_annotation(value_annotation, parameter, mapping)
                if migrated_constant_annotation is not None:
                    migrated_annotations.append(migrated_constant_annotation)
                    continue
            if isinstance(value_annotation, OmittedAnnotation):
                migrated_omitted_annotation = migrate_omitted_annotation(value_annotation, parameter, mapping)
                if migrated_omitted_annotation is not None:
                    migrated_annotations.append(migrated_omitted_annotation)
                    continue
            if isinstance(value_annotation, OptionalAnnotation):
                migrated_optional_annotation = migrate_optional_annotation(value_annotation, parameter, mapping)
                if migrated_optional_annotation is not None:
                    migrated_annotations.append(migrated_optional_annotation)
                    continue
            if isinstance(value_annotation, RequiredAnnotation):
                migrated_required_annotation = migrate_required_annotation(value_annotation, parameter, mapping)
                if migrated_required_annotation is not None:
                    migrated_annotations.append(migrated_required_annotation)
                    continue
        if not isinstance(parameter, Attribute | Result):
            migrated_annotations.append(
                TodoAnnotation(
                    parameter.id,
                    authors,
                    value_annotation.reviewers,
                    value_annotation.comment,
                    EnumReviewResult.NONE,
                    get_migration_text(value_annotation, mapping),
                ),
            )
    return migrated_annotations