Changelogs » Jsonrpcserver

PyUp Safety actively tracks 263,166 Python packages for vulnerabilities and notifies you when to upgrade.

Jsonrpcserver

4.1.3

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

4.1.2

- Fix the egg-info directory in package.

4.1.1

- Fix file permission on all files.

4.1.0

- 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.

4.0.5

- Include license in package.

4.0.4

- Use faster method of jsonschema validation
  - Use inspect from stdlib, removing the need for funcsigs

4.0.3

- Update dependencies to allow jsonschema version 3.x
  - Support Python 3.8

4.0.2

- Fix to allow passing context when no parameters are passed.

4.0.1

- Include exception in ExceptionResponse. Closes 74.

4.0.0

_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.

3.5.6

- Add trim_log_values dispatch param. (65)
  - Fix a missing import

3.5.5

- 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.

3.5.4

- Refactoring

3.5.3

- Allow requests to have any non-None id

3.5.2

- Refactor for Request subclassing

3.5.1

- Include context data in regular (synchronous) methods.dispatch

3.5.0

- Pass some context data through dispatch to the methods.
  - Fix not calling notifications in batch requests.

3.4.3

- Add `Response.is_notification` attribute

3.4.2

- Fix `convert_camel_case` with array params

3.4.1

- Disable logging in config
  - Performance improved
  - Fix async batch requests

3.4.0

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

3.3.4

- Fix Methods.serve_forever in python 2 (thanks bplower)

3.3.3

- Updated method of logging exception (thanks bplower)

3.3.2

- Pass Methods named args onto MutableMapping
  - Remove unused logger

3.3.1

- Allow passing dict to Methods constructor

3.3.0

- A basic HTTP server has been added.