X7ROOT File Manager
Current Path:
/lib/python2.7/site-packages/google/protobuf/internal
lib
/
python2.7
/
site-packages
/
google
/
protobuf
/
internal
/
📁
..
📄
__init__.py
(0 B)
📄
__init__.pyc
(156 B)
📄
__init__.pyo
(156 B)
📄
_parameterized.py
(15.07 KB)
📄
_parameterized.pyc
(15.94 KB)
📄
_parameterized.pyo
(15.5 KB)
📄
any_test_pb2.py
(6.96 KB)
📄
any_test_pb2.pyc
(4.84 KB)
📄
any_test_pb2.pyo
(4.84 KB)
📄
api_implementation.py
(6.9 KB)
📄
api_implementation.pyc
(3.37 KB)
📄
api_implementation.pyo
(3.37 KB)
📄
containers.py
(20.4 KB)
📄
containers.pyc
(24.48 KB)
📄
containers.pyo
(24.48 KB)
📄
decoder.py
(30.56 KB)
📄
decoder.pyc
(25.39 KB)
📄
decoder.pyo
(25.3 KB)
📄
descriptor_database_test.py
(4.5 KB)
📄
descriptor_database_test.pyc
(2.56 KB)
📄
descriptor_database_test.pyo
(2.56 KB)
📄
descriptor_pool_test.py
(42.62 KB)
📄
descriptor_pool_test.pyc
(35.53 KB)
📄
descriptor_pool_test.pyo
(35.53 KB)
📄
descriptor_pool_test1_pb2.py
(20.43 KB)
📄
descriptor_pool_test1_pb2.pyc
(11.03 KB)
📄
descriptor_pool_test1_pb2.pyo
(11.03 KB)
📄
descriptor_pool_test2_pb2.py
(12.12 KB)
📄
descriptor_pool_test2_pb2.pyc
(7.57 KB)
📄
descriptor_pool_test2_pb2.pyo
(7.57 KB)
📄
descriptor_test.py
(41.73 KB)
📄
descriptor_test.pyc
(32.79 KB)
📄
descriptor_test.pyo
(32.79 KB)
📄
encoder.py
(27.87 KB)
📄
encoder.pyc
(28.82 KB)
📄
encoder.pyo
(28.65 KB)
📄
enum_type_wrapper.py
(3.47 KB)
📄
enum_type_wrapper.pyc
(2.92 KB)
📄
enum_type_wrapper.pyo
(2.92 KB)
📄
factory_test1_pb2.py
(7.63 KB)
📄
factory_test1_pb2.pyc
(5.49 KB)
📄
factory_test1_pb2.pyo
(5.49 KB)
📄
factory_test2_pb2.py
(24.34 KB)
📄
factory_test2_pb2.pyc
(14.02 KB)
📄
factory_test2_pb2.pyo
(14.02 KB)
📄
file_options_test_pb2.py
(2.98 KB)
📄
file_options_test_pb2.pyc
(3.03 KB)
📄
file_options_test_pb2.pyo
(3.03 KB)
📄
generator_test.py
(14.4 KB)
📄
generator_test.pyc
(12.98 KB)
📄
generator_test.pyo
(12.98 KB)
📁
import_test_package
📄
json_format_test.py
(40.46 KB)
📄
json_format_test.pyc
(33.87 KB)
📄
json_format_test.pyo
(33.87 KB)
📄
message_factory_test.py
(9.43 KB)
📄
message_factory_test.pyc
(6.74 KB)
📄
message_factory_test.pyo
(6.74 KB)
📄
message_listener.py
(3.29 KB)
📄
message_listener.pyc
(2.56 KB)
📄
message_listener.pyo
(2.56 KB)
📄
message_set_extensions_pb2.py
(8.28 KB)
📄
message_set_extensions_pb2.pyc
(5.4 KB)
📄
message_set_extensions_pb2.pyo
(5.4 KB)
📄
message_test.py
(85.56 KB)
📄
message_test.pyc
(71.09 KB)
📄
message_test.pyo
(70.97 KB)
📄
missing_enum_values_pb2.py
(9.38 KB)
📄
missing_enum_values_pb2.pyc
(6.04 KB)
📄
missing_enum_values_pb2.pyo
(6.04 KB)
📄
more_extensions_dynamic_pb2.py
(4.85 KB)
📄
more_extensions_dynamic_pb2.pyc
(4 KB)
📄
more_extensions_dynamic_pb2.pyo
(4 KB)
📄
more_extensions_pb2.py
(7.13 KB)
📄
more_extensions_pb2.pyc
(5.02 KB)
📄
more_extensions_pb2.pyo
(5.02 KB)
📄
more_messages_pb2.py
(4.16 KB)
📄
more_messages_pb2.pyc
(3.62 KB)
📄
more_messages_pb2.pyo
(3.62 KB)
📄
packed_field_test_pb2.py
(19.87 KB)
📄
packed_field_test_pb2.pyc
(10.76 KB)
📄
packed_field_test_pb2.pyo
(10.76 KB)
📄
proto_builder_test.py
(3.66 KB)
📄
proto_builder_test.pyc
(2.85 KB)
📄
proto_builder_test.pyo
(2.85 KB)
📄
python_message.py
(56.49 KB)
📄
python_message.pyc
(50.45 KB)
📄
python_message.pyo
(50.34 KB)
📄
reflection_test.py
(125.23 KB)
📄
reflection_test.pyc
(96.92 KB)
📄
reflection_test.pyo
(96.92 KB)
📄
service_reflection_test.py
(5.26 KB)
📄
service_reflection_test.pyc
(5.18 KB)
📄
service_reflection_test.pyo
(5.18 KB)
📄
symbol_database_test.py
(5.5 KB)
📄
symbol_database_test.pyc
(4.65 KB)
📄
symbol_database_test.pyo
(4.65 KB)
📄
test_bad_identifiers_pb2.py
(5.8 KB)
📄
test_bad_identifiers_pb2.pyc
(4.58 KB)
📄
test_bad_identifiers_pb2.pyo
(4.58 KB)
📄
test_util.py
(33.15 KB)
📄
test_util.pyc
(31.33 KB)
📄
test_util.pyo
(31.28 KB)
📄
testing_refleaks.py
(4.4 KB)
📄
testing_refleaks.pyc
(3.81 KB)
📄
testing_refleaks.pyo
(3.81 KB)
📄
text_encoding_test.py
(2.81 KB)
📄
text_encoding_test.pyc
(1.96 KB)
📄
text_encoding_test.pyo
(1.96 KB)
📄
text_format_test.py
(63.68 KB)
📄
text_format_test.pyc
(56.52 KB)
📄
text_format_test.pyo
(56.52 KB)
📄
type_checkers.py
(13.9 KB)
📄
type_checkers.pyc
(11.58 KB)
📄
type_checkers.pyo
(11.58 KB)
📄
unknown_fields_test.py
(13.52 KB)
📄
unknown_fields_test.pyc
(11.46 KB)
📄
unknown_fields_test.pyo
(11.46 KB)
📄
well_known_types.py
(27.62 KB)
📄
well_known_types.pyc
(32.88 KB)
📄
well_known_types.pyo
(32.88 KB)
📄
well_known_types_test.py
(34.58 KB)
📄
well_known_types_test.pyc
(25.4 KB)
📄
well_known_types_test.pyo
(25.4 KB)
📄
wire_format.py
(8.25 KB)
📄
wire_format.pyc
(8.82 KB)
📄
wire_format.pyo
(8.82 KB)
📄
wire_format_test.py
(10.65 KB)
📄
wire_format_test.pyc
(6.77 KB)
📄
wire_format_test.pyo
(6.77 KB)
Editing: type_checkers.py
# Protocol Buffers - Google's data interchange format # Copyright 2008 Google Inc. All rights reserved. # https://developers.google.com/protocol-buffers/ # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following disclaimer # in the documentation and/or other materials provided with the # distribution. # * Neither the name of Google Inc. nor the names of its # contributors may be used to endorse or promote products derived from # this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. """Provides 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 coresponding wire types. TYPE_TO_DESERIALIZE_METHOD: A dictionary with field types and deserialization function. """ __author__ = 'robinson@google.com (Will Robinson)' import numbers import six if six.PY3: long = int from google.protobuf.internal import api_implementation from google.protobuf.internal import decoder from google.protobuf.internal import encoder from google.protobuf.internal import wire_format from google.protobuf import descriptor _FieldDescriptor = descriptor.FieldDescriptor def SupportsOpenEnums(field_descriptor): return field_descriptor.containing_type.syntax == "proto3" def GetTypeChecker(field): """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. """ if (field.cpp_type == _FieldDescriptor.CPPTYPE_STRING and field.type == _FieldDescriptor.TYPE_STRING): return UnicodeValueChecker() if field.cpp_type == _FieldDescriptor.CPPTYPE_ENUM: if SupportsOpenEnums(field): # When open enums are supported, any int32 can be assigned. return _VALUE_CHECKERS[_FieldDescriptor.CPPTYPE_INT32] else: return EnumValueChecker(field.enum_type) return _VALUE_CHECKERS[field.cpp_type] # None of the typecheckers below make any attempt to guard against people # subclassing builtin types and doing weird things. We're not trying to # protect against malicious clients here, just people accidentally shooting # themselves in the foot in obvious ways. class TypeChecker(object): """Type checker used to catch type errors as early as possible when the client is setting scalar fields in protocol messages. """ def __init__(self, *acceptable_types): self._acceptable_types = acceptable_types def CheckValue(self, proposed_value): """Type check the provided value and return it. The returned value might have been normalized to another type. """ if not isinstance(proposed_value, self._acceptable_types): message = ('%.1024r has type %s, but expected one of: %s' % (proposed_value, type(proposed_value), self._acceptable_types)) raise TypeError(message) return proposed_value class TypeCheckerWithDefault(TypeChecker): def __init__(self, default_value, *acceptable_types): TypeChecker.__init__(self, acceptable_types) self._default_value = default_value def DefaultValue(self): return self._default_value # IntValueChecker and its subclasses perform integer type-checks # and bounds-checks. class IntValueChecker(object): """Checker used for integer fields. Performs type-check and range check.""" def CheckValue(self, proposed_value): if not isinstance(proposed_value, numbers.Integral): message = ('%.1024r has type %s, but expected one of: %s' % (proposed_value, type(proposed_value), six.integer_types)) raise TypeError(message) if not self._MIN <= int(proposed_value) <= self._MAX: raise ValueError('Value out of range: %d' % proposed_value) # We force 32-bit values to int and 64-bit values to long to make # alternate implementations where the distinction is more significant # (e.g. the C++ implementation) simpler. proposed_value = self._TYPE(proposed_value) return proposed_value def DefaultValue(self): return 0 class EnumValueChecker(object): """Checker used for enum fields. Performs type-check and range check.""" def __init__(self, enum_type): self._enum_type = enum_type def CheckValue(self, proposed_value): if not isinstance(proposed_value, numbers.Integral): message = ('%.1024r has type %s, but expected one of: %s' % (proposed_value, type(proposed_value), six.integer_types)) raise TypeError(message) if int(proposed_value) not in self._enum_type.values_by_number: raise ValueError('Unknown enum value: %d' % proposed_value) return proposed_value def DefaultValue(self): return self._enum_type.values[0].number class UnicodeValueChecker(object): """Checker used for string fields. Always returns a unicode value, even if the input is of type str. """ def CheckValue(self, proposed_value): if not isinstance(proposed_value, (bytes, six.text_type)): message = ('%.1024r has type %s, but expected one of: %s' % (proposed_value, type(proposed_value), (bytes, six.text_type))) raise TypeError(message) # If the value is of type 'bytes' make sure that it is valid UTF-8 data. if isinstance(proposed_value, bytes): try: proposed_value = proposed_value.decode('utf-8') except UnicodeDecodeError: raise ValueError('%.1024r has type bytes, but isn\'t valid UTF-8 ' 'encoding. Non-UTF-8 strings must be converted to ' 'unicode objects before being added.' % (proposed_value)) return proposed_value def DefaultValue(self): return u"" class Int32ValueChecker(IntValueChecker): # We're sure to use ints instead of longs here since comparison may be more # efficient. _MIN = -2147483648 _MAX = 2147483647 _TYPE = int class Uint32ValueChecker(IntValueChecker): _MIN = 0 _MAX = (1 << 32) - 1 _TYPE = int class Int64ValueChecker(IntValueChecker): _MIN = -(1 << 63) _MAX = (1 << 63) - 1 _TYPE = long class Uint64ValueChecker(IntValueChecker): _MIN = 0 _MAX = (1 << 64) - 1 _TYPE = long # Type-checkers for all scalar CPPTYPEs. _VALUE_CHECKERS = { _FieldDescriptor.CPPTYPE_INT32: Int32ValueChecker(), _FieldDescriptor.CPPTYPE_INT64: Int64ValueChecker(), _FieldDescriptor.CPPTYPE_UINT32: Uint32ValueChecker(), _FieldDescriptor.CPPTYPE_UINT64: Uint64ValueChecker(), _FieldDescriptor.CPPTYPE_DOUBLE: TypeCheckerWithDefault( 0.0, numbers.Real), _FieldDescriptor.CPPTYPE_FLOAT: TypeCheckerWithDefault( 0.0, numbers.Real), _FieldDescriptor.CPPTYPE_BOOL: TypeCheckerWithDefault( False, bool, numbers.Integral), _FieldDescriptor.CPPTYPE_STRING: TypeCheckerWithDefault(b'', bytes), } # Map from field type to a function F, such that F(field_num, value) # gives the total byte size for a value of the given type. This # byte size includes tag information and any other additional space # associated with serializing "value". TYPE_TO_BYTE_SIZE_FN = { _FieldDescriptor.TYPE_DOUBLE: wire_format.DoubleByteSize, _FieldDescriptor.TYPE_FLOAT: wire_format.FloatByteSize, _FieldDescriptor.TYPE_INT64: wire_format.Int64ByteSize, _FieldDescriptor.TYPE_UINT64: wire_format.UInt64ByteSize, _FieldDescriptor.TYPE_INT32: wire_format.Int32ByteSize, _FieldDescriptor.TYPE_FIXED64: wire_format.Fixed64ByteSize, _FieldDescriptor.TYPE_FIXED32: wire_format.Fixed32ByteSize, _FieldDescriptor.TYPE_BOOL: wire_format.BoolByteSize, _FieldDescriptor.TYPE_STRING: wire_format.StringByteSize, _FieldDescriptor.TYPE_GROUP: wire_format.GroupByteSize, _FieldDescriptor.TYPE_MESSAGE: wire_format.MessageByteSize, _FieldDescriptor.TYPE_BYTES: wire_format.BytesByteSize, _FieldDescriptor.TYPE_UINT32: wire_format.UInt32ByteSize, _FieldDescriptor.TYPE_ENUM: wire_format.EnumByteSize, _FieldDescriptor.TYPE_SFIXED32: wire_format.SFixed32ByteSize, _FieldDescriptor.TYPE_SFIXED64: wire_format.SFixed64ByteSize, _FieldDescriptor.TYPE_SINT32: wire_format.SInt32ByteSize, _FieldDescriptor.TYPE_SINT64: wire_format.SInt64ByteSize } # Maps from field types to encoder constructors. TYPE_TO_ENCODER = { _FieldDescriptor.TYPE_DOUBLE: encoder.DoubleEncoder, _FieldDescriptor.TYPE_FLOAT: encoder.FloatEncoder, _FieldDescriptor.TYPE_INT64: encoder.Int64Encoder, _FieldDescriptor.TYPE_UINT64: encoder.UInt64Encoder, _FieldDescriptor.TYPE_INT32: encoder.Int32Encoder, _FieldDescriptor.TYPE_FIXED64: encoder.Fixed64Encoder, _FieldDescriptor.TYPE_FIXED32: encoder.Fixed32Encoder, _FieldDescriptor.TYPE_BOOL: encoder.BoolEncoder, _FieldDescriptor.TYPE_STRING: encoder.StringEncoder, _FieldDescriptor.TYPE_GROUP: encoder.GroupEncoder, _FieldDescriptor.TYPE_MESSAGE: encoder.MessageEncoder, _FieldDescriptor.TYPE_BYTES: encoder.BytesEncoder, _FieldDescriptor.TYPE_UINT32: encoder.UInt32Encoder, _FieldDescriptor.TYPE_ENUM: encoder.EnumEncoder, _FieldDescriptor.TYPE_SFIXED32: encoder.SFixed32Encoder, _FieldDescriptor.TYPE_SFIXED64: encoder.SFixed64Encoder, _FieldDescriptor.TYPE_SINT32: encoder.SInt32Encoder, _FieldDescriptor.TYPE_SINT64: encoder.SInt64Encoder, } # Maps from field types to sizer constructors. TYPE_TO_SIZER = { _FieldDescriptor.TYPE_DOUBLE: encoder.DoubleSizer, _FieldDescriptor.TYPE_FLOAT: encoder.FloatSizer, _FieldDescriptor.TYPE_INT64: encoder.Int64Sizer, _FieldDescriptor.TYPE_UINT64: encoder.UInt64Sizer, _FieldDescriptor.TYPE_INT32: encoder.Int32Sizer, _FieldDescriptor.TYPE_FIXED64: encoder.Fixed64Sizer, _FieldDescriptor.TYPE_FIXED32: encoder.Fixed32Sizer, _FieldDescriptor.TYPE_BOOL: encoder.BoolSizer, _FieldDescriptor.TYPE_STRING: encoder.StringSizer, _FieldDescriptor.TYPE_GROUP: encoder.GroupSizer, _FieldDescriptor.TYPE_MESSAGE: encoder.MessageSizer, _FieldDescriptor.TYPE_BYTES: encoder.BytesSizer, _FieldDescriptor.TYPE_UINT32: encoder.UInt32Sizer, _FieldDescriptor.TYPE_ENUM: encoder.EnumSizer, _FieldDescriptor.TYPE_SFIXED32: encoder.SFixed32Sizer, _FieldDescriptor.TYPE_SFIXED64: encoder.SFixed64Sizer, _FieldDescriptor.TYPE_SINT32: encoder.SInt32Sizer, _FieldDescriptor.TYPE_SINT64: encoder.SInt64Sizer, } # Maps from field type to a decoder constructor. TYPE_TO_DECODER = { _FieldDescriptor.TYPE_DOUBLE: decoder.DoubleDecoder, _FieldDescriptor.TYPE_FLOAT: decoder.FloatDecoder, _FieldDescriptor.TYPE_INT64: decoder.Int64Decoder, _FieldDescriptor.TYPE_UINT64: decoder.UInt64Decoder, _FieldDescriptor.TYPE_INT32: decoder.Int32Decoder, _FieldDescriptor.TYPE_FIXED64: decoder.Fixed64Decoder, _FieldDescriptor.TYPE_FIXED32: decoder.Fixed32Decoder, _FieldDescriptor.TYPE_BOOL: decoder.BoolDecoder, _FieldDescriptor.TYPE_STRING: decoder.StringDecoder, _FieldDescriptor.TYPE_GROUP: decoder.GroupDecoder, _FieldDescriptor.TYPE_MESSAGE: decoder.MessageDecoder, _FieldDescriptor.TYPE_BYTES: decoder.BytesDecoder, _FieldDescriptor.TYPE_UINT32: decoder.UInt32Decoder, _FieldDescriptor.TYPE_ENUM: decoder.EnumDecoder, _FieldDescriptor.TYPE_SFIXED32: decoder.SFixed32Decoder, _FieldDescriptor.TYPE_SFIXED64: decoder.SFixed64Decoder, _FieldDescriptor.TYPE_SINT32: decoder.SInt32Decoder, _FieldDescriptor.TYPE_SINT64: decoder.SInt64Decoder, } # Maps from field type to expected wiretype. FIELD_TYPE_TO_WIRE_TYPE = { _FieldDescriptor.TYPE_DOUBLE: wire_format.WIRETYPE_FIXED64, _FieldDescriptor.TYPE_FLOAT: wire_format.WIRETYPE_FIXED32, _FieldDescriptor.TYPE_INT64: wire_format.WIRETYPE_VARINT, _FieldDescriptor.TYPE_UINT64: wire_format.WIRETYPE_VARINT, _FieldDescriptor.TYPE_INT32: wire_format.WIRETYPE_VARINT, _FieldDescriptor.TYPE_FIXED64: wire_format.WIRETYPE_FIXED64, _FieldDescriptor.TYPE_FIXED32: wire_format.WIRETYPE_FIXED32, _FieldDescriptor.TYPE_BOOL: wire_format.WIRETYPE_VARINT, _FieldDescriptor.TYPE_STRING: wire_format.WIRETYPE_LENGTH_DELIMITED, _FieldDescriptor.TYPE_GROUP: wire_format.WIRETYPE_START_GROUP, _FieldDescriptor.TYPE_MESSAGE: wire_format.WIRETYPE_LENGTH_DELIMITED, _FieldDescriptor.TYPE_BYTES: wire_format.WIRETYPE_LENGTH_DELIMITED, _FieldDescriptor.TYPE_UINT32: wire_format.WIRETYPE_VARINT, _FieldDescriptor.TYPE_ENUM: wire_format.WIRETYPE_VARINT, _FieldDescriptor.TYPE_SFIXED32: wire_format.WIRETYPE_FIXED32, _FieldDescriptor.TYPE_SFIXED64: wire_format.WIRETYPE_FIXED64, _FieldDescriptor.TYPE_SINT32: wire_format.WIRETYPE_VARINT, _FieldDescriptor.TYPE_SINT64: wire_format.WIRETYPE_VARINT, }
Upload File
Create Folder