U
    >]	                     @   s   d Z 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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 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 ))z"
The ``jsonschema`` command line.
    )absolute_importN)__version__namedAny)validator_forc                 C   s   d| krd|  } t | S )N.zjsonschema.r   )name r	   0/usr/lib/python3/dist-packages/jsonschema/cli.py_namedAnyWithDefault   s    r   c              
   C   s*   t | }t|W  5 Q R  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   z	--versionversion)r   r   schemaz3the JSON Schema to validate with (i.e. schema.json))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    D   s    r       c                 C   s   t tt| dd d S )Nr   )r!   )sysexitrunr    r   r	   r	   r
   mainK   s    r&   c                 C   sh   | d }| d | d d}| | d  d}| d p6dD ]*}||D ]}||j|d d	}qFq8|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%   O   s    r%   )__doc__Z
__future__r   argparser   r#   Z
jsonschemar   Zjsonschema._reflectr   Zjsonschema.validatorsr   r   r   ArgumentParserr   add_argumentr    argvr&   r+   r,   r%   r	   r	   r	   r
   <module>   sZ    
 	 	