Source code for reuse.copyright

# SPDX-FileCopyrightText: 2024 Free Software Foundation Europe e.V. <https://fsfe.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

"""Utilities related to the parsing and storing of copyright notices."""

import re
from collections import Counter
from typing import Optional

from .extract import _COPYRIGHT_PATTERNS  # TODO: Get rid of this import.

_COPYRIGHT_PREFIXES = {
    "spdx": "SPDX-FileCopyrightText:",
    "spdx-c": "SPDX-FileCopyrightText: (C)",
    "spdx-string-c": "SPDX-FileCopyrightText: Copyright (C)",
    "spdx-string": "SPDX-FileCopyrightText: Copyright",
    "spdx-string-symbol": "SPDX-FileCopyrightText: Copyright ©",
    "spdx-symbol": "SPDX-FileCopyrightText: ©",
    "string": "Copyright",
    "string-c": "Copyright (C)",
    "string-symbol": "Copyright ©",
    "symbol": "©",
}










def _parse_copyright_year(year: Optional[str]) -> list[str]:
    """Parse copyright years and return list."""
    ret: list[str] = []
    if not year:
        return ret
    if re.match(r"\d{4}$", year):
        ret = [year]
    elif re.match(r"\d{4} ?- ?\d{4}$", year):
        ret = [year[:4], year[-4:]]
    return ret