# -*- coding: utf-8 -*-

"""Align the UniProt with the Bioregistry."""

from typing import Sequence

from bioregistry.align.utils import Aligner
from bioregistry.external import get_uniprot

__all__ = [
    'UniProtAligner',
]


class UniProtAligner(Aligner):
    """Aligner for UniProt."""

    key = 'uniprot'
    getter = get_uniprot
    curation_header = ('id', 'name', 'formatter', 'category')

    def get_curation_row(self, external_id, external_entry) -> Sequence[str]:
        """Prepare curation rows for unaligned BioPortal registry entries."""
        return [
            external_entry['identifier'],
            external_entry['name'],
            external_entry.get('formatter'),
            external_entry.get('category'),
        ]


if __name__ == '__main__':
    UniProtAligner.align()
