o
    QDi                     @  s   d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dl
mZ d d	l
mZ eeZddddZedddZdS )    )annotationsN)
ModuleType)Any)validator12)validator20)read_url)SwaggerValidationError)wrap_exceptionunknown	spec_jsondict[str, Any]originstrreturnr   c                 C  st   |  d}|  d}|r|rtd|r|dkrtS |r"|dkr"tS |du r1|du r1td|td|p7|)	z
    :param spec_json: Dict representation of the json API spec
    :param origin: filename or url of the spec - only use for error messages
    :return: module responsible for validation based on Swagger version in the
        spec
    swaggerVersionswaggerzwYou've got conflicting keys for the Swagger version in your spec. Expected `swaggerVersion` or `swagger`, but not both.z1.2z2.0NzGSwagger spec {} missing version. Expected `swaggerVersion` or `swagger`z!Swagger version {} not supported.)getr   r   r   format)r   r   swagger12_versionswagger20_version r   T/var/www/Datamplify/venv/lib/python3.10/site-packages/swagger_spec_validator/util.pyget_validator   s(   

r   spec_urlNonec                 C  s"   t | }t|| }|||  dS )a>  Validates a Swagger spec given its URL.

    :param spec_url:
        For Swagger 1.2, this is the URL to the resource listing in api-docs.
        For Swagger 2.0, this is the URL to swagger.json in api-docs.
        If given as ``file://``, this must be an absolute url for cross-refs
        to work correctly.
    N)r   r   validate_spec)r   r   	validatorr   r   r   validate_spec_url2   s   

r   )r
   )r   r   r   r   r   r   )r   r   r   r   )
__future__r   loggingtypesr   typingr   swagger_spec_validatorr   r   swagger_spec_validator.commonr   r   r	   	getLogger__name__logr   r   r   r   r   r   <module>   s    
!