%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python37/lib/python3.7/site-packages/alembic/util/__pycache__/
Upload File :
Create Path :
Current File : //opt/alt/python37/lib/python3.7/site-packages/alembic/util/__pycache__/langhelpers.cpython-37.pyc

B

�M!V!&�@s�ddlZddlZddlZddlZddlZddlmZmZmZm	Z	ddl
mZmZddl
mZGdd�de�ZGdd	�d	e	e��Zd
d�Zdd
�Zdd�Zddd�Zddd�Zd dd�Zdd�ZGdd�de�ZGdd�de�ZGdd�de�ZdS)!�N�)�callable�exec_�string_types�with_metaclass)�format_argspec_plus�update_wrapper)�inspect_getfullargspeccseZdZ�fdd�Z�ZS)�_ModuleClsMetacs tt|��||�|�|�dS)N)�superr
�__setattr__�_update_module_proxies)�cls�key�value)�	__class__��/langhelpers.pyrsz_ModuleClsMeta.__setattr__)�__name__�
__module__�__qualname__r�
__classcell__rr)rrr

sr
c@sjeZdZdZe�dd��Zedd��Zdd�Z	dd	�Z
ed
d��Zedd
��Zedd��Z
edd��ZdS)�ModuleClsProxyz�Create module level proxy functions for the
    methods on a given class.

    The functions will have a compatible signature
    as the methods.

    cCs
t�gfS)N)�setrrrr�<lambda>�zModuleClsProxy.<lambda>cCs4|j|\}}x |D]\}}|�||||�qWdS)N)�_setups�_add_proxied_attribute)r�name�
attr_names�modules�globals_�locals_rrrr
sz%ModuleClsProxy._update_module_proxiescCsJ|j|j\}}x4|D],\}}||d<x|D]}t||�||<q,WqWdS)N�_proxy)rr�getattr)�selfrr r!r"�	attr_namerrr�_install_proxy$s

zModuleClsProxy._install_proxycCsB|j|j\}}x,|D]$\}}d|d<x|D]
}||=q,WqWdS)Nr#)rr)r%rr r!r"r&rrr�
_remove_proxy+s

zModuleClsProxy._remove_proxycCs.|j|\}}|�||f�|�|||�dS)N)r�append�_setup_proxy)rr!r"rr rrr�create_module_class_proxy2s
z(ModuleClsProxy.create_module_class_proxycCs&x t|�D]}|�||||�q
WdS)N)�dirr)rr!r"r�methnamerrrr*:szModuleClsProxy._setup_proxycCs>|�d�s:t||�}t|�r0|�|||�||<n
|�|�dS)N�_)�
startswithr$r�_create_method_proxy�add)rr-r!r"rZmethrrrr?s

z%ModuleClsProxy._add_proxied_attributec	sDt�|�}t�|�}|dr:|dddkr:|d�d�tj|�}d}|dr`|t|d�7}|d}|r~|d|d�}	nd}	tj||d|d|	dd�d	�}
�fd
d�}||d<t|d
g�}|r�d}
}d|jt|�|f}dd�}||d<n|dd�}
|
dd�}d}t�	d|||
||j
d��}i}t|||�||S)Nrr%�rr�cSsd|S)N�=r)�xrrrr\rz5ModuleClsProxy._create_method_proxy.<locals>.<lambda>)Zformatvaluecstd|�jf��dS)Nz�Can't invoke function '%s', as the proxy object has not yet been established for the Alembic '%s' class.  Try placing this code inside a callable.)�	NameErrorr)r)rrr�_name_error^sz8ModuleClsProxy._create_method_proxy.<locals>._name_errorr7�_legacy_translationsz*args, **kwz+args, kw = _translate(%r, %r, %r, args, kw)c	Ss�i}g}x:|D]2\}}||krt�d|||f�|�|�||<qW|�|�t|�}|drz|ddt|d��}	n|d}	xJ|	D]B}
|
|kr�y|�|�d��Wq�tk
r�td|
��Yq�Xq�W|�	|�||fS)Nz,Argument %r is now named %r for method %s().r2rz(missing required positional argument: %s)
�warnings�warn�pop�update�list�lenr)�
IndexError�	TypeError�extend)Zfn_name�spec�translations�args�kwZ	return_kwZreturn_argsZoldnameZnewnameZpos_only�argrrr�	translateqs.


z6ModuleClsProxy._create_method_proxy.<locals>.translateZ
_translate����a        def %(name)s(%(args)s):
            %(doc)r
            %(translate)s
            try:
                p = _proxy
            except NameError:
                _name_error('%(name)s')
            return _proxy.%(name)s(%(apply_kw)s)
            e
        )rrGrD�apply_kw�doc)r$�inspectZ
getargspecr;Z
formatargspecr>r�tuple�textwrap�dedent�__doc__r)rrr!r"�fnrBrDZnum_defaultsZ	name_argsZdefaulted_valsrJr7rCZ
outer_argsZ
inner_argsZ
translate_strrGZ	func_textZlclr)rrr0IsP




z#ModuleClsProxy._create_method_proxyN)rrrrP�collections�defaultdictr�classmethodr
r'r(r+r*rr0rrrrrs
rcs�fdd�}|S)Ncs
�|_|S)N)r8)rQ)rCrr�decorate�sz$_with_legacy_names.<locals>.decorater)rCrUr)rCr�_with_legacy_names�srVcCs|dk	o|��dkS)N�true)�lower)rrrr�asbool�srYcCs tt���d}t|�dd�S)Nl@� �kr3rH)�int�uuidZuuid4�hex)�valrrr�rev_id�sr^cCs:|dkr|St|t�r|gSt|tj�r0t|�S|gSdS)N)�
isinstancerrR�Iterabler=)r5�defaultrrr�to_list�s
rbcCs:|dkr|St|t�r|fSt|tj�r0t|�S|fSdS)N)r_rrRr`rM)r5rarrr�to_tuple�s
rccs>t���j��s$��fdd�|D�S���fdd�|D�SdS)Ncs g|]}|�kr�|�s|�qSrr)�.0r5)�seen�seen_addrr�
<listcomp>�szunique_list.<locals>.<listcomp>cs(g|] }�|��kr��|��s|�qSrr)rdr5)�hashfuncrerfrrrg�s)rr1)�seqrhr)rhrerfr�unique_list�s
rjcCstt|��S)N)rMrj)�tuprrr�dedupe_tuple�srlc@s"eZdZdZddd�Zdd�ZdS)�memoized_propertyz2A read-only @property that is only evaluated once.NcCs||_|p|j|_|j|_dS)N)�fgetrPr)r%rnrKrrr�__init__�szmemoized_property.__init__cCs&|dkr|S|�|�|j|j<}|S)N)rn�__dict__r)r%�objr�resultrrr�__get__�szmemoized_property.__get__)N)rrrrProrsrrrrrm�s
rmc@s\eZdZdd�ZeZZZZZZ	Z
Zdd�Zdd�Z
dd�Zd	d
�Zdd�Zd
S)�
immutabledictcOstd|jj��dS)Nz%s object is immutable)r@rr)r%rFrErrr�
_immutable�szimmutabledict._immutablecGst�|�}tj|f|��|S)N)�dict�__new__ro)rrD�newrrrrw�s
zimmutabledict.__new__cGsdS)Nr)r%rDrrrroszimmutabledict.__init__cCstt|�ffS)N)rtrv)r%rrr�
__reduce__szimmutabledict.__reduce__cCs(|st|�St|�}t�||�|SdS)N)rtrvr<)r%�dZd2rrr�union	s
zimmutabledict.unioncCsdt�|�S)Nzimmutabledict(%s))rv�__repr__)r%rrrr|szimmutabledict.__repr__N)rrrru�__delitem__�__setitem__r�clearr;�popitem�
setdefaultr<rwroryr{r|rrrrrt�s rtc@s:eZdZddd�Zddd�Zddd�Zd	d
�Zdd�Zd
S)�
DispatcherFcCsi|_||_dS)N)�	_registry�uselist)r%r�rrrroszDispatcher.__init__racs���fdd�}|S)NcsD�jr �j���fg��|�n ��f�jks2t�|�j��f<|S)N)r�r�r�r)�AssertionError)rQ)�	qualifierr%�targetrrrUs
z)Dispatcher.dispatch_for.<locals>.decorater)r%r�r�rUr)r�r%r�r�dispatch_forszDispatcher.dispatch_forcCs�t|t�r|g}nt|t�r$|j}n
t|�j}xd|D]P}|dkrb||f|jkrb|�|j||f�S|df|jkr4|�|j|df�Sq4Wtd|��dS)Nraz#no dispatch function for object: %s)r_r�type�__mro__r��_fn_or_list�
ValueError)r%rqr�ZtargetsZspclsrrr�dispatch$s



zDispatcher.dispatchcs|jr�fdd�}|S�SdS)Ncsx�D]}|||�qWdS)Nr)rFrErQ)�
fn_or_listrr�go9s
z"Dispatcher._fn_or_list.<locals>.go)r�)r%r�r�r)r�rr�7szDispatcher._fn_or_listcs<t�}�jr*|j��fdd��jD��n|j��j�|S)zHReturn a copy of this dispatcher that is independently
        writable.c3s&|]}|dd��j|D�fVqdS)cSsg|]}|�qSrr)rdrQrrrrgGsz/Dispatcher.branch.<locals>.<genexpr>.<listcomp>N)r�)rd�k)r%rr�	<genexpr>Gsz$Dispatcher.branch.<locals>.<genexpr>)r�r�r�r<)r%rzr)r%r�branch@s
zDispatcher.branchN)F)ra)ra)rrrror�r�r�r�rrrrr�s




	r�)N)N)N)rNr9rLr[rR�compatrrrrZsqlalchemy.utilrrZsqlalchemy.util.compatr	r�r
rrVrYr^rbrcrjrl�objectrmrvrtr�rrrr�<module>s(



 

Zerion Mini Shell 1.0