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}
z™the 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--validatorzŒthe 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   ÿ ú
 ü	 ü	ýý