Index: third_party/protobuf/python/google/protobuf/internal/type_checkers.py |
diff --git a/third_party/protobuf/python/google/protobuf/internal/type_checkers.py b/third_party/protobuf/python/google/protobuf/internal/type_checkers.py |
index 4a76cd4ef6282b6ab86f367d17d753948e1a9779..1be3ad9a3c09d388f8ff46ae894f93e0d61bc819 100755 |
--- a/third_party/protobuf/python/google/protobuf/internal/type_checkers.py |
+++ b/third_party/protobuf/python/google/protobuf/internal/type_checkers.py |
@@ -45,7 +45,6 @@ TYPE_TO_DESERIALIZE_METHOD: A dictionary with field types and deserialization |
__author__ = 'robinson@google.com (Will Robinson)' |
-import numbers |
import six |
if six.PY3: |
@@ -127,11 +126,11 @@ 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): |
+ if not isinstance(proposed_value, six.integer_types): |
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: |
+ if not self._MIN <= 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 |
@@ -151,11 +150,11 @@ class EnumValueChecker(object): |
self._enum_type = enum_type |
def CheckValue(self, proposed_value): |
- if not isinstance(proposed_value, numbers.Integral): |
+ if not isinstance(proposed_value, six.integer_types): |
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: |
+ if proposed_value not in self._enum_type.values_by_number: |
raise ValueError('Unknown enum value: %d' % proposed_value) |
return proposed_value |
@@ -224,11 +223,11 @@ _VALUE_CHECKERS = { |
_FieldDescriptor.CPPTYPE_UINT32: Uint32ValueChecker(), |
_FieldDescriptor.CPPTYPE_UINT64: Uint64ValueChecker(), |
_FieldDescriptor.CPPTYPE_DOUBLE: TypeCheckerWithDefault( |
- 0.0, numbers.Real), |
+ 0.0, float, int, long), |
_FieldDescriptor.CPPTYPE_FLOAT: TypeCheckerWithDefault( |
- 0.0, numbers.Real), |
+ 0.0, float, int, long), |
_FieldDescriptor.CPPTYPE_BOOL: TypeCheckerWithDefault( |
- False, bool, numbers.Integral), |
+ False, bool, int), |
_FieldDescriptor.CPPTYPE_STRING: TypeCheckerWithDefault(b'', bytes), |
} |