"""
Verify service identities.
"""


from . import cryptography, hazmat, pyopenssl
from .exceptions import (
    CertificateError,
    SubjectAltNameWarning,
    VerificationError,
)


__title__ = "service-identity"

__author__ = "Hynek Schlawack"

__license__ = "MIT"
__copyright__ = "Copyright (c) 2014 " + __author__


__all__ = [
    "CertificateError",
    "SubjectAltNameWarning",
    "VerificationError",
    "hazmat",
    "cryptography",
    "pyopenssl",
]


def __getattr__(name: str) -> str:
    dunder_to_metadata = {
        "__version__": "version",
        "__description__": "summary",
        "__uri__": "",
        "__url__": "",
        "__email__": "",
    }
    if name not in dunder_to_metadata:
        raise AttributeError(f"module {__name__} has no attribute {name}")

    import warnings

    from importlib.metadata import metadata

    warnings.warn(
        f"Accessing service_identity.{name} is deprecated and will be "
        "removed in a future release. Use importlib.metadata directly "
        "to query packaging metadata.",
        DeprecationWarning,
        stacklevel=2,
    )

    meta = metadata("service-identity")

    if name in ("__uri__", "__url__"):
        return meta["Project-URL"].split(" ", 1)[1]

    if name == "__email__":
        if "<" in meta["Author-email"]:
            return meta["Author-email"].split("<", 1)[1].rstrip(">")
        else:
            return meta["Author-email"]

    return meta[dunder_to_metadata[name]]
