
    ?e!                         G d  de           Z G d de          Z G d de          Zd Zd Zd Z ee          Zd	 Z	 ee	d
          Z
d Z eed
d
          Zd Z ee          Zd Z ee          Zi d e            d e            d e            d e            d e            d e            d e            d e            d ed          d e            d e            d e            d e            d e            d e            d  e            d! e            i d" e            d# e            d$ e            d% e            d& e            d' e            d( e            d) e
d          d* e            d+ ed,          d- e            d. e            d/ e            d0 e            d1 e            d2 e            d3 e            i d4 e            d5 e            d6 e            d7 e            d8 e            d9 e            d: e            d; e            d< e            d= e            d> e            d? e            d@ e            dA e            dB e            dC e
            dD e            i dE e            dF e            dG e            dH e            dI e            dJ e
            dK e            dL ed,          dM e            dN e            dO e            dP e            dQ e            dR e            dS e            dT e            ZdUS )Vc                       e Zd ZdZdS )
DottedNamez Encapsulate a dotted name.  A dedicated type is used (rather than a
    str) because we need to be able to distinguish it from a quoted string when
    used as the value of an annotation.
    N)__name__
__module____qualname____doc__     Elib/python3.11/site-packages/sipbuild/generator/parser/annotations.pyr   r      s         
 	Dr	   r   c                       e Zd ZdZd Zd ZdS )InvalidAnnotationz An invalid annotation. c                 J    d                     ||          | _        || _        dS ) Initialise the exception. z{0} {1}N)format_textuse)selfnamemessager   s       r
   __init__zInvalidAnnotation.__init__$   s(     %%dG44
 r	   c                     | j         S )z1 Return the exception as a user friendly string. )r   )r   s    r
   __str__zInvalidAnnotation.__str__,   s     zr	   N)r   r   r   r   r   r   r   r	   r
   r   r   !   s8        ""      r	   r   c                   "     e Zd ZdZ fdZ xZS )RequiredAnnotationz A required annotation. c                 P    t                                          | d|           dS )r   zrequires a valuer   N)superr   )r   r   	__class__s     r
   r   zRequiredAnnotation.__init__5   s+     	1s;;;;;r	   )r   r   r   r   r   __classcell__)r   s   @r
   r   r   2   s>        ""< < < < < < < < <r	   r   c                 ~    	 t           |         }n # t          $ r t          |dd          w xY w || ||||          S )zZ Return a valid value for the annotation or raise an InvalidAnnotation
    exception.
    zis not a known annotationNr   )_ANNOTATION_TYPESKeyErrorr   )pmpsymbolr   value	validators         r
   validate_annotation_valuer'   ;   sc    
M%d+		 M M M&AtLLLLM 9RFD%000s    -c                       fd}|S )z Return a function that when called with a validator function and
    prototype keyword arguments will itself return a function that will create
    an annotation-specific validator.
    c                  h                                                         |            fd}|S )Nc                      | ||||fi S )Nr   )r"   r#   r$   r   r%   kwr&   s        r
   bound_validatorz6bind.<locals>.proto_validator.<locals>.bound_validatorZ   s#    9RFD%>>2>>>r	   )copyupdate)bound_kwr,   r+   proto_kwr&   s     @r
   proto_validatorzbind.<locals>.proto_validatorQ   sK     ]]__
		(	? 	? 	? 	? 	? 	? r	   r   )r&   r0   r1   s   `` r
   bindr2   H   s*          r	   c                 .    |dS t          |dd          )z Return a valid boolean value. NTzmust not have a valueFr   )r   r"   r#   r$   r   r%   s        r
   validate_booleanr5   b   s$     }t
D"9u
E
E
EEr	   c                    ||rdS t          |d          t          |t                    st          |dd          |S )z- Return a valid, possibly optional, integer. N    r   zmust be an integer)r   
isinstanceintr   )r"   r#   r$   r   r%   optionals         r
   validate_integerr;   m   sW     } 	4 1----eS!! C&:BBBBLr	   F)r:   c                    ||rdS t          |d          t          |t                    st          |dd          d|v r|st          |dd          |S )z: Return a valid, possibly optional, possibly dotted name. N r   zmust be an unquoted name.zcannot contain '.')r   r8   r   r   )r"   r#   r$   r   r%   
allow_dotsr:   s          r
   validate_namer@   ~   sz     } 	2 2....eZ(( J&@bIIII
e||J|&:CCCCLr	   )r?   r:   c                    t          |t                    st          |dd          |                    d          D ]}d|vr|                                c S |                    dd          \  }}|                    d          r|dd	         }d
}nd}|                     ||||          r|                                c S d	S )z Return a valid string value. must be a quoted stringr=   r   ;:   )maxsplit!NTF)r8   strr   splitstrip
startswithevaluate_feature_or_platform)	r"   r#   r$   r   r%   partselectorsubvalueinverteds	            r
   validate_stringrQ      s     eS!! I&?RHHHH C   $ $d??::<<!ZZaZ88(s## 	|HHHH**1fhII 	$>>#####	$ 4r	   c                 z    t          |t                    st          |dg           |                    d          S )z# Return a valid string list value. rB   r    )r8   rH   r   rI   r4   s        r
   validate_string_listrT      s?     eS!! I&?RHHHH;;sr	   __imatmul____len__
__matmul__AbortOnExceptionAbstract	AllowNoneArray	ArraySizeAutoGenTBaseTypeCapsuleConstrained
DeprecatedDefault	DelayDtorDisallowNoneExportDerivedExternalEncodingFactoryFileExtension
GetWrapperHoldGILInKeepReferenceKeywordArgsMetatype)r?   Mixin	NewThreadNoArgParserNoAssignmentOperatorNoCopy
NoCopyCtorNoDefaultCtorNoDefaultCtors	NoDerivedNoRaisesPyException	NoReleaseNoScopeNoSetter
NoTypeHint
NoTypeNameNoVirtualErrorHandlerNumericOutPostHookPreHookPyIntPyName	PyQtFlagsPyQtFlagsEnumsPyQtInterfacePyQtNoQMetaObjectRaisesPyException
ReleaseGIL
ResultSizeScopesStrippedSequence	SupertypeTransferTransferBackTransferThisTypeHint
TypeHintInTypeHintOutTypeHintValueVirtualErrorHandlerN)rH   r   	Exceptionr   r   r'   r2   r5   booleanr;   integerr@   r   rQ   stringrT   string_listr    r   r	   r
   <module>r      s  0	 	 	 	 	 	 	 	    	   "< < < < <* < < <
1 
1 
1  4F F F $
 
    $%
0
0
0  " tMee<<<  0 
o		   d'((D		D		D 		D 			D
 		D 		D 		D 		D d 3 3 3D D 		D 		D 		D 		D 		D  		!D" 		#D D$ 		%D& 'D( 		)D* +D, 		-D. 		/D0 			1D2  6 6 63D4 5D6  5 5 57D8 		9D: 		;D< 		=D> 		?D@ 		ADB 		CDD 		ED D DF 		GDH 		IDJ 		KDL 		MDN 		ODP 		QDR 		SDT 		UDV 		WDX 		YDZ 
		[D\ ]D^ _D` 		aDb cDd 		eDf gD D Dh iDj 		kDl 		mDn 		oDp 		qDr 		sDt 		uDv  5 5 5wDx 		yDz 		{D| 		}D~ D@ ADB CDD EDF GD D   r	   