zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
U
£ý°dÃCã$@s~dZdZddlZddlZddlmZddlmZddlmZddlm    Z    e    j
Z dd    „Z d
d „Z d d „Zdd„ZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGd d!„d!eƒZGd"d#„d#eƒZe d$¡Ze Zed%ƒZed&ƒZ Gd'd(„d(eƒZ!Gd)d*„d*e!ƒZ"e j#eƒe j$eƒe j%eƒe j&eƒe j'e!ƒe j(e"ƒe j)eƒe j*ed+e+ƒiZ,e j-ej.e j/ej0e j1ej2e j3ej4e j5ej6e j7ej8e j9ej:e j;ej<e j=ej>e j?ej@e jAejBe jCejDe jEejFe jGejHe jIejJe jKejLe jMejNe jOejPiZQe j-ejRe j/ejSe j1ejTe j3ejUe j5ejVe j7ejWe j9ejXe j;ejYe j=ejZe j?ej[e jAej\e jCej]e jEej^e jGej_e jIej`e jKejae jMejbe jOejciZde j-ejee j/ejfe j1ejge j3ejhe j5ejie j7ejje j9ejke j;ejle j=ejme j?ejne jAejoe jCejpe jEejqe jGejre jIejse jKejte jMejue jOejviZwe j-ejxe j/ejye j1ejze j3ej{e j5ej|e j7ej}e j9ej~e j;eje j=ej€e j?eje jAej‚e jCejƒe jEej„e jGej…e jIej†e jKej‡e jMejˆe jOej‰iZŠe j-ej‹e j/ejŒe j1eje j3eje j5eje j7ej‹e j9ejŒe j;eje j=ejŽe j?eje jAejŽe jCejŽe jEeje jGeje jIejŒe jKej‹e jMeje jOejiZdS),aProvides type checking routines.
 
This module defines type checking utilities in the forms of dictionaries:
 
VALUE_CHECKERS: A dictionary of field types and a value validation object.
TYPE_TO_BYTE_SIZE_FN: A dictionary with field types and a size computing
  function.
TYPE_TO_SERIALIZE_METHOD: A dictionary with field types and serialization
  function.
FIELD_TYPE_TO_WIRE_TYPE: A dictionary with field typed and their
  corresponding wire types.
TYPE_TO_DESERIALIZE_METHOD: A dictionary with field types and deserialization
  function.
z#robinson@google.com (Will Robinson)éN)Údecoder)Úencoder)Ú wire_format)Ú
descriptorcCs t |¡jS©N)ÚctypesÚc_floatÚvalue)Úoriginal©r ú]d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\google/protobuf/internal/type_checkers.pyÚTruncateToFourByteFloat;sr cCs>d}td ||¡ƒ}t|ƒ|kr:|d7}td ||¡ƒ}q|S)z7Returns the shortest float that has same value in wire.éz    {0:.{1}g}é)ÚfloatÚformatr )r
Z    precisionZroundedr r r ÚToShortestFloat?s  rcCs |jjdkS)NZproto3)Zcontaining_typeZsyntax)Zfield_descriptorr r r ÚSupportsOpenEnumsNsrcCsP|jtjkr|jtjkrtƒS|jtjkrFt|ƒr<ttj    St
|j ƒSt|jS)a
Returns a type checker for a message field of the specified types.
 
  Args:
    field: FieldDescriptor object for this field.
 
  Returns:
    An instance of TypeChecker which can be used to verify the types
    of values assigned to a field of the specified type.
  ) Zcpp_typeÚ_FieldDescriptorÚCPPTYPE_STRINGÚtypeÚ TYPE_STRINGÚUnicodeValueCheckerZ CPPTYPE_ENUMrÚ_VALUE_CHECKERSÚ CPPTYPE_INT32ÚEnumValueCheckerÚ    enum_type)Úfieldr r r ÚGetTypeCheckerRs
 
ÿ 
 
rc@s eZdZdZdd„Zdd„ZdS)Ú TypeCheckerzType checker used to catch type errors as early as possible
  when the client is setting scalar fields in protocol messages.
  cGs
||_dSr)Ú_acceptable_types)ÚselfÚacceptable_typesr r r Ú__init__rszTypeChecker.__init__cCs,t||jƒs(d|t|ƒ|jf}t|ƒ‚|S)zuType check the provided value and return it.
 
    The returned value might have been normalized to another type.
    ú,%.1024r has type %s, but expected one of: %s)Ú
isinstancer rÚ    TypeError©r!Úproposed_valueÚmessager r r Ú
CheckValueus  ÿzTypeChecker.CheckValueN)Ú__name__Ú
__module__Ú __qualname__Ú__doc__r#r*r r r r rlsrc@seZdZdd„Zdd„ZdS)ÚTypeCheckerWithDefaultcGstj|f|žŽ||_dSr)rr#Ú_default_value)r!Ú default_valuer"r r r r#ƒszTypeCheckerWithDefault.__init__cCs|jSr)r0©r!r r r Ú DefaultValue‡sz#TypeCheckerWithDefault.DefaultValueN)r+r,r-r#r3r r r r r/sr/c@s eZdZdZdd„Zdd„ZdS)ÚBoolValueCheckerz"Type checker used for bool fields.cCsLt|dƒr&t|ƒjdkrDt|ƒjdkrDd|t|ƒttff}t|ƒ‚t|ƒS)NÚ    __index__ÚnumpyÚndarrayr$)Úhasattrrr,r+ÚboolÚintr&r'r r r r*Žs
 ÿ þÿzBoolValueChecker.CheckValuecCsdS)NFr r2r r r r3—szBoolValueChecker.DefaultValueN©r+r,r-r.r*r3r r r r r4‹s    r4c@s eZdZdZdd„Zdd„ZdS)ÚIntValueCheckerzFChecker used for integer fields.  Performs type-check and range check.cCsxt|dƒr&t|ƒjdkrBt|ƒjdkrBd|t|ƒtff}t|ƒ‚|jt|ƒkr^|jkslntd|ƒ‚t|ƒ}|S)Nr5r6r7r$zValue out of range: %d)    r8rr,r+r:r&Ú_MINÚ_MAXÚ
ValueErrorr'r r r r*¡s
 ÿ þÿ zIntValueChecker.CheckValuecCsdS©Nrr r2r r r r3°szIntValueChecker.DefaultValueNr;r r r r r<sr<c@s(eZdZdZdd„Zdd„Zdd„ZdS)    rzCChecker used for enum fields.  Performs type-check and range check.cCs
||_dSr)Ú
_enum_type)r!rr r r r#¸szEnumValueChecker.__init__cCsHt|tjƒs(d|t|ƒtff}t|ƒ‚t|ƒ|jjkrDtd|ƒ‚|S)Nr$zUnknown enum value: %d)    r%ÚnumbersÚIntegralrr:r&rAZvalues_by_numberr?r'r r r r*»s ÿ zEnumValueChecker.CheckValuecCs|jjdjSr@)rAÚvaluesÚnumberr2r r r r3ÄszEnumValueChecker.DefaultValueN)r+r,r-r.r#r*r3r r r r r´s    rc@s eZdZdZdd„Zdd„ZdS)rzgChecker used for string fields.
 
  Always returns a unicode value, even if the input is of type str.
  cCsœt|ttfƒs,d|t|ƒttff}t|ƒ‚t|tƒrhz| d¡}Wq˜tk
rdtd|ƒ‚Yq˜Xn0z| d¡Wn t    k
r–td|ƒ‚YnX|S)Nr$zutf-8z‚%.1024r has type bytes, but isn't valid UTF-8 encoding. Non-UTF-8 strings must be converted to unicode objects before being added.Úutf8zC%.1024r isn't a valid unicode string and can't be encoded in UTF-8.)
r%ÚbytesÚstrrr&ÚdecodeÚUnicodeDecodeErrorr?ÚencodeÚUnicodeEncodeErrorr'r r r r*Ïs&ÿ
ýþ zUnicodeValueChecker.CheckValuecCsdS)NÚr r2r r r r3èsz UnicodeValueChecker.DefaultValueNr;r r r r rÈsrc@seZdZdZdZdS)ÚInt32ValueCheckeri€iÿÿÿN©r+r,r-r=r>r r r r rNìsrNc@seZdZdZdZdS)ÚUint32ValueCheckerrlÿÿNrOr r r r rPósrPc@seZdZdZdZdS)ÚInt64ValueCheckerlûÿÿÿlÿÿÿÿNrOr r r r rQøsrQc@seZdZdZdZdS)ÚUint64ValueCheckerrlÿÿÿÿNrOr r r r rRýsrRz0x1.fffffep+127Úinfz-infc@s eZdZdZdd„Zdd„ZdS)ÚDoubleValueCheckerzJChecker used for double fields.
 
  Performs type-check and range check.
  cCsPt|dƒst|dƒr0t|ƒjdkrHt|ƒjdkrHd|t|ƒf}t|ƒ‚t|ƒS)ú*Check and convert proposed_value to float.Ú    __float__r5r6r7z4%.1024r has type %s, but expected one of: int, float)r8rr,r+r&rr'r r r r*s
ÿ þ ý
ÿzDoubleValueChecker.CheckValuecCsdS)Ngr r2r r r r3szDoubleValueChecker.DefaultValueNr;r r r r rT    s rTcs eZdZdZ‡fdd„Z‡ZS)ÚFloatValueCheckerz‹Checker used for float fields.
 
  Performs type-check and range check.
 
  Values exceeding a 32-bit float will be converted to inf/-inf.
  cs,tƒ |¡}|tkrtS|tkr$tSt|ƒS)rU)Úsuperr*Ú
_FLOAT_MAXÚ_INFÚ
_FLOAT_MINÚ_NEG_INFr )r!r(Zconverted_value©Ú    __class__r r r*&s  zFloatValueChecker.CheckValue)r+r,r-r.r*Ú __classcell__r r r]r rWsrWó)‘r.Ú
__author__rrBZgoogle.protobuf.internalrrrZgoogle.protobufrZFieldDescriptorrr rrrÚobjectrr/r4r<rrrNrPrQrRrÚfromhexrYr[rZr\rTrWrZ CPPTYPE_INT64ZCPPTYPE_UINT32ZCPPTYPE_UINT64ZCPPTYPE_DOUBLEZ CPPTYPE_FLOATZ CPPTYPE_BOOLrrGrZ TYPE_DOUBLEZDoubleByteSizeZ
TYPE_FLOATZ FloatByteSizeZ
TYPE_INT64Z Int64ByteSizeZ TYPE_UINT64ZUInt64ByteSizeZ
TYPE_INT32Z Int32ByteSizeZ TYPE_FIXED64ZFixed64ByteSizeZ TYPE_FIXED32ZFixed32ByteSizeZ    TYPE_BOOLZ BoolByteSizerZStringByteSizeZ
TYPE_GROUPZ GroupByteSizeZ TYPE_MESSAGEZMessageByteSizeZ
TYPE_BYTESZ BytesByteSizeZ TYPE_UINT32ZUInt32ByteSizeZ    TYPE_ENUMZ EnumByteSizeZ TYPE_SFIXED32ZSFixed32ByteSizeZ TYPE_SFIXED64ZSFixed64ByteSizeZ TYPE_SINT32ZSInt32ByteSizeZ TYPE_SINT64ZSInt64ByteSizeZTYPE_TO_BYTE_SIZE_FNZ DoubleEncoderZ FloatEncoderZ Int64EncoderZ UInt64EncoderZ Int32EncoderZFixed64EncoderZFixed32EncoderZ BoolEncoderZ StringEncoderZ GroupEncoderZMessageEncoderZ BytesEncoderZ UInt32EncoderZ EnumEncoderZSFixed32EncoderZSFixed64EncoderZ SInt32EncoderZ SInt64EncoderZTYPE_TO_ENCODERZ DoubleSizerZ
FloatSizerZ
Int64SizerZ UInt64SizerZ
Int32SizerZ Fixed64SizerZ Fixed32SizerZ    BoolSizerZ StringSizerZ
GroupSizerZ MessageSizerZ
BytesSizerZ UInt32SizerZ    EnumSizerZ SFixed32SizerZ SFixed64SizerZ SInt32SizerZ SInt64SizerZ TYPE_TO_SIZERZ DoubleDecoderZ FloatDecoderZ Int64DecoderZ UInt64DecoderZ Int32DecoderZFixed64DecoderZFixed32DecoderZ BoolDecoderZ StringDecoderZ GroupDecoderZMessageDecoderZ BytesDecoderZ UInt32DecoderZ EnumDecoderZSFixed32DecoderZSFixed64DecoderZ SInt32DecoderZ SInt64DecoderZTYPE_TO_DECODERZWIRETYPE_FIXED64ZWIRETYPE_FIXED32ZWIRETYPE_VARINTZWIRETYPE_LENGTH_DELIMITEDZWIRETYPE_START_GROUPZFIELD_TYPE_TO_WIRE_TYPEr r r r Ú<module>sÌ    
$
øîîîîë