B
    mI[f                 @   s   d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ dd Z	dd Z
ejd	d
Zejdddde
dd ejddddd ejdde	dd ejdde
d dd Zejdd fd d!Zejejfd"d#ZdS )$    )absolute_importN)namedAny)validator_forc             C   s   d| krd|  } t | S )N.zjsonschema.)r   )name r   -lib/python3.7/site-packages/jsonschema/cli.py_namedAnyWithDefault
   s    r	   c          	   C   s   t | }t|S Q R X d S )N)openjsonload)pathfiler   r   r   
_json_file   s    
r   zJSON Schema Validation CLI)Zdescriptionz-iz
--instanceappend	instancesz[a path to a JSON instance (i.e. filename.json)to validate (may be specified multiple times))actiondesttypehelpz-Fz--error-formatz"{error.instance}: {error.message}
zthe format to use for each error output message, specified in a form suitable for passing to str.format, which will be called with 'error' for each error)defaultr   z-Vz--validatorzthe fully qualified object name of a validator to use, or, for validators that are registered with jsonschema, simply the name of the class.)r   r   schemaz7the JSON Schema to validate with (i.e. filename.schema))r   r   c             C   s6   t tj| pdgd}|d d kr2t|d |d< |S )Nz--help)args	validatorr   )varsparser
parse_argsr   )r   	argumentsr   r   r   r   ;   s    r      c             C   s   t tt| dd d S )N)r   )r   )sysexitrunr   )r   r   r   r   mainB   s    r"   c             C   sp   | d }| d | d d}| | d  d}x>| d p8dD ].}x(||D ]}||j|d d	}qJW q:W |S )
Nerror_formatr   r   )r   Fr   r   )errorT)Zcheck_schemaZiter_errorswriteformat)r   stdoutstderrr#   r   Zerroredinstancer$   r   r   r   r!   F   s    r!   )Z
__future__r   argparser   r   Zjsonschema._reflectr   Zjsonschema.validatorsr   r	   r   ArgumentParserr   add_argumentr   argvr"   r'   r(   r!   r   r   r   r   <module>   s<   