U #IGZ� � @ s� d dl mZmZmZ d dlZd dlZd dlZd dlZejd dkZ e� � dkZe r�d dlm Z dd� ZdZd d � ZG dd� de �Zd d� Zndd� ZdZdd � Zdd� Zdd� Ze s�dd� Zndd� Zdd� Ze� ZdS )� )�absolute_import�division�print_functionN� ZPyPy)�IterableUserDictc C s t | ttjf�S �N)� isinstance�type�typesZ ClassType��klass� r �/_compat.py�isclass s r r c C s | � � S r )� iteritems��dr r r r s r c @ sT e Zd ZdZdd� Zdd� Zdd� Zdd � Zddd�Zd d� Z ddd�Z dd� Zd S )�ReadOnlyDictz5 Best-effort read-only dict wrapper. c C s t d��d S )Nz6'mappingproxy' object does not support item assignment�� TypeError)�self�key�valr r r �__setitem__! s zReadOnlyDict.__setitem__c C s t d��d S )Nz/'mappingproxy' object has no attribute 'update'��AttributeError�r �_r r r �update&