codekingpro/portable-devtools
114k
1# SPDX-License-Identifier: MIT2 3"""4Argon2 for Python5"""6 7from . import exceptions, low_level, profiles8from ._legacy import hash_password, hash_password_raw, verify_password9from ._password_hasher import (10 DEFAULT_HASH_LENGTH,11 DEFAULT_MEMORY_COST,12 DEFAULT_PARALLELISM,13 DEFAULT_RANDOM_SALT_LENGTH,14 DEFAULT_TIME_COST,15 PasswordHasher,16)17from ._utils import Parameters, extract_parameters18from .low_level import Type19 20 21__title__ = "argon2-cffi"22 23__author__ = "Hynek Schlawack"24__copyright__ = "Copyright (c) 2015 " + __author__25__license__ = "MIT"26 27 28__all__ = [29 "DEFAULT_HASH_LENGTH",30 "DEFAULT_MEMORY_COST",31 "DEFAULT_PARALLELISM",32 "DEFAULT_RANDOM_SALT_LENGTH",33 "DEFAULT_TIME_COST",34 "Parameters",35 "PasswordHasher",36 "Type",37 "exceptions",38 "extract_parameters",39 "hash_password",40 "hash_password_raw",41 "low_level",42 "profiles",43 "verify_password",44]45 46 47def __getattr__(name: str) -> str:48 dunder_to_metadata = {49 "__version__": "version",50 "__description__": "summary",51 "__uri__": "",52 "__url__": "",53 "__email__": "",54 }55 if name not in dunder_to_metadata:56 msg = f"module {__name__} has no attribute {name}"57 raise AttributeError(msg)58 59 import warnings60 61 from importlib.metadata import metadata62 63 warnings.warn(64 f"Accessing argon2.{name} is deprecated and will be "65 "removed in a future release. Use importlib.metadata directly "66 "to query for argon2-cffi's packaging metadata.",67 DeprecationWarning,68 stacklevel=2,69 )70 71 meta = metadata("argon2-cffi")72 73 if name in ("__uri__", "__url__"):74 return meta["Project-URL"].split(" ", 1)[-1]75 76 if name == "__email__":77 return meta["Author-email"].split("<", 1)[1].rstrip(">")78 79 return meta[dunder_to_metadata[name]]80 