File: //opt/alt/python37/lib/python3.7/site-packages/alembic/util/__pycache__/langhelpers.cpython-37.pyc
B
W:/-�}J�� @ s� d dl Z d dlZd dlZd dlZd dlZddlmZmZmZm Z d dl
mZmZ d dl
mZ G dd� de�ZG dd � d e e��Zd
d� Zdd
� Zdd� Zddd�Zddd�Zd dd�Zdd� ZG dd� de�ZG dd� de�ZG dd� de�ZdS )!� N� )�callable�exec_�string_types�with_metaclass)�format_argspec_plus�update_wrapper)�inspect_getfullargspecc s e Zd Z� fdd�Z� ZS )�_ModuleClsMetac s t t| ��||� | �|� d S )N)�superr
�__setattr__�_update_module_proxies)�cls�key�value)� __class__� �I/opt/alt/python37/lib/python3.7/site-packages/alembic/util/langhelpers.pyr s z_ModuleClsMeta.__setattr__)�__name__�
__module__�__qualname__r �
__classcell__r r )r r r
s r
c @ sj e Zd ZdZe�dd� �Zedd� �Zdd� Z dd � Z
ed
d� �Zedd
� �Zedd� �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.
c C s
t � g fS )N)�setr r r r �<lambda> � zModuleClsProxy.<lambda>c C s4 | j | \}}x |D ]\}}| �||||� qW d S )N)�_setups�_add_proxied_attribute)r �name�
attr_names�modules�globals_�locals_r r r r
s z%ModuleClsProxy._update_module_proxiesc C sJ | j | j \}}x4|D ],\}}| |d<