File: //opt/alt/python38/lib/python3.8/site-packages/peewee_migrate/__pycache__/compat.cpython-38.pyc
U
/�XR � @ s d Z ddlZejd dkZdd� ZesteZefZefZ dd� Z
dd� Zdd� Zdd l
mZ d-d
d�ZeZd.dd
�ZnPeZeefZeefZ dd� Z
dd� Zdd� Zdd lmZ ed� dd� Zed� dd� ZdZeed��rLG dd� de�Zz0ze� � e� �W 5 Q R X W n � Y nX W n. ek
�r6 dZY n ek
�rJ Y nX zddlmZ W n� ek
�r� ddl m!Z! G dd� de"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!jZY nX zdd(l,m-Z- W n( ek
�r d)d*� Z.d/d+d,�Z-Y nX dS )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
� N� c C s | S �N� ��xr r �F/opt/alt/python38/lib/python3.8/site-packages/peewee_migrate/compat.py�<lambda>
� r c C s t | �� �S r )�iter�keys��dr r r r r c C s t | �� �S r )r
�valuesr r r r r r c C s t | �� �S r )r
�itemsr r r r r r )�StringIOc C s |j |k r|�|��|�d S r )�
__traceback__�with_traceback)�tp�value�tbr r r �reraise s
r c C s* t | t�rt| dddd�} t| ||� d S )Nz<string>�execT)�dont_inherit)�
isinstance�str�compiler )�code�glob�locr r r �exec_in"