Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/pem/__init__.py: 58%
24 statements
« prev ^ index » next coverage.py v7.3.1, created at 2023-09-25 06:17 +0000
« prev ^ index » next coverage.py v7.3.1, created at 2023-09-25 06:17 +0000
1# SPDX-FileCopyrightText: 2013 Hynek Schlawack <hs@ox.cx>
2#
3# SPDX-License-Identifier: MIT
5from ._core import parse, parse_file
6from ._object_types import (
7 AbstractPEMObject,
8 Certificate,
9 CertificateRequest,
10 CertificateRevocationList,
11 DHParameters,
12 DSAPrivateKey,
13 ECPrivateKey,
14 Key,
15 OpenPGPPrivateKey,
16 OpenPGPPublicKey,
17 OpenSSHPrivateKey,
18 OpenSSLTrustedCertificate,
19 PrivateKey,
20 PublicKey,
21 RSAPrivateKey,
22 RSAPublicKey,
23 SSHCOMPrivateKey,
24 SSHPublicKey,
25)
28try:
29 from . import twisted
30except ImportError:
31 twisted = None # type: ignore[assignment]
33__all__ = [
34 "AbstractPEMObject",
35 "Certificate",
36 "CertificateRequest",
37 "CertificateRevocationList",
38 "DHParameters",
39 "DSAPrivateKey",
40 "ECPrivateKey",
41 "Key",
42 "OpenPGPPrivateKey",
43 "OpenPGPPublicKey",
44 "OpenSSHPrivateKey",
45 "OpenSSLTrustedCertificate",
46 "parse_file",
47 "parse",
48 "PrivateKey",
49 "PublicKey",
50 "RSAPrivateKey",
51 "RSAPublicKey",
52 "SSHCOMPrivateKey",
53 "SSHPublicKey",
54 "twisted",
55]
57__author__ = "Hynek Schlawack"
58__license__ = "MIT"
61def __getattr__(name: str) -> str:
62 dunder_to_metadata = {
63 "__version__": "version",
64 "__description__": "summary",
65 "__uri__": "",
66 "__url__": "",
67 "__email__": "",
68 }
69 if name not in dunder_to_metadata:
70 msg = f"module {__name__} has no attribute {name}"
71 raise AttributeError(msg)
73 import warnings
75 from importlib.metadata import metadata
77 if name != "__version__":
78 warnings.warn(
79 f"Accessing pem.{name} is deprecated and will be "
80 "removed in a future release. Use importlib.metadata directly "
81 "to query packaging metadata.",
82 DeprecationWarning,
83 stacklevel=2,
84 )
86 meta = metadata("pem")
88 if name in ("__uri__", "__url__"):
89 return meta["Project-URL"].split(" ", 1)[-1]
91 if name == "__email__":
92 return meta["Author-email"].split("<", 1)[1].rstrip(">")
94 return meta[dunder_to_metadata[name]]