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