Viewing File: /opt/imunify360/venv/lib/python3.11/site-packages/cerberus/__pycache__/schema.cpython-311.pyc



]jGddlmZddlmZddlmZddlmZmZm	Z	m
Z
mZmZddl
mZmZmZmZGddeZGdd	eZGd
deZGdd
eZGddeZGddeZGddeZGddeZGddeZeecZZdS))absolute_import)warn)errors)	_str_typeCallableHashableMappingMutableMappingSequence)get_Validator_classvalidator_factorymapping_hashTypeDefinitionceZdZdS)_AbortN)__name__
__module____qualname__F/opt/imunify360/venv/lib64/python3.11/site-packages/cerberus/schema.pyrrsDrrceZdZdZdS)SchemaErrorz_
    Raised when the validation schema is missing, has the wrong format or contains
    errors.N)rrr__doc__rrrrrs	DrrceZdZdZfdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
edZed
ZedZddZdZdZedZdZddZdZxZS)DefinitionSchemaz1A dict-subclass for caching of validated schemas.cvdtvrtdtatj}|tdtfdtdtfdd|t_tt||S)NSchemaValidatorcallablerhashable)rr )
globalsr
SchemaValidatorMixinr
types_mappingcopyupdaterrrsuperr__new__)clsargskwargsr#	__class__s    rr'zDefinitionSchema.__new__%sGII--/0ACWXXO+9>>@@M   .zH; K K .zH; K K


-:O)%s++33C888rcdt|tstd||_t|tr|j||}t|tsK	t|}n:#t$r-ttj
|wxYwt||_t!d|jtj|||_||}||||_dS)z
        :param validator: An instance of Validator-(sub-)class that uses this
                          schema.
        :param schema: A definition-schema as ``dict``. Defaults to an empty
                       one.
        z0validator argument must be a Validator-instance.N)
allow_unknown
error_handler
target_schematarget_validator)
isinstancerRuntimeError	validatorrschema_registrygetr	dict	ExceptionrrSCHEMA_ERROR_DEFINITION_TYPEformatSchemaValidationSchemavalidation_schemarSchemaErrorHandlerschema_validatorexpandvalidateschema)selfr3r@s   r__init__zDefinitionSchema.__init__4s1)%8%:%:;;	VTUUU"fi((	C.2266BBF&'**	V
Vf
V
V
V!&"E"L"LV"T"TUUU
V"8	!B!B /0 3 &!
!
!
V$$

fs9B		7Cc|j}	||=|j|=dS#t$rtd|zt$r}|d}~wwxYw)Nz Schema has no field '%s' defined)r@r$
ValueErrorrr7)rAkey_new_schemaes    r__delitem__zDefinitionSchema.__delitem__Usk&&((	!C C   	H	H	H@3FGGG			G	s(%A
AAc|j|SN)r@)rAitems  r__getitem__zDefinitionSchema.__getitem__`s{4  rc*t|jSrJ)iterr@rAs r__iter__zDefinitionSchema.__iter__csDK   rc*t|jSrJ)lenr@rOs r__len__zDefinitionSchema.__len__fs4;rc t|SrJ)strrOs r__repr__zDefinitionSchema.__repr__is4yyrc|d|id}|||i||j|<dSNr)r>r?r@)rArEvalues   r__setitem__zDefinitionSchema.__setitem__lsDQJ''*

sEl### CrcNt|drt|jSdS)Nr@zNo schema data is set yet.)hasattrrUr@rOs r__str__zDefinitionSchema.__str__qs*4""	0t{###//rcf||j|jSrJ)r+r3r@r$rOs rr$zDefinitionSchema.copyws&~~dndk.>.>.@.@AAArc	||}||}n#t$rYnwxYw||}|SrJ)_expand_logical_shortcuts_expand_subschemasr7_rename_deprecated_rulenames)r(r@s  rr>zDefinitionSchema.expandzsi	226::F++F33FF			D	11&99
s*-
::cd|D]q\}}fd|DD]]}|dd\}}||gi||D]}||||i ||=^r|S)z
        Expand agglutinated rules in a definition-schema.

        :param schema: The schema-definition to expand.
        :return: The expanded schema-definition.
        cVt|to|dS)N)allof_anyof_noneof_oneof_)r1r
startswith)xs r
is_of_rulez>DefinitionSchema._expand_logical_shortcuts.<locals>.is_of_rules,a++911
rc*g|]}|
|Srr).0rjrks  r
<listcomp>z>DefinitionSchema._expand_logical_shortcuts.<locals>.<listcomp>s&>>>!

1

>A>>>r_)itemssplitr%append)	r(r@fieldrulesof_ruleoperatorrulerYrks	        @rr`z*DefinitionSchema._expand_logical_shortcutss			
#LLNN	#	#LE5>>>>u>>>
#
#!(sA!6!6$h^,,,"7^::E(O**D%=9999'NN
#
rc	fd}fd}D]5|sng|r+|dd<n2|ddidd<dD]>}|vr2|d|id|<?dD]|}|vrpt|ts.g}|D]2}||d|id3||<}7S)NcNtto	dvS)Nr@r1r	rtr@srhas_schema_rulez<DefinitionSchema._expand_subschemas.<locals>.has_schema_rules%fUmW55S(fUm:SSrc	tddDS#t$rYdSwxYw)zw
            Tries to determine heuristically if the schema-constraints are aimed to
            mappings.
            c3@K|]}t|tVdSrJr{rmrjs  r	<genexpr>zRDefinitionSchema._expand_subschemas.<locals>.has_mapping_schema.<locals>.<genexpr>s=/0Jq'**rr@F)allvalues	TypeErrorr|srhas_mapping_schemaz?DefinitionSchema._expand_subschemas.<locals>.has_mapping_schemaso

4:5M(4K4R4R4T4T


uu
s6:
AAr@r)	keysrulesvaluesrules	keyschemavalueschema)allofanyofrqnoneofoneof)r>r1rrs)r(r@r}rrxnew_rules_definitionrKrts `     @rraz#DefinitionSchema._expand_subschemass	T	T	T	T	T	T
	
	
	
	
	
		?	?E"?$$
V##%%
V*-**VE]85L*M*Mu
h''*-**ax9P5Q*R*RST*Uu
h'Q
R
R6%=((*-**at9L5M*N*Nq*QF5M$'F
?
?6%=((%fUmD&98DD! +-( &u
d 3NN,33CJJ4y4I4I!4LMMMM*>F5M$'
?
rNc8|j||SrJ)r@r5)rArKdefaults   rr5zDefinitionSchema.gets{tW---rc4|jSrJ)r@rqrOs rrqzDefinitionSchema.itemss{  """rcX	||}|j}||||||_dS#t
$r-t
tj	|t$r}|d}~wwxYwrJ)r>r@r$r%r?rDrrr8r9r7)rAr@rFrGs    rr%zDefinitionSchema.updates
	&[[((F+**,,Kv&&&MM+&&&&DKKK	R	R	RfAHHPPQQQ			G	sAA##?B)"B$$B)c^|D]\}}t|trdD]y\}}||vr
||vrtdt	d||t||||||<|||z|S)N))rr)r3
check_with)rrzTThe rule '{new}' is also present with its old name '{old}' in the same set of rules.zrThe rule '{old}' was renamed to '{new}'. The old name will not be available in the next major release of Cerberus.)oldnew)rqr1rUr2rr9DeprecationWarningpop)r@rtrurrs     rrbz-DefinitionSchema._rename_deprecated_rulenamess"LLNN	'	'LE5%%%

'
'S
e##%<<&A
  &3C 8 8&	&,E]3%7u
c"u
!!#&&&&+
'.
rc8t|j|_dSrJ)r:r3r;rOs rregenerate_validation_schemaz-DefinitionSchema.regenerate_validation_schemas!7!G!Grc||j}t|t|jjf}||jjvr6|||jj|dSdS)ap
        Validates a schema that defines rules against supported rules.

        :param schema: The schema to be validated as a legal cerberus schema
                       according to the rules of the assigned Validator object.
                       Raises a :class:`~cerberus.base.SchemaError` when an invalid
                       schema is encountered.
        N)r@rr3r#_valid_schemas	_validateadd)rAr@_hashs   rr?zDefinitionSchema.validatesx>[Ff%%|DN4P'Q'QR555NN6"""N)--e4444465rct|tr |jj||}i}|D]s\}}t|trt||||<9i}|D]\}}|||dd<|||<t||dst|jj
dS)N roF	normalize)r1rr3r4r5rqrules_set_registryreplacer=rr)rAr@test_schemartru
test_rulesrx
constraints        rrzDefinitionSchema._validatesfi((	H^377GGF"LLNN	0	0LE5%++
0%7%;%;E5%I%IE""
(-

DD$D*9CJt||C5566%/E""$$[E$BB	<d3:;;;	<	<rrJ)rrrrr'rBrHrLrPrSrVrZr]r$classmethodr>r`rar5rqr%staticmethodrbrr?r
__classcell__r+s@rrr"s;;
9
9
9
9
9B	!	!	!!!!!!!   !!!
000BBB

[
[,%%[%N....###&&&\<HHH5555 <<<<<<<rrc$eZdZifdZdZdZdS)UnvalidatedSchemac\t|tst|}||_dSrJ)r1r	r6r@rAr@s  rrBzUnvalidatedSchema.__init__s*&'**	"&\\FrcdSrJrrs  rr?zUnvalidatedSchema.validate$srcZ||jSrJ)r+r@r$rOs rr$zUnvalidatedSchema.copy's$~~dk..00111rN)rrrrBr?r$rrrrrsI 



22222rrceZdZdZdS)r:c&d|jdd|_dS)NFr6)r-r@type)rur@)rAr3s  rrBzSchemaValidationSchema.__init__.s"o

rN)rrrrBrrrr:r:-s#




rr:ceZdZdZfdZedZedZedZedZ	dZ
dZd	Zd
Z
dZdZd
ZdZxZS)r"zi
    This validator mixin provides mechanics to validate schemas passed to a Cerberus
    validator.
    c|dt|dttt|j|i|dS)Nknown_rules_set_refsknown_schema_refs)
setdefaultsetr&r"rB)rAr)r*r+s   rrBzSchemaValidatorMixin.__init__<sb0#%%888-suu5552"D))2DCFCCCCCrc|jdS)z7The encountered references to rules set registry items.r_configrOs rrz)SchemaValidatorMixin.known_rules_set_refsAs|233rc|jdS)z4The encountered references to schema registry items.rrrOs rrz&SchemaValidatorMixin.known_schema_refsFs|/00rc|jdS)z#The schema that is being validated.r/rrOs rr/z"SchemaValidatorMixin.target_schemaKs|O,,rc|jdS)z.The validator whose schema is being validated.r0rrOs rr0z%SchemaValidatorMixin.target_validatorPs|.//rcLt|trc||jvrdS|j||jj|}|||d|zdS|}td|it|jj	f}||jj
vrdS||d|jj}||d|j
r||j
dS|jj
|dS)Nz"Rules set definition %s not found.turingFdocument_crumbr-r@r)r1rrrr0rr5_errorrr#r_get_child_validatorru_errors)rArtrY
definitionrr3s      r_check_with_bulk_schemaz,SchemaValidatorMixin._check_with_bulk_schemaUsIeY''
	#111)--e444.AEEeLLJ!E#G%#OPPP"
(E*++.<==
D)888F-- (..

	
		%5))))	<KK	)*****!044U;;;;;rct|trdSt|trG||dddiid}||ds||jdSdSt|tr<td|Ds%|j|fz}||d	dSdSdS)
NrrlistTrr@r-Frc3@K|]}t|tVdSrJ)r1rrs  rrz@SchemaValidatorMixin._check_with_dependencies.<locals>.<genexpr>s,>>1z!X..>>>>>>rz)All dependencies must be a hashable type.)	r1rr	rrrrr
document_path)rArtrYr3paths     r_check_with_dependenciesz-SchemaValidatorMixin._check_with_dependenciesus
eY''
	OD
w
'
'	O11$%'78"2I
9Ue444
/I-.....
/
/
x
(
(	O>>>>>>>
O)UH4D"MNNNNN	O	O
O
Orc`t|D]\}}|||f|dSrJ)	enumerater)rArtrYir@s     r_check_with_itemsz&SchemaValidatorMixin._check_with_itemssD"5))	=	=IAv((%V<<<<	=	=rc	|||}n#t$rYdSwxYwt|t|jjf}||jjvrdS||d|j}|||d|j	r|
|j	dS|jj|dS)NrFr)&_handle_schema_reference_for_validatorrrr0r#rrroot_allow_unknown_expand_rules_set_refsrrr)rArtrYrr3s     r_check_with_schemaz'SchemaValidatorMixin._check_with_schemas	??uMMEE			FF	e$$l43H3V&W&WXD)888F-- T=T.

			$--e44FFFF	<KK	)*****!044U;;;;;s
''c&t|trt|fnt|}|t|jjz
}|r>||dd|dSdS)NzUnsupported types: {}z, )r1rrr0typesrr9join)rArtrYinvalid_constraintss    r_check_with_typez%SchemaValidatorMixin._check_with_types!+E9!=!=MUH


3u::#c$*?*E&F&FF	KK.55dii@S6T6TUU




		rci}|D]B\}}t|tr#|jj|||<=|||<C|SrJ)rqr1rr0rr5)rAr@resultkvs     rrz+SchemaValidatorMixin._expand_rules_set_refsscLLNN		DAq!Y''
 1DHHKKq		q		
rc@t|ts|S||jvrt|j||jj|}|;|j|fz}|	|d
|t|S)NzSchema definition {} not found.)r1rrrrr0r4r5rrr9)rArtrYrrs     rrz;SchemaValidatorMixin._handle_schema_reference_for_validators%++	LD***L""5)))*:>>uEE
%0DKK?FFuMMNNNLrct|ts"||tjdS||d|jj}|D]}td|it|jj	f}||jj
vr;||d|jr||jj|jj
|dS)z2{'allowed': ('allof', 'anyof', 'noneof', 'oneof')}NFrrr)
r1rrrBAD_TYPErr0validation_rulesrr#rrr)rArxrtrYr3constraintsrs       r_validate_logicalz&SchemaValidatorMixin._validate_logicals%**	KKv///F--(9.

	!	@	@Kh455T2@AAE-<<<IkU3333 
@I-....%488????	@	@r)rrrrrBpropertyrrr/r0rrrrrrrrrrs@rr"r"6s6
DDDDD
44X411X1--X-00X0<<<@OOO ===<<<&@@@@@@@rr"cBeZdZdZifdZdZdZdZdZd
dZ	d	Z
dS)Registryz
    A registry to store and retrieve schemas and parts of it by a name that can be used
    in validation schemas.

    :param definitions: Optional, initial definitions.
    :type definitions: any :term:`mapping`
    c>i|_||dSrJ)_storageextend)rAdefinitionss  rrBzRegistry.__init__s!
K     rc@|||j|<dS)aQ
        Register a definition to the registry. Existing definitions are replaced
        silently.

        :param name: The name which can be used as reference in a validation
                     schema.
        :type name: :class:`str`
        :param definition: The definition.
        :type definition: any :term:`mapping`
        N)_expand_definitionr)rAnamers   rrzRegistry.adds$#55jAA
drc|jS)z_
        Returns a :class:`dict` with all registered definitions mapped to their name.
        )rrOs rrzRegistry.alls}rc8|jdS)z&Purge all definitions in the registry.N)rclearrOs rrzRegistry.clears
rct|D]\}}|||dS)a
        Add several definitions at once. Existing definitions are
        replaced silently.

        :param definitions: The names and definitions.
        :type definitions: a :term:`mapping` or an :term:`iterable` with
                           two-value :class:`tuple` s
        N)r6rqr)rArrrs    rrzRegistry.extendsM!%[ 1 1 7 7 9 9	'	'D*HHT:&&&&	'	'rNc8|j||S)z
        Retrieve a definition from the registry.

        :param name: The reference that points to the definition.
        :type name: :class:`str`
        :param default: Return value if the reference isn't registered.
        )rr5)rArrs   rr5zRegistry.get	s}  w///rcF|D]}|j|ddS)z
        Unregister definitions from the registry.

        :param names: The names of the definitions that are to be
                      unregistered.
        N)rr)rAnamesrs   rremovezRegistry.removes8	*	*DMdD))))	*	*rrJ)rrrrrBrrrrr5rrrrrrs$&!!!!BBB
'
'
'0000*****rrc$eZdZedZdS)SchemaRegistryc6t|SrJrr>r(rs  rrz!SchemaRegistry._expand_definitions&&z222rNrrrrrrrrrrs-33[333rrc$eZdZedZdS)RulesSetRegistrycFtd|idSrXrrs  rrz#RulesSetRegistry._expand_definition%s&&:77::rNrrrrrr$s-;;[;;;rrN)
__future__rwarningsrcerberusrcerberus.platformrrrr	r
rcerberus.utilsrr
rrr7rrrrr:objectr"rrrr4rrrr<module>rs&&&&&&					Y								)			y<y<y<y<y<~y<y<y<x22222(222




.


]@]@]@]@]@6]@]@]@FB*B*B*B*B*vB*B*B*J33333X333;;;;;x;;;'5n&6&68H8H8J8J####r
Back to Directory File Manager