summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <prs247au@gmail.com>2017-05-20 10:56:51 +1000
committerPaul Smith <prs247au@gmail.com>2017-05-20 10:56:51 +1000
commit9edb32cf07c332805b53f1772e7bdefa1d2d4983 (patch)
tree96e6f1519c86b6655cd1c4ed38126ec1d0868903
parent3789355028206a63b2d161a9c47c5e2d0b212b32 (diff)
downloadjsonrpclib-9edb32cf07c332805b53f1772e7bdefa1d2d4983.tar.gz
Put in some changes suggested by Josh
-rw-r--r--jsonrpclib/SimpleJSONRPCServer.py17
-rw-r--r--jsonrpclib/jsonclass.py4
-rw-r--r--jsonrpclib/jsonrpc.py20
3 files changed, 24 insertions, 17 deletions
diff --git a/jsonrpclib/SimpleJSONRPCServer.py b/jsonrpclib/SimpleJSONRPCServer.py
index cf48a66..290fafa 100644
--- a/jsonrpclib/SimpleJSONRPCServer.py
+++ b/jsonrpclib/SimpleJSONRPCServer.py
@@ -2,11 +2,11 @@ import jsonrpclib
from jsonrpclib import Fault
from jsonrpclib.jsonrpc import USE_UNIX_SOCKETS
try:
- import SimpleXMLRPCServer
- import SocketServer
-except ImportError:
- import xmlrpc.server as SimpleXMLRPCServer
+ import xmlrpc.server as SimpleXMLRPCServer # Python 3.x
import socketserver as SocketServer
+except ImportError:
+ import SimpleXMLRPCServer # Python 2.7
+ import SocketServer
import socket
import logging
import os
@@ -17,11 +17,11 @@ try:
except ImportError:
# For Windows
fcntl = None
+
try:
- string_types = (str, unicode)
+ basestring # Python 2.7
except NameError:
- string_types = (str, )
-
+ basestring = str # Python 3.x
def get_version(request):
# must be a dict
@@ -46,7 +46,7 @@ def validate_request(request):
request.setdefault('params', [])
method = request.get('method', None)
params = request.get('params')
- if not method or not isinstance(method, string_types) or \
+ if not method or not isinstance(method, basestring) or \
not isinstance(params, (list, dict, tuple)):
fault = Fault(
-32600, 'Invalid request parameters or method.', rpcid=rpcid
@@ -177,7 +177,6 @@ class SimpleJSONRPCRequestHandler(
response = self.server._marshaled_dispatch(data)
self.send_response(200)
except Exception as ex:
- print('Exception in do_POST(): %s'%ex)
self.send_response(500)
err_lines = traceback.format_exc().splitlines()
trace_string = '%s | %s' % (err_lines[-3], err_lines[-1])
diff --git a/jsonrpclib/jsonclass.py b/jsonrpclib/jsonclass.py
index 34a1939..31f829d 100644
--- a/jsonrpclib/jsonclass.py
+++ b/jsonrpclib/jsonclass.py
@@ -6,10 +6,10 @@ from jsonrpclib import config
iter_types = (dict, list, tuple)
value_types = (bool, )
try:
- string_types = (str, unicode)
+ string_types = (basestring, ) # Python 2.7
numeric_types = (int, long, float)
except NameError:
- string_types = (str, )
+ string_types = (str, ) # Python 3.x
numeric_types = (int, float)
supported_types = iter_types+string_types+numeric_types+value_types
diff --git a/jsonrpclib/jsonrpc.py b/jsonrpclib/jsonrpc.py
index 469bfa0..9508b72 100644
--- a/jsonrpclib/jsonrpc.py
+++ b/jsonrpclib/jsonrpc.py
@@ -47,19 +47,27 @@ See http://code.google.com/p/jsonrpclib/ for more info.
"""
try:
- from xmlrpclib import Transport as XMLTransport
- from xmlrpclib import SafeTransport as XMLSafeTransport
- from xmlrpclib import ServerProxy as XMLServerProxy
- from xmlrpclib import _Method as XML_Method
-except ImportError:
+ # Python 3.x
from xmlrpc.client import Transport as XMLTransport
from xmlrpc.client import SafeTransport as XMLSafeTransport
from xmlrpc.client import ServerProxy as XMLServerProxy
from xmlrpc.client import _Method as XML_Method
+except ImportError:
+ # Python 2.7
+ from xmlrpclib import Transport as XMLTransport
+ from xmlrpclib import SafeTransport as XMLSafeTransport
+ from xmlrpclib import ServerProxy as XMLServerProxy
+ from xmlrpclib import _Method as XML_Method
import string
import random
+try:
+ basestring # Python 2.7
+except NameError:
+ basestring = str # Python 3.x
+
+
# Library includes
from jsonrpclib import config
from jsonrpclib import history
@@ -458,7 +466,7 @@ class Payload(dict):
self.version = float(version)
def request(self, method, params=[]):
- if not isinstance(method, str):
+ if not isinstance(method, basestring):
raise ValueError('Method name must be a string.')
if not self.id:
self.id = random_id()