U ���`S � @ s� d Z ddlmZ ddlmZmZ ddlmZmZ ddlm Z ddl mZ ddlm Z mZ ddlmZmZ ed d �Zedd�Zedd�Zd Zedd�Zedd�Zedd�Zedd�Zedd�Zedd�ZdZedd�Zedd�Zedd�Zedd�Zed d!�Zed"d#�Z ed$d%�Z!ed&d'�Z"ed(d)�Z#ed*d+�Z$ed,d-�Z%ed.d-�Z&ed/d0�Z'ed1d0�Z(ed2d3�Z)ed4d�Z*ed5d6�Z+ed7d8�Z,ed9d:�Z-ed;d<�Z.ed=d�Z/ed>d�Z0ed?d�Z1ed@dA� Z2Z3edBdC� Z4Z5edDd!�Z6edEd�Z7edFdG�Z8edHdI�Z9edJdK�Z:edLdM�Z;dNZ<dOZ=G dPdQ� dQe>�Z?G dRdS� dSe@�ZAG dTdU� dUe�ZBG dVdW� dWeB�ZCG dXdY� dYeC�ZDG dZd[� d[eC�ZEG d\d]� d]e>�ZFG d^d_� d_eF�ZGd`da� ZHG dbdc� dceF�ZIG ddde� deeI�ZJdS )fz? This module contains the error-related constants and classes. � )�absolute_import)�defaultdict� namedtuple)�copy�deepcopy)�wraps)�pformat)�PYTHON_VERSION�MutableMapping)�compare_paths_lt�quote_string�ErrorDefinitionz code, ruleN� �document is missing� Zrequired� � Zdependencies� � Zexcludes�! �''{0}' is not a document, must be a dict�"