o
    >]                     @   sh   d dl mZ d dlmZ d dlmZ dd Zdd Zdd	 Zd
d Z	dd Z
dd Zdd Zdd ZdS )    )_utils)	iteritems)ValidationErrorc           	      c   s    |  |ds	d S t|D ]F\}}||vrq|  |dr+| j|||dD ]}|V  q$q|  |dr?||vr>td||f V  q|D ]}||vrRd}t|||f V  qAqd S )Nobjectschema_pathstringz%r is a dependency of %r)is_typer   descendr   )		validatordependenciesinstanceschemaproperty
dependencyerroreachmessage r   ?/usr/lib/python3/dist-packages/jsonschema/_legacy_validators.pydependencies_draft3   s2   

r   c                 c   s:    t |D ]}| |d|girtd||f V  qd S )Ntypez%r is disallowed for %r)r   ensure_listis_validr   )r   disallowr   r   
disallowedr   r   r   disallow_draft3   s   
r   c                 c   s\    |  |dr| ||D ]}|V  qd S t|D ]\}}| j|||dD ]}|V  q%qd S )Nr   r   )r	   r
   	enumerate)r   extendsr   r   r   index	subschemar   r   r   extends_draft3'   s   r!   c                 c   s    |  |ds	d S |  |dr(t|D ]\}}| j|||dD ]}|V  qqd S tt||D ]\\}}}| j||||dD ]}|V  q>q/d S )Narrayr   )pathr#   r   )r	   r   r
   zip)r   itemsr   r   r   itemr   r    r   r   r   items_draft3_draft41   s    
r(   c                 c   sX    |  |ds	d S |ddr||k}d}n||k }d}|r*td|||f V  d S d S )NnumberexclusiveMinimumFzless than or equal toz	less thanz%r is %s the minimum of %rr	   getr   )r   minimumr   r   failedcmpr   r   r   minimum_draft3_draft4A      
r0   c                 c   sX    |  |ds	d S |ddr||k}d}n||k}d}|r*td|||f V  d S d S )Nr)   exclusiveMaximumFzgreater than or equal tozgreater thanz%r is %s the maximum of %rr+   )r   maximumr   r   r.   r/   r   r   r   maximum_draft3_draft4R   r1   r4   c                 c   s    |  |ds	d S t|D ]B\}}||v r'| j|| |||dD ]}|V  q q|ddrOtd| }|jd|d ||d |j| |j	|dg |V  qd S )Nr   r$   requiredFz%r is a required property)r   validator_valuer   r   )
r	   r   r
   r,   r   _setr#   
appendleftr   extend)r   
propertiesr   r   r   r    r   r   r   r   properties_draft3c   s4   
r;   c                 c   s    t |}g }t|D ](\}}| |dr+t| j|||d}|s% d S || q| ||r4 d S qtt |||dV  d S )Nr   r   )context)	r   r   r   r	   listr
   r9   r   	types_msg)r   typesr   r   
all_errorsr   r   errorsr   r   r   type_draft3}   s   
rB   N)
jsonschemar   jsonschema.compatr   jsonschema.exceptionsr   r   r   r!   r(   r0   r4   r;   rB   r   r   r   r   <module>   s    
