o
    >]	                     @   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| vrd|  } t | S )N.zjsonschema.r   )name r	   0/usr/lib/python3/dist-packages/jsonschema/cli.py_namedAnyWithDefault   s   r   c                 C   s6   t | }t|W  d    S 1 sw   Y  d S )N)openjsonload)pathfiler	   r	   r
   
_json_file   s   
$r   zJSON Schema Validation CLI)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 u rt|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 pdD ]}||D ]}||j|d d	}q#q|S )
Nerror_formatr   r   )r   Fr   r	   )errorT)check_schemaiter_errorswriteformat)r"   stdoutstderrr(   r   erroredinstancer)   r	   r	   r
   r&   O   s   r&   )__doc__
__future__r   argparser   r$   
jsonschemar   jsonschema._reflectr   jsonschema.validatorsr   r   r   ArgumentParserr    add_argumentr!   argvr'   r.   r/   r&   r	   r	   r	   r
   <module>   sV    
		