PyUp Safety actively tracks 263,166 Python packages for vulnerabilities and notifies you when to upgrade.
- In the case of a method returning a non-serializable value, return a JSON-RPC error response. It was previously erroring server-side without responding to the client. (119) - Fix for Python 3.8 - ensures the same exceptions will be raised in 3.8 and pre-3.8. (122)
- Fix the egg-info directory in package.
- Fix file permission on all files.
- Add InvalidParamsError exception, for input validation. Previously the advice was to `assert` on input values. However, AssertionError was too generic an exception. Instead, raise InvalidParamsError. Note `assert` will still work but will be removed in the next major release (5.0). - Add an ApiError exception; raise it to send an application defined error response. This covers the line in the JSON-RPC spec, "The remainder of the space is available for application defined errors." - A KeyError raised inside methods will no longer send a "method not found" response. - Uncaught exceptions raised inside methods will now be logged. We've been simply responding to the client with a Server Error. Now the traceback will also be logged server-side. - Fix a deprecation warning related to collections.abc. - Add py.typed to indicate this package supports typing. (PEP 561) Thanks to steinymity for his work on this release.
- Include license in package.
- Use faster method of jsonschema validation - Use inspect from stdlib, removing the need for funcsigs
- Update dependencies to allow jsonschema version 3.x - Support Python 3.8
- Fix to allow passing context when no parameters are passed.
- Include exception in ExceptionResponse. Closes 74.
_The 4.x releases will support Python 3.6+ only._ - Dispatch now works only with `Methods` object. No longer accepts a dictionary or list. - `dispatch` no longer requires a "methods" argument. If not passed, uses the global methods object. - Methods initialiser has a simpler api - Methods(func1, func2, ...) or Methods(name1=func1, name2=func2, ...). - No more jsonrpcserver exceptions. Calling code will _always_ get a valid JSON-RPC response from `dispatch`. The old `InvalidParamsError` is gone - instead do a regular `assert` on arguments. - `response.is_notification` renamed to `response.wanted`, which is the opposite of is_notification. This means the original request was not a notification, it had an id, and does expect a response. - Removed "respond to notification errors" option, which broke the specification. We still respond to invalid json/json-rpc requests, in which case it's not possible to know if the request is a notification. - Removed the "config" module. Added external config file, `.jsonrpcserverrc`. (alternatively configure with arguments to dispatch) - Removed the "six" dependency, no longer needed. - Configure logging Pythonically. - Add type hints - Move tests to pytest - Passing a context object to dispatch now sets it as the first positional argument to the method. `def fruits(ctx, color):` - Check params with regular asserts.
- Add trim_log_values dispatch param. (65) - Fix a missing import
- Rewrite of dispatch(), adding parameters to configure the dispatch that were previously configured by modifying the `config` module. That module is now deprecated and will be removed in 4.0.
- Allow requests to have any non-None id
- Refactor for Request subclassing
- Include context data in regular (synchronous) methods.dispatch
- Pass some context data through dispatch to the methods. - Fix not calling notifications in batch requests.
- Add `Response.is_notification` attribute
- Fix `convert_camel_case` with array params
- Disable logging in config - Performance improved - Fix async batch requests
- Added asyncio support. (Python 3.5+) - Added a *methods* object to the jsonrpcserver module (so you can import jsonrpcserver.methods, rather than instantiating your own). - Added methods.dispatch().
- Fix Methods.serve_forever in python 2 (thanks bplower)
- Updated method of logging exception (thanks bplower)
- Pass Methods named args onto MutableMapping - Remove unused logger
- Allow passing dict to Methods constructor
- A basic HTTP server has been added.