Viewing File: /opt/alt/python38/lib/python3.8/site-packages/peewee_migrate/__pycache__/compat.cpython-38.pyc

U

/XR	@s dZddlZejddkZddZesteZefZefZ	ddZ
ddZddZdd	l
mZd-d
dZeZd.dd
ZnPeZeefZeefZ	ddZ
ddZddZdd	lmZedddZedddZdZeedrLGdddeZz0zeeW5QRXWnYnXWn.ek
r6dZYnek
rJYnXzddlmZWnek
rddl m!Z!Gddde"e!Zd d!Z#d"d#Z$d$d%Z%d&d'Z&e!j'Z'e!j(Z(e!j)Z)e!j*Z*e!j+Z+e!j
Z
e!jZe!jZYnXzdd(l,m-Z-Wn(ek
rd)d*Z.d/d+d,Z-YnXdS)0z Compatibility layer.

    Some py2/py3 compatibility support based on a stripped down
    version of six so we don't have to depend on a specific version
    of it.

    :copyright: (c) 2014 by Armin Ronacher.
    :license: BSD
NcCs|SNxrr
/compat.py<lambda>
rcCst|Sr)iterkeysdrrrrr	cCst|Sr)r
valuesrrrrrr	cCst|Sr)r
itemsrrrrrr	)StringIOcCs|j|k	r|||dSr)
__traceback__with_traceback)tpvaluetbrrrreraises

rcCs*t|trt|dddd}t|||dS)Nz<string>execT)dont_inherit)
isinstancestrcompiler)codeZglobZlocrrrexec_in"s
rcCs|Sr)iterkeysrrrrr,r	cCs|Sr)
itervaluesrrrrr-r	cCs|Sr)	iteritemsrrrrr.r	z5def reraise(tp, value, tb=None):
 raise tp, value, tbcCs|j|_dd|_|S)NcSs|dS)Nzutf-8)__unicode__encoderrrrr6r	z&implements_to_string.<locals>.<lambda>)__str__r!)clsrrrimplements_to_string4s
r%zdef exec_in(code, glob, loc=None):
        if isinstance(code, basestring):
            code = compile(code, '<string>', 'exec', dont_inherit=True)
        exec code in glob, loc
cs"Gfddd}|ddiS)Ncs&eZdZejZejZfddZdS)z!with_metaclass.<locals>.metaclasscs$|dkrt||d|S||S)Nr)type__new__)r$nameZ
this_basesr
basesmetarrr'Nsz)with_metaclass.<locals>.metaclass.__new__N)__name__
__module____qualname__r&__call____init__r'rr)rr	metaclassJsr1Ztemporary_classr)r+r*r1rr)rwith_metaclass@s
r2FZpypy_version_infoc@seZdZddZddZdS)_MgrcCs|Srrselfrrr	__enter__]sz_Mgr.__enter__cGstdSr)sysZ	exc_clear)r5argsrrr__exit__`sz
_Mgr.__exit__N)r,r-r.r6r9rrrrr3\sr3T)OrderedDict)	DictMixinc@s"eZdZeZddZddZdS)r:cOs||j||dSr)clearupdate)r5r8kwargsrrrr0vszOrderedDict.__init__cCst|_t|_t|dSr)dictZ_OrderedDict__maplistZ_OrderedDict__orderr<r4rrrr<zszOrderedDict.clearN)r,r-r.objectnullr0r<rrrrr:rsr:cCs6||kr$t|j|j|<|j|t|||dSr)len__order__mapappendr?__setitem__)r5keyrrrrrGsrGcCs$t|||j||j|_dSr)r?__delitem__rEpoprBrDr5rHrrrrIsrIccs |jD]}||jk	r|VqdSr)rDrBrKrrr__iter__s

rLcCst|Sr)r@r4rrrrsr)
import_modulec	Cspt|dstdt|}t|ddD]4}z|dd|}Wq&tk
rXtdYq&Xq&d|d	||fS)
z6Return the absolute name of the module to be imported.rindexz'package' not set to a string.rz2attempted relative import beyond top-level packagez%s.%sN)hasattr
ValueErrorrCZxrangerN)r(packageleveldotrrrr
_resolve_names
rWcCs^|drL|stdd}|D]}|dkr.q8|d7}qt||d||}t|tj|S)zImport a module.

        The 'package' argument is required when performing a relative import. It
        specifies the package to use as the anchor point from which to resolve the
        relative import to an absolute import.

        rQz/relative imports require the 'package' argumentrrON)
startswith	TypeErrorrW
__import__r7modules)r(rTrU	characterrrrrMs

rM)N)N)N)/__doc__r7version_infoZPY2Z	_identityrZ	text_typeZstring_typesintZ
integer_typesrrr iorrr%rZunicodeZlongZ	cStringIOrr2ZBROKEN_PYPY_CTXMGR_EXITrRrAr3AssertionErrorrYcollectionsr:ImportErrorUserDictr;r?rGrIrLr
setdefaultr=rJrr	importlibrMrWrrrr<module>sx	


Back to Directory File Manager