Changelogs » Jsonrpcserver

Jsonrpcserver

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.