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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
diff --git a/pysearpc/client.py b/pysearpc/client.py
index 20e5535..0dc8b5a 100644
--- a/pysearpc/client.py
+++ b/pysearpc/client.py
@@ -1,4 +1,4 @@
-from builtins import object
+from .utils import object
import json
from .common import SearpcError
diff --git a/pysearpc/named_pipe.py b/pysearpc/named_pipe.py
index a0ca619..113097c 100644
--- a/pysearpc/named_pipe.py
+++ b/pysearpc/named_pipe.py
@@ -4,7 +4,7 @@ RPC client/server implementation based on named pipe transport.
from future import standard_library
standard_library.install_aliases()
-from builtins import object
+from .utils import object
import json
import logging
import os
diff --git a/pysearpc/server.py b/pysearpc/server.py
index a7ec7be..9bf7a3a 100644
--- a/pysearpc/server.py
+++ b/pysearpc/server.py
@@ -1,5 +1,5 @@
from builtins import str
-from builtins import object
+from .utils import object
import json
from .common import SearpcError
diff --git a/pysearpc/test_pysearpc.py b/pysearpc/test_pysearpc.py
index a9c6f8b..41cfb3b 100755
--- a/pysearpc/test_pysearpc.py
+++ b/pysearpc/test_pysearpc.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
#coding: UTF-8
-from builtins import object
+from .utils import object
import json
import logging
import os
diff --git a/pysearpc/transport.py b/pysearpc/transport.py
index 3c6e821..8fc630a 100644
--- a/pysearpc/transport.py
+++ b/pysearpc/transport.py
@@ -1,5 +1,5 @@
-from builtins import object
+from .utils import object
class SearpcTransport(object):
"""
A transport is repsonsible to send the serialized request to the
diff --git a/pysearpc/utils.py b/pysearpc/utils.py
index 2aeda93..8c3ddad 100644
--- a/pysearpc/utils.py
+++ b/pysearpc/utils.py
@@ -1,9 +1,30 @@
-from builtins import bytes
+from builtins import bytes, object
import os
import socket
from pysearpc.errors import NetworkError
+class object(object):
+
+ def __nonzero__(self):
+ """
+ Fix issue:
+ https://github.com/PythonCharmers/python-future/issues/282
+ """
+ try:
+ return type(self).__bool__(self)
+ except AttributeError:
+ pass
+
+ try:
+ return type(self).__len__(self)
+ except AttributeError:
+ pass
+
+ # object has no __nonzero__ method
+ return True
+
+
def recvall(fd, total):
remain = total
data = bytearray()
|