%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/
Upload File :
Create Path :
Current File : //opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyc

�
��4]c@sdZddlmZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZd	�Zd
efd��YZd�Zd
�Zd�Zd�Zd�Zd�Zd�Zdefd��YZd�Zdd�Zd�Zeed�Z e!d�Z"e!d�Z#d�Z$d�Z%dXddYd�Z&defd��YZ'd �Z(d!�Z)ddd"dd#�Z*d$�Z+dddd%�Z,d&efd'��YZ-d(�Z.d)efd*��YZ/d+efd,��YZ0ed-�Z1d.efd/��YZ2d0�Z3d1�Z4d2�Z5e!d3�Z6d4�Z7d5�Z8dd6�Z9d7�Z:d8�Z;d9e<fd:��YZ=d;efd<��YZ>d=efd>��YZ?d?e@fd@��YZAdAeA_BdAefdB��YZCdaDdC�ZEdD�ZFdEdF�ZGdGejHfdH��YZIdI�ZJdJ�ZKdK�ZLejMdL�ZNejMdM�ZOeOeNdN�ZPeQd�ZRdO�ZSdPeQfdQ��YZTdR�ZUdS�ZVdT�ZWdU�ZXdV�ZYdW�ZZdS(Zs�Routines to help with the creation, loading and introspection of
modules, classes, hierarchies, attributes, functions, and methods.

i����(tupdate_wrapperNi(t_collections(tcompati(texccCs>tjr|jd�}ntj�}|j|�|j�S(Nsutf-8(Rtpy3ktencodethashlibtmd5tupdatet	hexdigest(txtm((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytmd5_hexs
	
tsafe_reraisecBs2eZdZdZed�Zd�Zd�ZRS(sKReraise an exception after invoking some
    handler code.

    Stores the existing exception info before
    invoking so that it is maintained across a potential
    coroutine context switch.

    e.g.::

        try:
            sess.commit()
        except:
            with safe_reraise():
                sess.rollback()

    t	warn_onlyt	_exc_infocCs
||_dS(N(R(tselfR((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt__init__8scCstj�|_dS(N(tsystexc_infoR(R((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt	__enter__;scCs�|dkrI|j\}}}d|_|js�tj|||�q�natjr�|jr�|jdr�td|jd|jdf�nd|_tj|||�dS(NisfAn exception has occurred during handling of a previous exception.  The previous exception is:
 %s %s
i(tNoneRRRtreraiseRtwarn(Rttype_tvaluet	tracebacktexc_typet	exc_valuetexc_tb((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt__exit__>s		 	(RR(t__name__t
__module__t__doc__t	__slots__tFalseRRR(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR
$s
	cCs&djd�tjd|j�D��S(Nt css|]}|j�VqdS(N(tlower(t.0tn((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pys	<genexpr>Tss
([A-Z][a-z]+)(tjointretfindallR(tcls((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytclsname_as_plain_nameRscCs^g}xK|j|j|jfD]1}t|d�rC|j�}n|j|�qWt|�S(srdecode a slice object as sent to __getitem__.

    takes into account the 2.5 __index__() method, basically.

    t	__index__(tstarttstoptstepthasattrR-tappendttuple(tslctretR
((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytdecode_sliceXsc's�t|�}x�|D]y�tj�ftj�fd�td���}x@|D](}||krP|j|�|VPqPqPWtd���qWdS(Ncs�t|�S(N(tstr(ti(tbase(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt<lambda>kti�s&exhausted namespace for symbol base %s(tsett	itertoolstchainRtitertools_imaptrangetaddt	NameError(tusedtbasestpooltsym((R9sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt_unique_symbolsfs
$

ccs5x.|r0||d@}||�V||N}qWdS(s6Call the given function given each nonzero bit from n.iN((tfnR'tb((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytmap_bitsvs	cs�fd�}t|��S(s'A signature-matching decorator factory.cstj|�r/tj|�r/td��ntj|�}t|d�|dd!|jf}t|dd�\}}t	d|d|�}|j
t|dt��|j|d<d	|}t
|i�|6||6|j�}t|d
|�j|_||_t||�S(Nsnot a decoratable functioniiittargetRHtgroupedtnamesDdef %(name)s(%(args)s):
    return %(target)s(%(fn)s, %(apply_kw)s)
tim_func(tinspectt
isfunctiontismethodt	ExceptionRtinspect_getfullargspecR3RRGtdictRtformat_argspec_plusR#t_exec_code_in_envtgetattrt__defaults__t__wrapped__R(RHtspectnamest	targ_nametfn_nametmetadatatcodet	decorated(RK(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytdecorate�s %
 	(R(RKRa((RKsN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt	decoratorscBs||U||S(N((R_tenvR]((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRV�scBse|e�r4|j}|}d|j|f}n|}}d|}|jd�d}ej|�}|dd=e|de�}||d<d|}i|d	6e	d
6}	||	U|	|}
|j
|
_
d|jdd�d|
_ej
se|d
�r||j_
n	||_
|
S(s�Produce a wrapping function for the given cls or classmethod.

    Rationale here is so that the __init__ method of the
    class can serve as documentation for the function.

    s�Construct a new :class:`.%s` object. 

This constructor is mirrored as a public API function; see :func:`~%s` for a full usage and argument description.sJThis function is mirrored; see :func:`~%s` for a description of arguments.t.i����iRLRMs5def %(name)s(%(args)s):
    return cls(%(apply_kw)s)
R+tsymbolt
sqlalchemyit__func__(t
isinstancettypeRRtsplitRRSRUR#ReR!trsplitR tpy2kR1Rg(RKtlocationRHt	callable_tdoct
location_nameRZR^R_RcR`((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytpublic_factory�s0	


	tPluginLoadercBs/eZdd�Zd�Zd�Zd�ZRS(cCs||_i|_||_dS(N(tgrouptimplstauto_fn(RRsRu((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�s		cCs|jj�dS(N(Rttclear(R((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRv�scCs�||jkr|j|�S|jrR|j|�}|rR||j|<|�Snyddl}Wntk
run8Xx4|j|j|�D]}|j|j|<|j�SWtjd|j|f��dS(Ni����sCan't load plugin: %s:%s(	RtRut
pkg_resourcestImportErrortiter_entry_pointsRstloadRtNoSuchModuleError(RRMtloaderRwtimpl((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRz�s 	


cs#��fd�}||j|<dS(NcsItj��}x*�jd�dD]}t||�}q#Wt|��S(NRdi(Rtimport_RjRW(tmodttoken(t
modulepathtobjname(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRz�s(Rt(RRMR�R�Rz((R�R�sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytregister�sN(RR RRRvRzR�(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRr�s		cCsy
tj}Wn5tk
rDtj|�}|dt|d�fSX|j}|j}t|j	| �t|j
|@�fSdS(Nii(ROtCO_VARKEYWORDStAttributeErrorRRStboolt__code__tco_argcounttlisttco_varnamestco_flags(RHtco_varkeywordsRZtcotnargs((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt_inspect_func_args�s

		cCs�|dk}|rt�}n|jjdt�}|o]t|tj�o]t|jtj	�}|r�t
|�\}}|j|�|r�|r�dSn|s�|r�x-|jD]}t
||�dkr�Pq�q�Wn|jd�|S(seReturn the full set of inherited kwargs for the given `cls`.

    Probes a class's __init__ method, collecting all named arguments.  If the
    __init__ defines a \**kwargs catch-all, then the constructor is presumed
    to pass along unrecognized keywords to its base classes, and the
    collection process is repeated recursively on each of the bases.

    Uses a subset of inspect.getfullargspec() to cut down on method overhead,
    as this is used within the Core typing system to create copies of type
    objects which is a performance-sensitive operation.

    No anonymous tuple arguments please !

    RRN(RR<t__dict__tgetR#RhttypestFunctionTypeR�tCodeTypeR�Rt	__bases__tget_cls_kwargstdiscard(R+t_setttopleveltctrthas_initR[thas_kwtc((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�s$


cCstj|�dS(s�Return the set of legal kwargs for the given `func`.

    Uses getargspec so is safe to call for methods, functions,
    etc.

    i(RRS(tfunc((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytget_func_kwargs<scCs�tj|�r"td|��n�tj|�r�|r�|r�tj|�}tj|jd|j|j	|j
|j|j|j
�Stj|�Sntj|�r|r|s�|jrtj|j�}tj|jd|j|j	|j
|j|j|j
�Stj|j�Sn�tj|�r=t|jd|dt�St|d�r\tj|j�St|d�r�tj|j�r�t|jd|�Std|��ntd|��dS(	s�Return the argument signature for any callable.

    All pure-Python callables are accepted, including
    functions, methods, classes, objects with __call__;
    builtins and other edge cases like functools.partial() objects
    raise a TypeError.

    sCan't inspect builtin: %sitno_selft_is_initRgt__call__sCan't inspect callable: %sN(ROt	isbuiltint	TypeErrorRPRRStFullArgSpectargstvarargstvarkwtdefaultst
kwonlyargstkwonlydefaultstannotationsRQt__self__Rgtisclasstget_callable_argspecRtTrueR1R�(RHR�R�RZ((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�GsH	



c
Cs�tj|�r!tj|�}n|}tj|�}|drQ|dd}n!|drld|d}nd}tj|d|d|dd|d�}d}|dr�|t|d�7}n|dr�|t|d�7}n|d|d}|r|d|}nd}tj||d|d|dd��}	|rbtd	|d
|d|d|	�Std	|dd
!d
|d|dd
!d|	dd
!�SdS(s�Returns a dictionary of formatted, introspected function arguments.

    A enhanced variant of inspect.formatargspec to support code generation.

    fn
       An inspectable callable or tuple of inspect getargspec() results.
    grouped
      Defaults to True; include (parens, around, argument) lists

    Returns:

    args
      Full inspect.formatargspec for fn
    self_arg
      The name of the first positional argument, varargs[0], or None
      if the function defines no positional arguments.
    apply_pos
      args, re-written in calling rather than receiving syntax.  Arguments are
      passed positionally.
    apply_kw
      Like apply_pos, except keyword-ish args are passed as keywords.

    Example::

      >>> format_argspec_plus(lambda self, a, b, c=3, **d: 123)
      {'args': '(self, a, b, c=3, **d)',
       'self_arg': 'self',
       'apply_kw': '(self, a, b, c=c, **d)',
       'apply_pos': '(self, a, b, c, **d)'}

    iis%s[0]iiitformatvaluecSsd|S(Nt=((R
((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR:�R;R�tself_argt	apply_postapply_kwi����N((RtcallableRStinspect_formatargspecRtlenRT(
RHRLRZR�R�R�tnum_defaultst	name_argstdefaulted_valsR�((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRU}sJ 

%



c	Cs}|tjkr$|rdpd}n:yt|d|�SWn#tk
r]|rTdpWd}nXtddd|d|d	|�S(
sformat_argspec_plus with considerations for typical __init__ methods

    Wraps format_argspec_plus with error handling strategies for typical
    __init__ cases::

      object.__init__ -> (self)
      other unreflectable (usually C) -> (self, *args, **kwargs)

    s(self)RRLs(self, *args, **kwargs)sself, *args, **kwargsR�R�R�R�(tobjectRRUR�RT(tmethodRLR�((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytformat_argspec_init�s


cCs^ytj|�SWnFtk
rY|tjkrCdgdddfSdgdddfSnXdS(s�inspect.getargspec with considerations for typical __init__ methods

    Wraps inspect.getargspec with error handling for typical __init__ cases::

      object.__init__ -> (self)
      other unreflectable (usually C) -> (self, *args, **kwargs)

    RR�tkwargsN(RRSR�R�RR(R�((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytgetargspec_init�s	
cCs+t|tj�r#|jr#|jS|SdS(sSAdjust the incoming callable such that a 'self' argument is not
    required.

    N(RhR�t
MethodTypeR�Rg(tfunc_or_cls((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytunbound_method_to_callable�scs|dkr�g}ntj|�}t�}g}tj�}d}x8t|�D]*\}}	ytj|	j�}
Wnt	k
r�qUqUX|
j
r�t|
j
�p�d}|dkr|
jr�|
j}n|r�|j
|
jd|!�q6|j
|
jd�n1|jg|
jd|!D]}||f^q�|rU|jgt|
j||
j
�D]\}}
||
f^q]�qUqUWg}|j
�fd�|D��|dk	r�t�|�r�|j
gt�|�D]}t|�^q��nx�|j�D]z\}}||krqnyHt�||�}||k	re||kre|jd||f�nWqtk
ryqXqW|r�xs|D]h\}}yHt�||�}||k	r�||kr�|jd||f�nWq�tk
r�q�Xq�Wnd�jjdj|�fS(s}Produce a __repr__() based on direct association of the __init__()
    specification vs. same-named attributes present.

    iic3s'|]}tt�|d��VqdS(N(treprRWR(R&targ(tobj(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pys	<genexpr>3ss%s=%rs%s(%s)s, N(RRtto_listR�tOrderedDictt	enumerateRRSRR�R�R�R�textendR�RtzipR1RWR�titemsR2RRt	__class__RR((R�t
additional_kwt
to_inspectt
omit_kwargtmissingtpos_argstkw_argstvargsR8tinspRZtdefault_lenR�tdefaulttoutputtvaltdefval((R�sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytgeneric_reprs`	
	+;2

tportable_instancemethodcBs;eZdZd	Zd�Zd�Zd
d�Zd�ZRS(s_Turn an instancemethod into a (parent, name) pair
    to produce a serializable callable.

    RKRMR�t__weakref__cCs"i|jd6|jd6|jd6S(NRKRMR�(RKRMR�(R((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt__getstate__Vs

cCs3|d|_|d|_|jdd�|_dS(NRKRMR�((RKRMR�R�(Rtstate((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt__setstate__]s

cCs%|j|_|j|_||_dS(N(R�RKRRMR�(RtmethR�((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRbscOs,|j|j�t|j|j�||�S(N(RR�RWRKRM(RR�tkw((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�gs(RKRMR�R�((RR R!R"R�R�RR�(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�Ns		cs�tjr%t|tj�r%t�Sn|h�t|j�}x=|r||j�}tjr�t|tj�rsq@n�fd�|jD�}n�fd�|jD�}x(|D] }|j	|��j
|�q�Wtjr|jdks@t
|d�r)q@q)n%|jdks@t
|d�r)q@nxMg|j�D]}|�kr9|^q9D] }|j	|��j
|�qUWq@Wt��S(s�Return an unordered sequence of all classes related to cls.

    Traverses diamond hierarchies.

    Fibs slightly: subclasses of builtin types are not returned.  Thus
    class_hierarchy(class A(object)) returns (A, object), not A plus every
    class systemwide that derives from object.

    Old-style classes are discarded and hierarchies rooted on them
    will not be descended.

    c3s4|]*}|�krt|tj�r|VqdS(N(RhR�t	ClassType(R&t_(thier(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pys	<genexpr>�sc3s!|]}|�kr|VqdS(N((R&R�(R�(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pys	<genexpr>�stbuiltinst__subclasses__t__builtin__(RRlRhR�R�R�t__mro__tpopR�R2RARR R1R�(R+tprocessR�RDRIR�ts((R�sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytclass_hierarchyls4
	
			

		
2
ccsZt|�}xG|D]?}x6|jD]+}||jkr#||j|fVPq#q#WqWdS(s�iterate all the keys and attributes associated
       with a class, without using getattr().

       Does not use getattr() so that class-sensitive
       descriptors (i.e. property.__get__()) are not called.

    N(tdirR�R�(R+tkeystkeyR�((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytiterate_attributes�s
s
self.proxycCs�|r|}nn|dkr$d}ngt|�D]F}|jd�r1|jd�r1t||�r1||kr1|^q1}x4|D],}y:t||�}	t|	d�s�w�nt|	d	|	�}	Wntk
r�q�nXy=tj|	�}
tj	|
d
�}tj	|
d
d�}Wnt
k
r7d}d
}nXdt�}
|dk	r^i||6pai}tj|
|�y|	j
||_
Wntk
r�nXt||||�q�WdS(s9Automates delegation of __specials__ for a proxying type.R"t__del__t__getattribute__t
__metaclass__R�R�t__R�RNiis(self, *args, **kw)s
(*args, **kw)s?def %(method)s%(fn_args)s: return %(name)s.%(method)s%(d_args)sN(R"R�R�R�R�R�(RR�t
startswithtendswithR1RWR�RRSR�R�tlocalstexec_RXtsetattr(tinto_clstfrom_clstskiptonlyRMt
from_instancetdundersRR�RHRZtfn_argstd_argstpyRc((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytmonkeypatch_proxied_specials�sN
		





cCs"t|d|�t|d|�kS(s;Return True if the two methods are the same implementation.Rg(RW(tmeth1tmeth2((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytmethods_equivalent�sc
Cs1|r|rtd��nt|t�r?t||�r?|St|psgt|�D]}|jd�sU|^qU�}tt|��}tj}t|t�r�|}n'|s�t�}tj}nt|�}||j	|�|�r�|St|t
�s>|tjkrdpd}td||dj|�f��ndtfd��Y}	|rmd	|j
|	_
nt�}
x�t|�D]v\}}||kr�td
|��ntj|�s�td||f��nt|	|t|��|
j|�q�W||
|�r|	Stddj||
���d
S(s�Ensure basic interface compliance for an instance or dict of callables.

    Checks that ``obj`` implements public methods of ``cls`` or has members
    listed in ``methods``. If ``required`` is not supplied, implementing at
    least one interface method is sufficient. Methods present on ``obj`` that
    are not in the interface are ignored.

    If ``obj`` is a dict and ``dict`` does not meet the interface
    requirements, the keys of the dictionary are inspected. Keys present in
    ``obj`` that are not in the interface will raise TypeErrors.

    Raises TypeError if ``obj`` does not meet the interface criteria.

    In all passing cases, an object with callable members is returned.  In the
    simple case, ``obj`` is returned as-is; if dict processing kicks in then
    an anonymous class is returned.

    obj
      A type, instance, or dictionary of callables.
    cls
      Optional, a type.  All public methods of cls are considered the
      interface.  An ``obj`` instance of cls will always pass, ignoring
      ``required``..
    methods
      Optional, a sequence of method names to consider as the interface.
    required
      Optional, a sequence of mandatory implementations. If omitted, an
      ``obj`` that provides at least one interface method is considered
      sufficient.  As a convenience, required may be a type, in which case
      all public methods of the type are required.

    s2a class or collection of method names are requiredR�sany ofsall ofs%r does not implement %s: %ss, tAnonymousInterfacecBseZdZRS(sA callable-holding shell.(RR R!(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR4st	Anonymouss%r: unknown in this interfaces%r=%r is not callables,dictionary does not contain required keys %sN(R�RhRiR<R�R�toperatortgetgttintersectionRTR(R�Rtdictlike_iteritemsRR�R�tstaticmethodRA(
R�R+tmethodstrequiredRt	interfacetimplementedtcompliest	qualifierRtfoundR�R}((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytas_interface�sH!:				tmemoized_propertycBs;eZdZdd�Zd�Zd�Zed��ZRS(s2A read-only @property that is only evaluated once.cCs+||_|p|j|_|j|_dS(N(tfgetR!R(RRRo((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyROs	cCs1|dkr|S|j|�|j|j<}|S(N(RRR�R(RR�R+tresult((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt__get__TscCstj||j�dS(N(RtresetR(RR�((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt_resetZscCs|jj|d�dS(N(R�R�R(R+R�RM((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR]sN(	RR R!RRRRtclassmethodR(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRLs
		cs�fd�}t|��S(s�Decorate a method memoize its return value.

    Best applied to no-arg methods: memoization is not sensitive to
    argument values, and will always return the same value even when
    called with different arguments.

    csM�|||���fd�}�j|_�j|_||j�j<�S(Ncs�S(N((taR�(R(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytmemons(RR!R�(RR�R�R (RH(RsN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytoneshotks(R(RHR!((RHsN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytmemoized_instancemethodbs	t!group_expirable_memoized_propertycBs5eZdZdd�Zd�Zd�Zd�ZRS(s?A family of @memoized_properties that can be expired in tandem.cCs&g|_|r"|jj|�ndS(N(t
attributesR�(RR$((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR|s	cCs1|j}x!|jD]}|j|d�qWdS(s.Expire all memoized properties for *instance*.N(R�R$R�R(Rtinstancetstasht	attribute((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytexpire_instance�s	cCs|jj|j�t|�S(N(R$R2RR(RRH((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR��scCs|jj|j�t|�S(N(R$R2RR"(RRH((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR��s((RR R!RR(R�R�(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR#ys
		t
MemoizedSlotscBs&eZdZdZd�Zd�ZRS(s�Apply memoized items to an object using a __getattr__ scheme.

    This allows the functionality of memoized_property and
    memoized_instancemethod to be available to a class using __slots__.

    cCst|��dS(N(R�(RR�((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt_fallback_getattr�scs��jd�rt���n�t�d��r[t�d���}t��|�|St�d��r�t�d������fd�}�j|_|S�j��SdS(Nt	_memoizeds_memoized_attr_%ss_memoized_method_%scsJ�||���fd�}�j|_�j|_t��|��S(Ncs�S(N((RR�(R(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR �s(RR!R�(R�R�R (RHR�R(RsN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR!�s(R�R�R1RWR�R!R*(RR�RR!((RHR�RsN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt__getattr__�s((RR R!R"R*R,(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR)�s	cs��fd�}|S(Ncs��jd�}tjdj|dd!�t�t�|dg�}t||d�}t||j|��r�t	|d�r�|j
j|j�n|S(NRdii����t__all__(RjRR~R(tglobalsR�RWR�RR1R-R2(R�ttokensR(t
add_to_allt
modulename(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRa�s/((R1R0Ra((R0R1sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytdependency_for�stdependenciescBsTeZdZd�Zd�Zed��Ze�ZiZ	de
fd��YZRS(s�Apply imported dependencies as arguments to a function.

    E.g.::

        @util.dependencies(
            "sqlalchemy.sql.widget",
            "sqlalchemy.engine.default"
        );
        def some_func(self, widget, default, arg1, arg2, **kw):
            # ...

    Rationale is so that the impact of a dependency cycle can be
    associated directly with the few functions that cause the cycle,
    and not pollute the module-level namespace.

    cGs]g|_xM|D]E}|jd�}|jjtjdj|dd!�|d��qWdS(NRdii����(timport_depsRjR2R3t_importlaterR((RtdepstdepR/((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�s
	
	cCs!|j}tj|�}t|d�}|ddk}x<tt|��D](}d||d||rndnd<qKWt|dt�}x!|D]}||r�dnd=q�W||d(t|dt�}	di|	dd6|d	d	6}
t|
t	��}t
|d
|�j|_t||�S(NiRR+simport_deps[%r]iRLs!lambda %(args)s: fn(%(apply_kw)s)R�R�RN(RR+(
R4RRSR�R@R�RUR#tevalR�RWRXR(RRHR4RZt	spec_zerothasselfR8t
inner_spectimpnamet
outer_specR_R`((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR��s"	&
cCs=x6ttj�D]%}|jj|�r|j�qqWdS(N(R�R3t_unresolvedt
_full_pathR�t_resolve(R+tpathR((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytresolve_all�sR5cBsYeZe�ZiZd�Zd�Zed��Ze	d��Z
d�Zd�ZRS(cCsJ|d|}|tjkr(tj|Stj|�tj|<}|SdS(NRd(R3t_by_keyR�t__new__(R+RAtaddtlR�timp((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRD
s
cCs&||_||_tjj|�dS(N(t_il_patht	_il_addtlR3R>RA(RRARE((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRs		cCs|jd|jS(NRd(RGRH(R((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR?scCsA|tjkr.td|j|jf��nt|j|j�S(Ns<importlater.resolve_all() hasn't been called (this is %s %s)(R3R>RxRGRHRWt_initial_import(R((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytmodules
cCs>tjj|�tj|jt�t�|jg�|_	dS(N(
R3R>R�RR~RGR.R�RHRI(R((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR@&scCsv|dkr"td|j��nyt|j|�}Wn*tk
rdtd|j|f��nX||j|<|S(NRJsCould not resolve module %ssModule %s has no attribute '%s'(RxR?RWRJR�R�(RR�tattr((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR,,s

(
RR R<R>RCRDRtpropertyR?RRJR@R,(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR5s				(RR R!RR�RRBR<R>RCR�R5(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR3�s			cCsat|tj�rW|j�j�}|dkr4tS|dkrDtStd
|��nt|�S(Nttruetyestontyttt1tfalsetnotoffR'tft0sString is not true/false: %r(RMRNRORPRQRR(RSRTRUR'RVRW(	RhRtstring_typeststripR%R�R#t
ValueErrorR�(R�((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytasbool<scs�fd�}|S(sqReturn a callable that will evaluate a string as
    boolean, or one of a set of "alternate" string values.

    cs|�kr|St|�SdS(N(R[(R�(ttext(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt
bool_or_valueNs((R\R]((R\sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytbool_or_strHscCs|dkr|St|�S(sCoerce to integer.N(Rtint(R((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytasintWscCs�||kr�t|t�s0t|||�r�||dk	r�|tkri|rit||�||<q�|||�||<ndS(s�If 'key' is present in dict 'kw', coerce its value to type 'type\_' if
    necessary.  If 'flexi_bool' is True, the string '0' is considered false
    when coercing to boolean.
    N(RhRiRR�R[(R�R�Rt
flexi_bool((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytcoerce_kw_type_s$cs?t|�}|j�fd�|j|�D��|||�S(s�Instantiate cls using the __dict__ of obj as constructor arguments.

    Uses inspect to match the named arguments of ``cls``.

    c3s1|]'}|�jkr|�j|fVqdS(N(R�(R&tk(R�(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pys	<genexpr>ys(R�Rt
difference(R�R+R�R�R[((R�sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytconstructor_copyps cs4tjj��tjd����fd�}|S(s%Return a threadsafe counter function.ics*�j�zt��SWd�j�XdS(N(tacquiretnexttrelease((tcountertlock(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt_next�s
(Rt	threadingtLockR=tcount(Rk((RiRjsN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRi~scCs�t|d�r>|jdk	r4t|jt�r4tS|jSnt|t�rStpVt}||t�rltS||t�rtS||t�r�tSt|d�r�tSt|d�r�tSt|d�r�tS|SdS(s�Given an instance or class, guess if it is or is acting as one of
    the basic collection types: list, set and dict.  If the __emulates__
    property is present, return that preferentially.
    t__emulates__R2RAR<N(	R1RoRt
issubclassR<RhRiR�RT(tspecimenR�tisa((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytduck_type_collection�s&
cCs�t||�r|St|t�rZtjd|djd�|D��t|�f��n"tjd||t|�f��dS(Ns8Argument '%s' is expected to be one of type %s, got '%s's or css|]}d|VqdS(s'%s'N((R&R((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pys	<genexpr>�ss6Argument '%s' is expected to be of type '%s', got '%s'(RhR3Rt
ArgumentErrorR(Ri(R�targtypeRM((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytassert_arg_type�s/cstjr+t�d�rct�j��Sn8t�d�rD�j�St�d�rct�j��St�dt�dd
����d
kr�t	d���nt�d�r���fd�}|�St�d�r�t�fd	��j
�D��St	d���d
S(s?Return a (key, value) iterator for almost any dict-like object.R�t	iteritemst__getitem__R�sObject '%r' is not dict-liketiterkeysc3s,x%�j�D]}|�|�fVq
WdS(N(Ry(R�(tdictliketgetter(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytiterator�sR�c3s!|]}|�|�fVqdS(N((R&R�(R{(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pys	<genexpr>�sN(RRR1R�R�RwtiterRWRR�R�(RzR|((RzR{sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�s 	
 t
classpropertycBs eZdZd�Zd�ZRS(sAA decorator that behaves like @property except that operates
    on classes rather than instances.

    The decorator is currently special when using the declarative
    module, but note that the
    :class:`~.sqlalchemy.ext.declarative.declared_attr`
    decorator should be used for this purpose with declarative.

    cOs,tt|�j|||�|j|_dS(N(tsuperR~RR!(RRR�R�((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�scCs
|j|�S(N(R(tdescRR+((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�s(RR R!RR(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR~�s		thybridpropertycBseZd�Zd�ZRS(cCs
||_dS(N(R�(RR�((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�scCs?|dkr.|j|�}|jj|_|S|j|�SdS(N(RR�R!(RR%townertclsval((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�s
(RR RR(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR��s	thybridmethodcBs eZdZd�Zd�ZRS(s/Decorate a function as cls- or instance- level.cCs
||_dS(N(R�(RR�((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRscCs9|dkr"|jj||j�S|jj||�SdS(N(RR�RR�(RR%R�((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRs(RR R!RR(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR��s	t_symbolcBs2eZddd�Zd�Zd�Zd�ZRS(cCsdt|tj�st�|dkr3t|�}ntjt|�}||_	|r`||_
n|S(sConstruct a new named symbol.N(RhRRXtAssertionErrorRthashR_RDR�RMR!(RRMRot	canonicaltv((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRDs	cCst|jdt|�ffS(NR
(ReRMR_(R((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt
__reduce__scCs
t|�S(N(R�(R((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt__str__scCsd|jS(Ns
symbol(%r)(RM(R((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt__repr__sN(RR RRDR�R�R�(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�
s		RecBs2eZdZiZejj�Zddd�Z	RS(s�A constant symbol.

    >>> symbol('foo') is symbol('foo')
    True
    >>> symbol('foo')
    <symbol 'foo>

    A slight refinement of the MAGICCOOKIE=object() pattern.  The primary
    advantage of symbol() is its repr().  They are also singletons.

    Repeated calls of symbol('name') will all return the same instance.

    The optional ``doc`` argument assigns to ``__doc__``.  This
    is strictly so that Sphinx autoattr picks up the docstring we want
    (it doesn't appear to pick up the in-module docstring if the datamember
    is in a different module - autoattribute also blows up completely).
    If Sphinx fixes/improves this then we would no longer need
    ``doc`` here.

    cCsh|jj�zF|jj|�}|dkrNt|||�|j|<}n|SWdtjj�XdS(N(t_lockRftsymbolsR�RR�ReRh(R+RMRoR�RF((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRD<s
 N(
RR R!R�RRlRmR�RRD(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRe#scCst|_td7adS(s�Assign a '_creation_order' sequence to the given instance.

    This allows multiple instances to be sorted in order of creation
    (typically within a single thread; the counter is not particularly
    threadsafe).

    iN(t_creation_order(R%((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytset_creation_orderJs		cOsDy|||�SWn,tk
r?tdtj�dd!�nXdS(sXexecutes the given function, catches all exceptions and converts to
    a warning.

    s%s('%s') ignorediiN(RRRRR(R�R�R�((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytwarn_exceptionWs
icCsBy)t|�|kr$d|d|!S|SWntk
r=|SXdS(Ns%s...i(R�R�(Rtlen_((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytellipses_stringbs
t_hash_limit_stringcBs)eZdZd�Zd�Zd�ZRS(s/A string subclass that can only be hashed on a maximum amount
    of unique values.

    This is used for warnings so that we can send out parameterized warnings
    without the __warningregistry__ of the module,  or the non-overridable
    "once" registry within warnings.py, overloading memory,


    cCsT||d|}tt|�j||�}td|t|�|f�|_|S(Ns6 (this warning may be suppressed after %d occurrences)s%s_%d(RR�RDR�t_hash(R+RtnumR�tinterpolatedR((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRDws
#cCs|jS(N(R�(R((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt__hash__scCst|�t|�kS(N(R�(Rtother((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt__eq__�s(RR R!RDR�R�(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�ls			cCstj|tjdd�dS(sdIssue a warning.

    If msg is a string, :class:`.exc.SAWarning` is used as
    the category.

    t
stackleveliN(twarningsRRt	SAWarning(tmsg((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�scCs8|rt|d|�}ntj|tjdd�dS(s\Issue a warning with a parameterized string, limiting the number
    of registrations.

    i
R�iN(R�R�RRR�(R�R�((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytwarn_limited�scs|g��fd�}|S(sNDecorate the given function to be a no-op after it is called exactly
    once.cs#�r�j�}|||�SdS(N(R�(R�R�tonce_fn(tonce(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytgo�s((RHR�((R�sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt	only_once�s	s%sqlalchemy/([a-z_]+/){0,2}[a-z_]+\.pysunit(?:2|test2?/)cCs�d}t|�d}x-||krE|j||�rE|d7}qWx-||kru|j||�ru|d8}qIW|||d!S(stChop extraneous lines off beginning and end of a traceback.

    :param tb:
      a list of traceback lines as returned by ``traceback.format_stack()``

    :param exclude_prefix:
      a regular expression object matching lines to skip at beginning of
      ``tb``

    :param exclude_suffix:
      a regular expression object matching lines to skip at end of ``tb``
    ii(R�tsearch(ttbtexclude_prefixtexclude_suffixR.tend((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytchop_traceback�s
""cBs)d|}e�j�}||U|dS(Ns&def set(obj, value):    obj.%s = valueR<(R�tcopy(tattrnameR_Rc((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt
attrsetter�s
tEnsureKWArgTypecBs eZdZd�Zd�ZRS(sYApply translation of functions to accept \**kw arguments if they
    don't already.

    c
Cs�|j}|r�xx|D]m}tj||�}|r||}tj|�}|js�|j|�||<}	t|||	�q�qqWntt	|�j
|||�dS(N(tensure_kwargR)tmatchRRSR�t
_wrap_w_kwR�RR�R(
R+tclsnameRDtclsdicttfn_regR�RRHRZtwrapped((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�s	

	cs�fd�}t|��S(Ncs
�|�S(N((R�R�(RH(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytwrap�s(R(RRHR�((RHsN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR��s(RR R!RR�(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR��s	
cCs�t|d�rt||�S|}|jj|_t|d�rO|j|_nt|jd�r|jjr|jj|_n|jr�|j|_n|SdS(s�Augment functools.update_wrapper() to work with objects with
    a ``__call__()`` method.

    :param fn:
      object with __call__ method

    RR R!N(R1RR�RR R�R!(twrapperRHt_f((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt
wrap_callable�s
	cCs!d|kr|jd�Sd}gg}d}t|�}x�||kr||}|dkr�|dkr�||dkr�||ddkr�|djd�|d7}q�|dN}n9|dkr�|dkr�|jg�n|dj|�|d7}q=Wg|D]}dj|�^qS(s�Parse a dotted identifier with accommodation for quoted names.

    Includes support for SQL-style double quotes as a literal character.

    E.g.::

        >>> quoted_token_parser("name")
        ["name"]
        >>> quoted_token_parser("schema.name")
        ["schema", "name"]
        >>> quoted_token_parser('"Schema"."Name"')
        ['Schema', 'Name']
        >>> quoted_token_parser('"Schema"."Name""Foo"')
        ['Schema', 'Name""Foo']

    t"Rdiii����R;(RjR�R2R((RR�RtidxtlvtcharR�((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytquoted_token_parser�s$
	
0

cs%tj�����fd�}|S(NcsS|jdk	r|jpd}|rFt|�fd��D��}n||_|S(NR;csi|]}�|�qS(((R&tparam(R\(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pys
<dictcomp>0s	(R!Rtinject_param_text(RHRo(tparamsR\(sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyRa-s
"	(RR�(R�R\Ra((R�R\sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytadd_parameter_text*scCsi|jdd�}t|�dkr(|S|\}}|jd�sX|dtj|�Stj|�SdS(Ns
iR$(RjR�R�ttextwraptdedent(R\t
split_textt	firstlinet	remaining((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt_dedent_docstring7sc	Cs�t|pd�}|jd�}tj|�jd�}|drV|jdd�ngt|�D]\}}|j�sc|^qc}|jdd�|t|t|�d�}|d|!|||}dj	|�S(NR;s
ii(
R�RjR�R�tinsertR�RYtminR�R((	tdoctextt
injecttexttpostlinestinjectlinesR�tlinetblankst
inject_pos((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pytinject_docstring_textCs
1c
Cs�|j�}g}d}x�|r�|jd�}|dkr�tjd|�}|r�|jd�}||kr�dt|jd��d}|r�tjd|d�}	|	r�dt|	jd��}q�n|||}q�q�n�|j�jd�r)|j	d�|j	|�|j	d�d}nt|j
�se|j	|�|j	|�|j	d�d}n8|jd	�r�|j	|�|j	|jd��qn|j	|�qWdj|�S(
Nis(\s+):param (?:\\\*\*?)?(.+?):iR$is(\s+)\Ss:param s
s::(
t
splitlinesRR�R)R�RsR�tlstripR�R2trstripR�R((
R�t
inject_paramstdoclinesR�t	to_injectR�RR�tindenttm2((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyR�SsB	


	


	
((([R!t	functoolsRRROR=R
R)RR�R�R�R;RRRRR�R
R,R6RGRJRbRVRqRrR�RR�R�R#R�R�RUR�R�R�R�R�R�R�RRRRR"R#R)R2R3R[R^R`RbReRiRsRvRRLR~R�R�R_R�RReR�R�R�R�t	text_typeR�RR�R�tcompilet_SQLA_REt_UNITTEST_RER�RitNoneTypeR�R�R�R�R�R�R�R�(((sN/opt/alt/python27/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.pyt<module>s�	.								0*	+	6S		H	3	9	V	(u					!		

	$	
	
	
	
				,	
		

Zerion Mini Shell 1.0