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()