by Gerold Penz 2013-2016
- ToDo: Urllib3 for faster client requests
2016-11-23
- Replaced the Bunch library with the newer Munch library.
2016-07-27
- New method Request.create
- New function rpcrequest.create_request()
2016-07-18
- If in Debug-Mode: http_request() writes the result to the log, if HttpError occures.
2016-05-20
- New format for automatic conversion from ISO string to DateTime added.
2016-04-08
- Automatic conversion from ISO string to Date, DateTime and Google App Engine NDB - Key and BlobKey
- Version 0.9.0 because of the new feature.
2016-04-07
- Automatic conversion from Date and DateTime to ISO string
- Automatic conversion from ISO string to Date, DateTime and Google App Engine NDB - Key and BlobKey
- New functions for conversion
- rpcjson.date_time_decoder()
- rpcjson.date_time_and_ndb_encoder()
- rpcjson.activate_date_time_and_ndb_conversion()
- New examples for using automatic conversion between ISO-string and Date/DateTime added.
2016-03-22
- Error handling changed: Used Exception in place of StandardError (earlier I used BaseException).
2016-02-27
- Notifications must not have an ID-field. Until now the notify-method had an ID-field with null-value. Since now notifications will not have an ID-field. Thank you brandonkimbk! Issue #41 closed.
2015-11-27
- Added coverage
- Added badges to README & Python version to Travis
- Merged pull request #35 from ZuluPro
- Images in README commented out
- Replaced
except <Error>, err
withexcept <Error> as err
- Version-Push: Version 0.8.3
2015-09-10
- The new function get_traceback_string returns the traceback string of the last error.
- Error handling changed
2015-09-04
- Error repared in _SpooledFile in Google App Engine
- Gzip changes
- Recognize Google App Engine
2015-09-03
- Changed the usage of username and password in HTTP-requests.
2015-07-18
- New method rpcrequest.Request.to_dict()
- New method rpcrequest.Request.from_dict()
- Nosetests added
2015-07-17
- Nosetests for rpcerror.py added.
- Nosetests for rpcrequest.py added.
2015-07-11
- rpcjson.loads now supports Python 2.6. Changed in Python version 2.7: Added support for object_pairs_hook.
- Wheel setup added (http://pythonwheels.com/).
2015-07-11
- Nosetests included and Travis (https://travis-ci.org/) aktivated. Thank you scls19fr. Extended tests will follow.
2015-07-10
- Pull request by ilius merged: rpcresponse.py: handle string error; Thank you, ilius!
- Never again: Raising an error if a RPC-method returns None. Now, it is OK if the return value of a function is None. Until now only notifications were allowed to return None.
2015-05-29
Bug fixed: Library does not respect 0-value IDs
A request is a notification if:
- JSON-RPC version 2.0: no id
- JSON-RPC version 1.0: id is null
Thank you "lonelycode" and "pieceofchalk".
2015-05-18
- SSL-Import deleted
- Http: Debugging of JSON messages added
2015-05-18
- rpclib: Error-Logging --> logging.error()
2015-05-14
- HttpClient: Added option to disable SSL certificate checks
- Example added: custom_ssl_context.py
2015-04-01
- JsonRpcError-Class: __str__- and __unicode__-Function added. For better
error message when using
unicde(err)
.
2015-03-20
- Better checking if empty json string.
- Cherrypy:
- Workaround for false "Content-Types": If the request is a POST-request, the body will not read by cherrypy.
- Bug in GET-requests fixed: GET-requests are possible now.
2015-03-14
Now, it is possible to raise JsonRpcError with any integer as error code.
Pull request #20 built in. Thanks OrangeTux.
Examples: "raise_error_example_server.py" and "raise_error_example_client.py"
2015-03-14
- Possibly incompatible changes in background: Now, pyjsonrpc uses only the builtin JSON-library. jsonlib2 and simplejson are no longer supported.
- All parameters of the functions json.loads and json.dumps can now be customized.
- New examples: "ordered_dict_example_server.py", "ordered_dict_example_client.py"
2015-02-03
- For Google App Engine: SpooledTemporaryFile replaced with StringIO.
2014-10-24
- CherryPy-Handler distinguishes between GET and POST.
- WSGI-Examples added
2014-10-24
- Added CherryPy handler :-)
2014-10-23
- Usage of SpooledTemporaryFile cleaned.
2014-10-22
- Gzip-compression cleaned. I'm not sure, if the usage of tempfile.SpooledTemporaryFile is a good idea. I must test it.
2014-10-22
- Httpclient and HttpRequestHandler: Added the possibility to compress HTTP-requests and HTTP-responses with gzip. @ajtag: Thanks :-)
- Workaround in Response-class for other external library (I don't know which one. ask @ajtag): Response accepts "faultCode", "fault" and "faultString".
2014-10-21
- New Alias ServiceProxy added. For better compatibility to other libraries.
- Request.from_string() added
- Request.to_string() added
- Examples added
2014-10-21
- New Alias ServiceMethod added, for the @pyjsonrpc.rpcmethod-decorator.
2014-10-11
HTTP-Server: The content-type is changeable, now. Default content-type stays "application/json". If you want to change the content-type:
class RequestHandler(pyjsonrpc.HttpRequestHandler): content-type = "application/json-rpc" ...
HTTP-Server GET-Request: Check if method name given
2014-09-12
- Descriptions
2014-09-12
- The new decorator @pyjsonrpc.rpcmethod signs methods as JSON-RPC-Methods.
- Examples with the new rpcmethod-decorator added.
- I think, python-jsonrpc is stable enough to set the classifier to "Development Status :: 5 - Production/Stable".
2014-09-12
- HttpClient: cookies-parameter added. Now, it is possible to add simple cookie-items.
2014-09-12
- HttpClient: New parameters added: - additional_headers: Possibility to add additional header items. - content_type: Possibility to change the content-type header.
2014-08-19
HttpClient: The new timeout parameter specifies a timeout in seconds for blocking operations like the connection attempt (if not specified, the global default timeout setting will be used). Thanks geerk :-)
See: gerold-penz#6
2014-06-28
- It is now possible to send multiple calls in one request.
- multiple_example.py added.
2014-06-28
- Bunch is now a setup-dependency.
- The new method HttpClient.notify sends notifications to the server, without id as parameter.
2013-07-07
- Tests with CGI reqeusts
2013-07-07
- Better HTTP server example
- Deleted the rpcjson.json import from __init__.py.
- The Method do_POST handles HTTP-POST requests
- CGI handler created
- CGI example created
2013-07-06
- Tests with BaseHTTPServer
- Moved JsonRpc-class from __init__.py to rpclib.py.
- ThreadingHttpServer created
- HttpRequestHandler created
- The Method do_GET handles HTTP-GET requests
- Created HTTP server example
2013-07-06
- Small new feature in HttpClient: Class instance calls will be redirected to
self.call. Now this is possible:
http_client("add", 1, 2)
.
2013-07-04
- Try to import fast JSON-libraries at first:
- try to use jsonlib2
- try to use simplejson
- use builtin json
- To simplify the code, now we use bunch. Bunch is a dictionary that supports attribute-style access.
2013-07-03
- RPC-Errors are now better accessible
2013-06-30
- Now, it is possible to use the method name as attribute name for HTTP-JSON-RPC Requests.
2013-06-30
- rcperror-Module: Error classes shortened.
- Response.from_error-method deleted. I found a better way (not so complex) to deliver error messages.
- New simple_example.py
- Examples directory structure changed
- HTTP-Request
- HTTP-Client
- HTTP-Client examples
2013-06-24
- Splitted into several modules
- New response-class
2013-06-23
- Return of the Response-Object improved
2013-06-23
- Added a system.describe-method (not finished yet)
- Added examples
- Added parse_json_response-function
2013-06-23
- Responses module deleted
- call-method finished
- Simple example
2013-06-23
- Responses splitted into successful response and errors
- call-function
2013-06-23
- Error module created
- Responses module created
- Base structure
2013-06-23
- Initialy imported