64 lines
1.4 KiB
Python
64 lines
1.4 KiB
Python
"""
|
|
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__":
|
|
return meta["Author-email"].split("<", 1)[1].rstrip(">")
|
|
|
|
return meta[dunder_to_metadata[name]]
|