%PDF- %PDF-
| Direktori : /usr/lib/python3.9/site-packages/passlib/utils/__pycache__/ |
| Current File : //usr/lib/python3.9/site-packages/passlib/utils/__pycache__/__init__.cpython-39.pyc |
a
f�Wc�� � @ sF d Z ddlmZ ddlmZmZmZ ddlm Z m
Z
zddlmZ ddlm
Z
W n* eyz ddlmZ ddlm
Z
Y n0 ddlmZ ddlmZ dd lZdd lZdd lZe�e�Zdd lZdd lZdd lZdd lZdd lZe�rzdd l Z W n e�y d Z d
Z!Y n0 ndd l Z dd l"Z"e �r.dd l#Z#zdd l$Z$W n e�yR d Z$Y n0 dd l%Z%dd l&Z&ddl'm(Z( ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 dd
l7m8Z8m9Z9m:Z:m;Z;m<Z< ddl=m>Z>m?Z? ddlm@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZP g d�ZQeRe�eF�r>ejSnejTd�d �ZUg d�ZVddgZWddl=mXZX dZYeGd�ZZeGd�Z[eRej\�]d��p�d�Z^G dd� de_�Z`eF�r�ejajbZcedecejajeg�Zfdd� Zgnd d� Zgd�d"d#�Zhd$d%� Zid&d'� ZjejZkzdd(llmmZj W n e�y Y n0 d�d*d+�Znd�d-d.�Zoe d u �r@d�d/d.�Zod0d1� ZpeF�r`d2d3� Zqd4d5� Zrn dd6lmsZsmtZt d7d3� Zqd8d5� Zre@eqd9� e@erd:� d;d<� Zud=d>� Zvd?d@� ZwdAZxeGdB�Zyd�dCdD�ZzdEdF� Z{dGZ|e|�}dH�Z~dIdJ� ZdKdL� Z�dMZ�eGdN�Z�dOdP� Z�d�dRdS�Z�d�dTdU�Z�eF�r"d�dVdW�Z�n
d�dXdW�Z�e@e�dY� e8dZd[d\�d�d]d^��Z�edd_��� �Z�edd`��� �Z�edddag�Z�d�dcdd�Z�dedf� Z�zddgl�m�Z� W n0 e�y� d Z�d!Z�d!Z�d!Z�d Z�dhdi� Z�Y n�0 djZ�dBZ�e$�reP�rdkej� k�r�dlk�rn ne$��� Z�djZ�nddmlm�Z� e�� Z�d!Z�eGdn�Z�eF�rhdjZ�ze�dodp� W n" e��yR d!Z�Y n Y n0 dqdi� Z�ndjZ�drdi� Z�e@e�ds� dtdu� Z�e%j�Z�e�Z�dvdw� Z�ze��dx� djZ�W n e��y� d!Z�Y n0 d�dydz�Z�e��r�e��� Z�ne��e�� �Z�d{d|� Z�d}d~� Z�dZ�e8d[d�d�d��d�e�fd�d���Z�d�Z�d�d�� Z�d�Z�d�d�� Z�d�d�� Z�d�d�� Z�d S )�z4passlib.utils -- helpers for writing password hashes� )�JYTHON)�
b2a_base64�
a2b_base64�Error)� b64encode� b64decode)�Sequence)�Iterable)�lookup)�update_wrapperNznot present under Jython)�warn)
�BASE64_CHARS�
AB64_CHARS�HASH64_CHARS�BCRYPT_CHARS�Base64Engine�LazyBase64Engine�h64�h64big�bcrypt64�ab64_encode�ab64_decode�b64s_encode�b64s_decode)�deprecated_function�deprecated_method�memoized_property�
classproperty�
hybrid_method)�ExpectedStringError�ExpectedTypeError)�add_doc�
join_bytes�join_byte_values�join_byte_elems�irange�imap�PY3�u�join_unicode�unicode�byte_elem_value�
nextgetter�unicode_or_str�unicode_or_bytes_types�get_method_function�suppress_cause�PYPY)r �sys_bits�unix_crypt_schemes�rounds_cost_values�consteq�saslprep� xor_bytes�render_bytes�
is_same_codec�
is_ascii_safe�to_bytes�
to_unicode�
to_native_str� has_crypt�
test_crypt�
safe_crypt�tick�rng�getrandbytes�
getrandstr�generate_password�is_crypt_handler�is_crypt_context�has_rounds_info�
has_salt_info� g �?)Zsha512_cryptZsha256_cryptZ
sha1_cryptZbcryptZ md5_cryptZ
bsdi_cryptZ des_cryptZlinearZlog2)�MissingBackendError� � � ZPASSLIB_MAX_PASSWORD_SIZEi c @ sH e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Zdd
� Z dd� Z
dS )�
SequenceMixinz�
helper which lets result object act like a fixed-length sequence.
subclass just needs to provide :meth:`_as_tuple()`.
c C s t d��d S )Nzimplement in subclass)�NotImplementedError��self� rS �:/usr/lib/python3.9/site-packages/passlib/utils/__init__.py� _as_tuple� s zSequenceMixin._as_tuplec C s t | �� �S �N)�reprrU rQ rS rS rT �__repr__� s zSequenceMixin.__repr__c C s | � � | S rV �rU )rR �idxrS rS rT �__getitem__� s zSequenceMixin.__getitem__c C s t | �� �S rV )�iterrU rQ rS rS rT �__iter__� s zSequenceMixin.__iter__c C s t | �� �S rV )�lenrU rQ rS rS rT �__len__� s zSequenceMixin.__len__c C s | � � |kS rV rY �rR �otherrS rS rT �__eq__� s zSequenceMixin.__eq__c C s | � |� S rV )rb r` rS rS rT �__ne__� s zSequenceMixin.__ne__N)�__name__�
__module__�__qualname__�__doc__rU rX r[ r] r_ rb rc rS rS rS rT rO � s rO c C sJ t �t| ��j}|sdS |�|�}|r4|jtvr4dS |t|�d jtkS )�*test if function accepts specified keywordFT���) �inspectZ signaturer/ �
parameters�get�kind�_VAR_ANY_SET�list�_VAR_KEYWORD)�func�key�params�argrS rS rT �accepts_keyword� s
ru c C s"