HEX
Server: LiteSpeed
System: Linux ws4.angoweb.net 5.14.0-611.13.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 11 04:57:59 EST 2025 x86_64
User: tswangoe (2287)
PHP: 8.1.33
Disabled: show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/alembic/util/__pycache__/langhelpers.cpython-37.pyc
B

W:/-�}J��@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__��I/opt/alt/python37/lib/python3.7/site-packages/alembic/util/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"r�methrrrr?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>)�formatvaluecstd|�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_errorr9�_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().r3rz(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
        )rrIrF�apply_kw�doc)r$�inspect�
getargspecr=�
formatargspecr@r�tuple�textwrap�dedent�__doc__r)rrr!r"�fnrDrF�num_defaultsZ	name_argsZdefaulted_valsrLr9rEZ
outer_argsZ
inner_argsZ
translate_strrIZ	func_textZlclr)rrr0IsP




z#ModuleClsProxy._create_method_proxyN)rrrrT�collections�defaultdictr�classmethodr
r'r(r+r*rr0rrrrrs
rcs�fdd�}|S)Ncs
�|_|S)N)r:)rU)rErr�decorate�sz$_with_legacy_names.<locals>.decorater)rErZr)rEr�_with_legacy_names�sr[cCs|dk	o|��dkS)N�true)�lower)rrrr�asbool�sr^cCs tt���d}t|�dd�S)Nl@� �kr4rJ)�int�uuidZuuid4�hex)�valrrr�rev_id�srccCs:|dkr|St|t�r|gSt|tj�r0t|�S|gSdS)N)�
isinstancerrW�Iterabler?)r6�defaultrrr�to_list�s
rgcCs:|dkr|St|t�r|fSt|tj�r0t|�S|fSdS)N)rdrrWrerQ)r6rfrrr�to_tuple�s
rhcs>t���j��s$��fdd�|D�S���fdd�|D�SdS)Ncs g|]}|�kr�|�s|�qSrr)�.0r6)�seen�seen_addrr�
<listcomp>�szunique_list.<locals>.<listcomp>cs(g|] }�|��kr��|��s|�qSrr)rir6)�hashfuncrjrkrrrl�s)rr1)�seqrmr)rmrjrkr�unique_list�s
rocCstt|��S)N)rQro)�tuprrr�dedupe_tuple�srqc@s"eZdZdZddd�Zdd�ZdS)�memoized_propertyz2A read-only @property that is only evaluated once.NcCs||_|p|j|_|j|_dS)N)�fgetrTr)r%rsrMrrr�__init__�szmemoized_property.__init__cCs&|dkr|S|�|�|j|j<}|S)N)rs�__dict__r)r%�objr�resultrrr�__get__�szmemoized_property.__get__)N)rrrrTrtrxrrrrrr�s
rrc@s\eZdZdd�ZeZZZZZZ	Z
Zdd�Zdd�Z
dd�Zd	d
�Zdd�Zd
S)�
immutabledictcOstd|jj��dS)Nz%s object is immutable)rBrr)r%rHrGrrr�
_immutable�szimmutabledict._immutablecGst�|�}tj|f|��|S)N)�dict�__new__rt)rrF�newrrrr|�s
zimmutabledict.__new__cGsdS)Nr)r%rFrrrrtszimmutabledict.__init__cCstt|�ffS)N)ryr{)r%rrr�
__reduce__szimmutabledict.__reduce__cCs(|st|�St|�}t�||�|SdS)N)ryr{r>)r%�d�d2rrr�union	s
zimmutabledict.unioncCsdt�|�S)Nzimmutabledict(%s))r{�__repr__)r%rrrr�szimmutabledict.__repr__N)rrrrz�__delitem__�__setitem__r�clearr=�popitem�
setdefaultr>r|rtr~r�r�rrrrry�s ryc@s:eZdZddd�Zddd�Zddd�Zd	d
�Zdd�Zd
S)�
DispatcherFcCsi|_||_dS)N)�	_registry�uselist)r%r�rrrrtszDispatcher.__init__rfcs���fdd�}|S)NcsD�jr �j���fg��|�n ��f�jks2t�|�j��f<|S)N)r�r�r�r)�AssertionError)rU)�	qualifierr%�targetrrrZs
z)Dispatcher.dispatch_for.<locals>.decorater)r%r�r�rZr)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)Nrfz#no dispatch function for object: %s)rdr�type�__mro__r��_fn_or_list�
ValueError)r%rvr��targetsZspclsrrr�dispatch$s



zDispatcher.dispatchcs|jr�fdd�}|S�SdS)Ncsx�D]}|||�qWdS)Nr)rHrGrU)�
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)rirUrrrrlGsz/Dispatcher.branch.<locals>.<genexpr>.<listcomp>N)r�)ri�k)r%rr�	<genexpr>Gsz$Dispatcher.branch.<locals>.<genexpr>)r�r�r�r>)r%rr)r%r�branch@s
zDispatcher.branchN)F)rf)rf)rrrrtr�r�r�r�rrrrr�s




	r�)N)N)N)rRr;rNr`rW�compatrrrrZsqlalchemy.utilrrZsqlalchemy.util.compatr	r�r
rr[r^rcrgrhrorq�objectrrr{ryr�rrrr�<module>s(