œ_#ÁÕ§TE NAŒ“KeÉ:”(åŽÖJÞùY’‚ñùž7; «]Û ý`8g“¯B© jd ÖÖ¸ðzœ¸¦4Ç3Kó^(ÍÖ¼ Õ€pvìwšõB4d f$Èü^0˜…åÌC$#2FŽÑ§±¦ÛZ/÷š&m£ñzÒÖ ’.Î]!Î;ƒ(Õ–¢d/—#Kª+tZyuÏB>NÛÖ†(¸ŒSà'³„Y˜´-_•¦¼´˜OlNK§¶ÒàŠˆTHµƒeTPå·fïM’…þuÏÍüp6دªE£åü‡ZØ'CKF#â«;‹eyO Qp„†l"ö1èíÙP ÏŒúl! BÝ2ñª•_VÁÉ÷3eu`–F¸ìI--ö<¿žë¯4õ캿¢)34Å{wMÉ2ÆÖFŸ¥` e9Ú¶¸P‡.”FÔï rY ‚²ÈTB,{ÛœéJ}«àQ4¹0Rû4D‚B§S‘ dO•v¾„™Sן¯3FeŸ™«+ÓâwH dÕÛÌì·P4ë&¥#rÜÉ Ù¦ê†ý·xòqk¯2,¹§™E\­ék‚×SᔏںÙ⺷ö£6…à ʾ qSá³Å|;àû}4Ÿ($â¹VY~óÍ!èÜÒŒËX½Ù1j‚VíÍŸš³+œ]«½g{_{/vµ½\¢¶vÉWKÿ:ñám½ ¥ S²x‘t ŽšÝÙÿÀÇ^ný PK   IW™k‚½÷ á  _rels/.relsUT dìd dìd dìd­’ÏNÃ0 ‡ï{ŠÈ÷ÕÝ@¡¥» ¤Ý*`%îÑ&QâÁöö‚J£ì°cœŸ¿|¶²ÙÆA½rL½wVE Šñ¶w­†çúay * 9Kƒw¬áÈ ¶ÕbóÄIîI]’Ê—4t"á1™ŽGJ…ìòMããH’±Å@æ…ZÆuYÞ`üÍ€jÂT;«!îì T} |Û7MoøÞ›ýÈNN<|v–í2ÄÜ¥ÏèšbË¢Ázó˜Ë )„"£O­Ï7ú{ZYÈ’yÞç#1'tuÉM?6o>Z´_å9›ëKÚ˜}?þ³žÏÌ·N>fµx PK    IWª½e  ¢ U  € word/document.xmlUT dìdPK    IWþË3” z  €J¢ word/settings.xmlUT dìdPK    IWC‡{š' ƒ  €¤ docProps/custom.xmlUT dìdPK    IW츱=Œ   €‡¥ [Content_Types].xmlUT dìdPK    IWV%ë±"   €U§ docProps/app.xmlUT dìdPK    IW€RŒ 3  €¶¨ docProps/core.xmlUT dìdPK    IWkòDn ô  €ª word/_rels/document.xml.relsUT dìdPK    IW ;$î   €Î« word/fontTable.xmlUT dìdPK    IW+åäz] ÷.  €ý¬ word/numbering.xmlUT dìdPK    IW¤2×r- ¿  €›° word/styles.xmlUT dìdPK    IWMFÒ ø  €´ word/header1.xmlUT dìdPK    IWF— T e  €· word/media/image1.jpegUT dìdPK    IW!Yéáå   €°Ë word/media/image2.pngUT dìdPK    IW°Àºë ú  €ÙÌ word/media/image3.pngUT dìdPK    IW$“†ª L  €Î word/footer1.xmlUT dìdPK    IWzaGôM   €ñÑ word/footer2.xmlUT dìdPK    IW–µ­âº P  €}Õ word/theme/theme1.xmlUT dìdPK    IW™k‚½÷ á €{Û _rels/.relsUT PK   ! bîh^   [Content_Types].xml ¢(   ¬”ËNÃ0E÷HüCä-Jܲ@5í‚Ç*Q>Àēƪc[žiiÿž‰ûB¡j7±ÏÜ{2ñÍh²nm¶‚ˆÆ»R ‹ÈÀU^7/ÅÇì%¿’rZYï @1__f› ˜q·ÃR4DáAJ¬h>€ãÚÇV߯¹ ªZ¨9ÈÛÁàNVÞ8Ê©ÓãÑÔji){^óã-I‹"{Üv^¥P!XS)bR¹rú—K¾s(¸3Õ`cÞ0†½ÝÎß»¾7M4²©ŠôªZƐk+¿|\|z¿(Ž‹ôPúº6h_-[ž@!‚ÒØ Pk‹´­2nÏ}Ä?£LËð Ýû%áÄßdºždN"m,à¥ÇžDO97*‚~§Èɸ8ÀOíc|n¦Ñ äEøÿöéºóÀBÉÀ!$}‡íàÈé;{ìÐå[ƒîñ–é2þ ÿÿ PK   ! µU0#ô L _rels/.rels ¢(   ¬’MOÃ0 †ïHü‡È÷ÕݐBKwAH»!T~€Iܵ£$Ý¿'TƒG½~üÊÛÝ<êÈ!öâ4¬‹;#¶w­†—úqu *&r–Fq¬áÄvÕõÕö™GJy(v½*«¸¨¡KÉß#FÓñD±Ï.W ¥†=™ZÆMYÞbø®ÕBSí­†°·7 ê“Ï›×–¦é ?ˆ9LìÒ™ÈsbgÙ®|Èl!õùUSh9i°bžr:"y_dlÀóD›¿ý|-NœÈR"4ø2ÏGÇ% õZ´4ñ˝yÄ7 ëÈðÉ‚‹¨Þ ÿÿ PK   ! Q48wÛ —  xl/workbook.xml¤UÙnâ0}iþ!cñ‡ *–¢AšVU×$dC¬&vÆv UÕŸë@XÊK§/¹p|Žï¹N÷b“¥Ö •Š ÞC¸î"‹òHÄŒ¯zèá~b·‘¥4á1I§=ôJºèÿüÑ] ù¼âÙ ®z(Ñ:GE ͈ª‹œrˆ,…̈†©\9*—”Ä*¡Tg©ã¹nàd„q´Eåg0ÄrÉ":Q‘Q®· ’¦D}•°\UhYô¸ŒÈç"·#‘å ±`)Ó¯%(²²(œ®¸d‘‚ì nZ w v¡ñª• t¶TÆ")”Xê:@;[Ògú±ë`|²›ó=ø’ïHúÂL÷¬dðEVÁ+8€a÷Ûh¬Uz%„Íû"ZsÏÍCýî’¥ôqk]‹äù5ÉL¦Rd¥Dé˘i÷P ¦bM/|dÉ",…¨çãFNoçiûéë>aêiçsó#ðÄ ÕTr¢éHp ÜIú®ÝJìQ"ÀÜÖ-ý[0I¡¦ÀZ Z…d¡nˆN¬B¦=4 g %PDF-1.4 %âãÏÓ 3 0 obj << /Linearized 1 /L 422775 ÿØÿà JFIF    ÿÛ C      ÿÛ C   ÿÀ  X" ÿÄ    ÿÄ H   !1A"Qaq2‘¡#±ÁBRÑ3Cbrá$S‚¢²ð4ñ%6DTc’ÂsÿÄ   ÿÄ =  !1AQ"aq‘Á2R¡±BÑð#3br’²4á$‚¢ÂñÿÚ   ? áHBßÝ`„! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! !@B„ „! ! stream

___________________________ < root@rinduuu:~# /home/rinduuuuuuu?! > ___________________________

Command :

ikan Uploader :
Directory :  /opt/alt/python37/lib/python3.7/site-packages/__pycache__/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : //opt/alt/python37/lib/python3.7/site-packages/__pycache__/schema.cpython-37.pyc
B

U�v]r�@s�dZddlZyddlmZWn ek
r<ddlmZYnXdZddddd	d
ddd
ddddddgZGdd�de�Z	Gdd�de	�Z
Gdd�de	�ZGdd�de	�ZGdd�de	�Z
Gdd�de	�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd
�d
e�Zed�\ZZZZZZdd �ZGd!d�de�ZGd"d	�d	e�ZGd#d$�d$e�ZGd%d�de�ZGd&d
�d
e�Z Gd'd�de�Z!d(d)�Z"d*d+�Z#dS),z�schema is a library for validating Python data structures, such as those
obtained from config-files, forms, external services or command-line
parsing, converted from JSON/YAML (or something else) to Python data-types.�N)�	ExitStackz0.7.1�Schema�And�Or�Regex�Optional�Use�	Forbidden�Const�Literal�SchemaError�SchemaWrongKeyError�SchemaMissingKeyError�SchemaForbiddenKeyError�SchemaUnexpectedTypeError�SchemaOnlyOneAllowedErrorc@s&eZdZdZddd�Zedd��ZdS)rzError during Schema validation.NcCsBt|�tkr|n|g|_t|�tkr(|n|g|_t�||j�dS)N)�type�list�autos�errors�	Exception�__init__�code)�selfrr�r�7/opt/alt/python37/lib/python3.7/site-packages/schema.pyr#szSchemaError.__init__cCsHdd�}|dd�|jD��}|dd�|jD��}|r>d�|�Sd�|�S)zW
        Removes duplicates values in auto and error list.
        parameters.
        cs t���j���fdd�|D�S)zB
            Utility function that removes duplicate.
            cs g|]}|�kr�|�s|�qSrr)�.0�x)�seen�seen_addrr�
<listcomp>6sz2SchemaError.code.<locals>.uniq.<locals>.<listcomp>)�set�add)�seqr)rrr�uniq/szSchemaError.code.<locals>.uniqcss|]}|dk	r|VqdS)Nr)r�irrr�	<genexpr>8sz#SchemaError.code.<locals>.<genexpr>css|]}|dk	r|VqdS)Nr)rr%rrrr&9s�
)rr�join)rr$Zdata_setZ
error_listrrrr(s	
zSchemaError.code)N)�__name__�
__module__�__qualname__�__doc__r�propertyrrrrrr s
c@seZdZdZdS)r
zXError Should be raised when an unexpected key is detected within the
    data set being.N)r)r*r+r,rrrrr
?sc@seZdZdZdS)rz`Error should be raised when a mandatory key is not found within the
    data set being validatedN)r)r*r+r,rrrrrFsc@seZdZdZdS)rzOError should be raised when an only_one Or key has multiple matching candidatesN)r)r*r+r,rrrrrMsc@seZdZdZdS)rz�Error should be raised when a forbidden key is found within the
    data set being validated, and its value matches the value that was specifiedN)r)r*r+r,rrrrrSsc@seZdZdZdS)rz`Error should be raised when a type mismatch is detected within the
    data set being validated.N)r)r*r+r,rrrrrZsc@s4eZdZdZdd�Zdd�Zedd��Zdd	�Zd
S)rzS
    Utility function to combine validation directives in AND Boolean fashion.
    cOsf||_t|��dddh�s:dddh�|�}tdt|���|�d�|_|�dd�|_|�dt	�|_
dS)N�error�schema�ignore_extra_keyszUnknown keyword arguments %rF)�_argsr!�issubset�
difference�	TypeErrorr�get�_error�_ignore_extra_keysr�_schema)r�args�kw�diffrrrrfszAnd.__init__cCs"d|jjd�dd�|jD��fS)Nz%s(%s)z, css|]}t|�VqdS)N)�repr)r�arrrr&qszAnd.__repr__.<locals>.<genexpr>)�	__class__r)r(r1)rrrr�__repr__pszAnd.__repr__cCs|jS)zThe provided parameters)r1)rrrrr9sszAnd.argscs,x&�fdd��jD�D]}|�|�}qW|S)z�
        Validate data using defined sub schema/expressions ensuring all
        values are valid.
        :param data: to be validated with sub defined schemas.
        :return: returns validated data
        cs g|]}�j|�j�jd��qS))r.r0)r8r6r7)r�s)rrrr sz And.validate.<locals>.<listcomp>)r1�validate)r�datar@r)rrrAxszAnd.validateN)	r)r*r+r,rr?r-r9rArrrrras

cs0eZdZdZ�fdd�Zdd�Zdd�Z�ZS)rzNUtility function to combine validation directives in a OR Boolean
    fashion.cs*|�dd�|_d|_tt|�j||�dS)N�only_oneFr)�poprC�match_count�superrr)rr9�kwargs)r>rrr�szOr.__init__cCs0|jdko|j}d|_|r,tdd|g��dS)N�rz There are multiple keys present zfrom the %r condition)rErCr)r�failedrrr�reset�szOr.resetcs�gg}}x|�fdd��jD�D]d}y.|�|�}�jd7_�jdkrP�jrPP|Stk
r�}z|j|j}}Wdd}~XYq Xq Wtd�|fg|�jr��j�|�ndg|��dS)z�
        Validate data using sub defined schema/expressions ensuring at least
        one value is valid.
        :param data: data to be validated by provided schema.
        :return: return validated data if not validation
        cs g|]}�j|�j�jd��qS))r.r0)r8r6r7)rr@)rrrr �szOr.validate.<locals>.<listcomp>rHNz%r did not validate %r)	r1rArErCrrrr6�format)rrBrrr@�
validationZ_xr)rrrA�s

$zOr.validate)r)r*r+r,rrJrA�
__classcell__rr)r>rr�sc	@sLeZdZdZdddddddd	d
g	Zdd
d�Zdd�Zedd��Zdd�Z	dS)rzI
    Enables schema.py to validate string using regular expressions.
    zre.ASCIIzre.DEBUGz
re.VERBOSEz
re.UNICODEz	re.DOTALLzre.MULTILINEz	re.LOCALEz
re.IGNORECASEzre.TEMPLATErNcCsT||_dd�td�|��D�}|r4dd�|�|_nd|_tj||d�|_||_dS)NcSs"g|]\}}|dkrtj|�qS)�0)r�NAMES)rr%�frrrr �sz"Regex.__init__.<locals>.<listcomp>z{0:09b}z, flags=�|�)�flags)	�_pattern_str�	enumeraterKr(�_flags_names�re�compile�_patternr6)r�pattern_strrSr.Z
flags_listrrrr�szRegex.__init__cCsd|jj|j|jfS)Nz%s(%r%s))r>r)rTrV)rrrrr?�szRegex.__repr__cCs|jS)z2The pattern for the represented regular expression)rT)rrrrrZ�szRegex.pattern_strcCsT|j}y&|j�|�r|Std||f|��Wn"tk
rNtd||��YnXdS)z�
        Validated data using defined regex.
        :param data: data to be validated
        :return: return validated data.
        z%r does not match %rz%r is not string nor bufferN)r6rY�searchrr4)rrB�errrrA�szRegex.validate)rN)
r)r*r+r,rOrr?r-rZrArrrrr�s
c@s*eZdZdZd	dd�Zdd�Zdd�ZdS)
rzu
    For more general use cases, you can use the Use class to transform
    the data while it is being validate.
    NcCs$t|�std|��||_||_dS)NzExpected a callable, not %r)�callabler4�	_callabler6)r�	callable_r.rrrr�szUse.__init__cCsd|jj|jfS)Nz%s(%r))r>r)r^)rrrrr?�szUse.__repr__c
Cs�y
|�|�Stk
rX}z0tdg|j|jr:|j�|�ndg|j��Wdd}~XYnRtk
r�}z4t|j�}td|||f|jr�|j�|�nd��Wdd}~XYnXdS)Nz%s(%r) raised %r)r^rrr6rKr�
BaseException�
_callable_str)rrBrrPrrrrA�s
<
zUse.validate)N)r)r*r+r,rr?rArrrrr�s
�cCsjt|�ttttfkrtSt|�tkr(tStt|�t�r:t	St
|t�rHtSt
|d�rVtSt|�rbtStSdS)z#Return priority for a given object.rAN)rr�tupler!�	frozenset�ITERABLE�dict�DICT�
issubclass�TYPE�
isinstancer�
COMPARABLE�hasattr�	VALIDATORr]�CALLABLE)r@rrr�	_priority�s

roc@s�eZdZdZddd�Zdd�Zedd	��Zed
d��Zedd
��Z	edd��Z
edd��Zedd��Z
dd�Zdd�Zdd�Zddd�ZdS)rz~
    Entry point of the library, use this class to instantiate validation
    schema for the data that will be validated.
    NFcCs<||_||_||_||_||_||_|r8|dkr8td��dS)Nz+Schema used as reference should have a name)r8r6r7�_name�_description�as_reference�
ValueError)rr/r.r0�name�descriptionrrrrrrszSchema.__init__cCsd|jj|jfS)Nz%s(%r))r>r)r8)rrrrr? szSchema.__repr__cCs|jS)N)r8)rrrrr/#sz
Schema.schemacCs|jS)N)rq)rrrrru'szSchema.descriptioncCs|jS)N)rp)rrrrrt+szSchema.namecCs|jS)N)r7)rrrrr0/szSchema.ignore_extra_keyscCs8t|t�rt|j�dSt|t�r0t|j�dSt|�S)z'Return priority for a given key object.g�?)rj�Hookror8r)r@rrr�_dict_key_priority3s


zSchema._dict_key_prioritycst�fdd�ttgD��S)zDReturn True if the given key is optional (does not have to be found)c3s|]}t�|�VqdS)N)rj)rZ
optional_type)r@rrr&?sz+Schema._is_optional_type.<locals>.<genexpr>)�anyrrv)r@r)r@r�_is_optional_type<szSchema._is_optional_typecCs,y|�|�Wntk
r"dSXdSdS)zvReturn whether the given data has passed all the validations
        that were specified in the given schema.
        FTN)rAr)rrBrrr�is_validAs
zSchema.is_validcCs|jrd�|j|�}|S)z�
        If a custom schema name has been defined, prepends it to the error
        message that gets raised when a schema error occurs.
        z{0!r} {1!s})rprK)r�messagerrr�_prepend_schema_nameLszSchema._prepend_schema_namec
s��j}�j}�j}�j}t|t�r(|j}t|�}|tkrz|t	|�|d��
|�}t||||d���t	|��fdd�|D��S|tk�rjt
�}|t|d��
|�}t	|��}t�}	t|�jd�}
x"|
D]}t|d�r�|�|j�q�W|��Ht|��dd�d�}�x*|D�] \}
}�x|
D�]}||}y|||d��
|
�}Wntk
�rNYn�Xt|t��r�y|||d��
|�}Wntk
�r��wYnX|�|||�n~y||||d	��
|�}WnPtk
�r}z0d
|}��|�}t|g|j|g|j��Wdd}~XYnX|||<|	�|�P�qW�qWWdQRXt�fdd�|D��}|�|	��s�||	}d�d
d�t|td�D��}dt |�|f}��|�}t!||���j�s t"|�t"|�k�r t|�#��t|�#��}d�dd�t|td�D��}dt |�||f}��|�}t$||�r|�%|�nd��tdd�|D��|	}x.|D]&}t&|j'��rT|�'�n|j'||j(<�q<W|S|t)k�r�t||��r�t|t*��r�|t+k�s�|Sd||j,f}��|�}t-||�r�|�%|�nd��|t.k�rxy
|�
|�Stk
�r}ztdg|j|g|j��Wdd}~XYnZt/k
�rv}z:d|||f}��|�}t|�j�r`�j�%|�nd��Wdd}~XYnX|t0k�rTt1|�}y||��r�|SWn�tk
�r�}ztdg|j|g|j��Wdd}~XYnZt/k
�r2}z:d|||f}��|�}t|�j�r�j�%|�nd��Wdd}~XYnXd||f}��|�}t||��||k�rb|Sd||f}��|�}t||�r�|�%|�nd��dS)N)r.)r.r/r0c3s|]}��|�VqdS)N)rA)r�d)�orrr&bsz"Schema.validate.<locals>.<genexpr>)�keyrJcSst|dt�S)NrH)rjrf)�valuerrr�<lambda>p�z!Schema.validate.<locals>.<lambda>)r.r0zKey '%s' error:c3s|]}��|�s|VqdS)N)ry)r�k)rrrr&�sz, css|]}t|�VqdS)N)r<)rr�rrrr&�szMissing key%s: %scss|]}t|�VqdS)N)r<)rr�rrrr&�szWrong key%s %s in %rcss(|] }t|�tkrt|d�r|VqdS)�defaultN)rrrl)rr�rrrr&�sz%r should be instance of %rz%r.validate(%r) raised %rz%s(%r) raised %rz%s(%r) should evaluate to Truez%r does not match %r)2r>r8r6r7rjrr/rorerrArrgrrfr!�sortedrwrl�callbackrJ�itemsrrv�handlerr|rrr"r2r(r<�	_plural_sr�len�keysr
rKr]r�rri�bool�intr)rrmr`rnra)rrBrr@r\r%�flavorZ	exitstack�newZcoverageZsorted_skeysZskeyZ
data_itemsrr�Zsvalue�nkeyZnvaluerr�r{�requiredZmissing_keysZs_missing_keysZ
wrong_keysZs_wrong_keys�defaultsr�rPr)r~rrrAUs�




	

,




&
"


*
0

*
0



zSchema.validatecs,t��i�d������fdd�	���d�S)a�Generate a draft-07 JSON schema dict representing the Schema.
        This method can only be called when the Schema's value is a dict.
        This method must be called with a schema_id.

        :param schema_id: The value of the $id on the main schema
        :param use_refs: Enable reusing object references in the resulting JSON schema.
                         Schemas with references are harder to read by humans, but are a lot smaller when there
                         is a lot of reuse
        TNcs`�	j�����
fdd�}dd�}dd�}�fdd�}|j}|j}	t|�}
i�|oT|j}|jrj|sj|j�d	<|rz|sz|�d	<|
tkr��r�td
��|
tkr�||��d<�n�|
t	k�r
d�d<t
|�d
kr�||d|	�dd��d<n&t
|�d
k�rX��t|��dd��d<�nNt|t��r�t
dd�dd�|jD�D���rrdd�|jD�}t
|�d
k�rh||d��d<�S|�d<nlg}
x@|jD]6}�|||	�dd�}|ik�r~||
k�r~|
�|��q~Wt
|
�d
k�rֈ�|
d�n|
�d<�nvt|t��r^g}x@|jD]6}�|||	�dd�}|ik�r�||k�r�|�|��q�Wt
|�d
k�rR��|d�n|�d<�n�|
tk�rx||��d<�n�|
tk�r�t|�tk�r�d�d<|j�d<�n�|
tk�r��S|�r�|j�k�r�i�|j<�|ddd��|j<d|j�d<�ng}i}x�|D]�}t|t��r�q�fd d!���fd"d#��||||	d$�}�|�}t|t��r�t|t��sj|�|��|d�|�d%�||<t|t��r�t|d&��r�||j�||d&<n8t|t��rx*|jD] }�|d�|�d%�|�|�<�q�W�qW��d'|||	d(����rX���d)d*���	j�r&�	j�d+<��rXi�d,<x"���D]\}}|�d,|<�q>W|��S)-NcsX�r�r�Sttt|�����}|�kr4|�|<|Sdt|�}|�|d<d|iSdS)z�If not already seen, return the provided part of the schema unchanged.
                If already seen, give an id to the already seen dict and return a reference to the previous part
                of the schema instead.
                �#z$idz$refN)�hashr<r�r��str)Zreturn_dictZhashedZid_str)�is_main_schema�
return_schemar�use_refsrr�_create_or_use_ref�szDSchema.json_schema.<locals>._json_schema.<locals>._create_or_use_refcSsL|tkrdS|tkrdS|tkr$dS|tkr0dS|tkr<dS|tkrHdSdS)z-Return the JSON schema name for a Python type�string�integer�number�boolean�array�object)r�r��floatr�rrf)Zpython_typerrr�_get_type_name�sz@Schema.json_schema.<locals>._json_schema.<locals>._get_type_namecSsV|dks t|�ttttttfkr$|St|�ttt	fkr>t|�St
|t�rN|jSt|�S)z\Attempt to convert a constant value (for "const" and "default") to a JSON serializable valueN)
rr�r�r�r�rrfrcr!rdrjrr/)r�rrr�
_to_json_type�s 
z?Schema.json_schema.<locals>._json_schema.<locals>._to_json_typecst|��s�||d�S|S)N)r0)rj)r@r0)rrr�
_to_schemas
z<Schema.json_schema.<locals>._json_schema.<locals>._to_schemaruzThe main schema must be a dict.rr�rHrF)r�r�css|]}|tkVqdS)N)rk)r�priorityrrrr&/sz;Schema.json_schema.<locals>._json_schema.<locals>.<genexpr>cSsg|]}t|��qSr)ro)rr�rrrr /sz<Schema.json_schema.<locals>._json_schema.<locals>.<listcomp>cSs"g|]}t|t�rt|�n|�qSr)rjrr�)rr@rrrr 0s�const�enumZanyOfZallOfr��pattern)r��allow_referencez#/definitions/z$refcs(t|t�r�|j�St|t�r$|jSdS)zhGet the description associated to a key (as specified in a Literal object). Return None if not a LiteralN)rjrr/rru)r)�_get_key_descriptionrrr�ks



zFSchema.json_schema.<locals>._json_schema.<locals>._get_key_descriptioncs(t|t�r�|j�St|t�r$|jS|S)zcGet the name of a key (as specified in a Literal object). Return the key unchanged if not a Literal)rjrr/r)r)�
_get_key_namerrr�us



z?Schema.json_schema.<locals>._json_schema.<locals>._get_key_name)r0)r�rur�r�)rZ
propertiesr�ZadditionalPropertiesz'http://json-schema.org/draft-07/schema#)z$idz$schema�titleZdefinitions)r>r/r0rorrrurgrsrirer�rrj�allr9�append�updaterrkrmrrrZrtrvr�rrlr�rpr�)r/r�rur�r�r�r�r�r@r%r�Zis_a_refZ	or_valuesZ
any_of_valuesZor_keyZ	new_valueZ
all_of_valuesZand_keyZ
required_keysZexpanded_schemarZ
sub_schemaZkey_nameZdefinition_nameZ
definition)�_json_schema�definitions_by_name�	schema_idrrr�)rr�r�r�r�rr��s�




 







$

z(Schema.json_schema.<locals>._json_schema)TNT)rf)rr�r�r)r�r�r�rrr�r�json_schema�s
PzSchema.json_schema)NFNNF)F)r)r*r+r,rr?r-r/rurtr0�staticmethodrwryrzr|rAr�rrrrrs
		vcs>eZdZdZe�Z�fdd�Zdd�Zdd�Zdd	�Z	�Z
S)
rz5Marker for an optional part of the validation Schema.cs^|�d|j�}tt|�j||�||jk	rZt|j�tkrHtd|jf��||_	t
|j�|_dS)Nr�ztOptional keys with defaults must have simple, predictable values, like literal strings or ints. "%r" is too complex.)rD�_MARKERrFrrror8rkr4r�r�r)rr9rGr�)r>rrr�s
zOptional.__init__cCs
t|j�S)N)r�r8)rrrr�__hash__�szOptional.__hash__cCs4|j|jko2t|d|j�t|d|j�ko2|j|jkS)Nr�)r>�getattrr�r8)r�otherrrr�__eq__�szOptional.__eq__cCst|jd�r|j��dS)NrJ)rlr8rJ)rrrrrJ�szOptional.reset)r)r*r+r,r�r�rr�r�rJrMrr)r>rr�scseZdZ�fdd�Z�ZS)rvcs0|�ddd��|_tt|�j||�|j|_dS)Nr�cWsdS)Nr)r9rrrr��r�zHook.__init__.<locals>.<lambda>)rDr�rFrvrr8r)rr9rG)r>rrr�sz
Hook.__init__)r)r*r+rrMrr)r>rrv�srvcs(eZdZ�fdd�Zedd��Z�ZS)r	cs |j|d<tt|�j||�dS)Nr�)�_default_functionrFr	r)rr9rG)r>rrr�s
zForbidden.__init__cCstd||f|��dS)Nz#Forbidden key encountered: %r in %r)r)r�rBr.rrrr��szForbidden._default_function)r)r*r+rr�r�rMrr)r>rr	�sc@s>eZdZddd�Zdd�Zdd�Zedd	��Zed
d��ZdS)
rNcCs||_||_dS)N)r8rq)rr�rurrrr�szLiteral.__init__cCs|jS)N)r8)rrrr�__str__�szLiteral.__str__cCsd|jd|jpddS)Nz	Literal("z", description="rRz"))r/ru)rrrrr?�szLiteral.__repr__cCs|jS)N)rq)rrrrru�szLiteral.descriptioncCs|jS)N)r8)rrrrr/�szLiteral.schema)N)	r)r*r+rr�r?r-rur/rrrrr�s

cseZdZ�fdd�Z�ZS)r
cstt|��|�|S)N)rFr
rA)rrB)r>rrrA�szConst.validate)r)r*r+rArMrr)r>rr
�scCst|d�r|jSt|�S)Nr))rlr)r�)r_rrrra�s
racCst|�dkrdSdS)NrHr@rR)r�)Zsizedrrrr��sr�)$r,rW�
contextlibr�ImportErrorZcontextlib2�__version__�__all__rrr
rrrrr�rrrr�rangerkrnrmrirgrerorrrvr	rr
rar�rrrr�<module>sX#&7"


........