a
    xd                  %   @   s^  d dl mZ d dlZd dlZejejejddejdde e e ededej	edddd	B e
 e
 ejd
dejd
dej
d ddejd d dejd dejdde ededB e edB ejd d dejd dejd
dedede edB ejd d dejd dedejededB dej	dddededededd!i dej	edddejedi dejg ddej	e ddd	dddZddddddddddddddd d d d d d d!Zg dZej	ejejejej
ejejdZd"d# Zd$d% Zd&d' Zd(d) ZdS )*    )
text_typesNuri)format	SchemaMapSimpleTypes   T)items	min_itemsunique_itemsF)default)minimumZexclusive_minimum)r   r   )r   regexSchemaSchemaArrayStringArray)additional_properties)r	   r
   )!idz$schematitledescriptionr   Zdefinitionstyper   maximumexclusiveMinimumexclusiveMaximum
multipleOf	minLength	maxLengthpatternr   r   additionalItemsminItemsmaxItemsuniqueItems
propertiespatternPropertiesadditionalPropertiesminPropertiesmaxPropertiesrequiredZdependanciesenumallOfanyOfoneOfnot)r!   r   )r   r	   )r   r   )arraybooleanintegernullnumberobjectstring)r'   )r   r   r   r   r   )rootr0   r2   r,   r1   )r   r   r   r   r   r   r   r   r   r   r   r   r    r   r!   r%   r$   r#   r"   r&   c                 C   s    t dd| }t dd| S )Nz(.)([A-Z][a-z]+)z\1_\2z([a-z0-9])([A-Z]))resublower)names1 r9   W/var/www/html/Ranjet/env/lib/python3.9/site-packages/coreschema/encodings/jsonschema.pycamelcase_to_snakecasep   s    r;   c                 C   s  d}dd t D }|  D ]\}}|tvr,q|dkrHt|trHt|}n|dkrjt|trjdd |D }n|dkrt|trt|}nf|dkrt|trd	d | D }n@|d
krt|trt|}n$|dkrt|trdd | D }t| }d}t|}||| |< q|d |d< d| v rpd}| d}t|trB|n|g}t|	 D ]}||vrT|
| qTg }|r| D ]&\}}	t| }
||
f i |	 q|S )zG
    Return a list of schemas for any primitive type restrictions.
    Fc                 S   s   i | ]
}|i qS r9   r9   ).0	type_namer9   r9   r:   
<dictcomp>z       z%get_typed_schemas.<locals>.<dictcomp>r   c                 S   s   g | ]}t |qS r9   load_jsonschemar<   itemr9   r9   r:   
<listcomp>   r?   z%get_typed_schemas.<locals>.<listcomp>r   r!   c                 S   s   i | ]\}}|t |qS r9   r@   r<   keyrC   r9   r9   r:   r>      r?   r#   r"   c                 S   s   i | ]\}}|t |qS r9   r@   rE   r9   r9   r:   r>      r?   Tr0   r.   r   )
TYPE_NAMESr   KEYWORD_TO_TYPE
isinstancedictrA   listr;   getkeyspopCLS_MAPappend)dataZhas_typeZtype_kwargskeywordvaluer=   argument_nametypesschemaskwargsclsr9   r9   r:   get_typed_schemasu   sF    





rY   c                 C   s   g }d| v r2| d }t dd |D }|| d| v r`| d }t dd |D }|| d| v r| d }t dd |D }|| d| v r| d }t t|}|| |S )	Nr)   c                 S   s   g | ]}t |qS r9   r@   rB   r9   r9   r:   rD      s   z)get_composite_schemas.<locals>.<listcomp>r(   c                 S   s   g | ]}t |qS r9   r@   rB   r9   r9   r:   rD      s   r*   c                 S   s   g | ]}t |qS r9   r@   rB   r9   r9   r:   rD      s   r+   )
coreschemaUnionrP   IntersectionZExclusiveUnionNotrA   )rQ   rV   rS   schemar9   r9   r:   get_composite_schemas   s0    






r_   c                    s   t | }t|dkr t|g}|t| 7 }|s:t  n t|dkrP|d  n
t| d| v r fdd| d D }t|S  S )Nr   r   r'   c                    s   g | ]}  |g kr|qS r9   )validate)r<   rS   r^   r9   r:   rD      s   z#load_jsonschema.<locals>.<listcomp>)rY   lenrZ   r[   r_   Anythingr\   Enum)rQ   rV   Zenum_valuesr9   ra   r:   rA      s    




rA   )Zcoreschema.compatr   rZ   r4   ZRefSpaceZObjectStringrc   ZRefArrayNumberBooleanZIntegerrd   Z
jsonschemarH   rG   ZNullrO   r;   rY   r_   rA   r9   r9   r9   r:   <module>   s   








,/@D0