We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent e586bfe commit b2f40f9Copy full SHA for b2f40f9
src/tarantool/response.py
@@ -24,17 +24,23 @@ def __new__(cls, value):
24
25
if isinstance(value, unicode):
26
return super(field, cls).__new__(cls, value.encode("utf-8", "replace"))
27
+
28
if sys.version_info.major < 3 and isinstance(value, str):
29
return super(field, cls).__new__(cls, value)
30
31
if isinstance(value, (bytearray, bytes)):
32
- if isinstance(value, int):
- if value <= 0xFFFFFFFF:
33
34
+ if isinstance(value, (int, long)):
35
+ if 0 <= value <= 0xFFFFFFFF:
36
# 32 bit integer
37
return super(field, cls).__new__(cls, struct_L.pack(value))
- else:
38
+ elif 0xFFFFFFFF < value <= 0xFFFFFFFFFFFFFFFF:
39
# 64 bit integer
40
return super(field, cls).__new__(cls, struct_Q.pack(value))
41
+ else:
42
+ raise ValueError("Integer argument out of range")
43
44
# NOTE: It is posible to implement float
45
raise TypeError("Unsupported argument type '%s'"%(type(value).__name__))
46
0 commit comments