Django-modern-rpc

Latest version: v1.1.0

Safety actively analyzes 723158 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 5

0.12.0

**Release date: 2019-12-05**

Misc

- Django 2.1, 2.2 and 3.0 are now officially supported. Thanks to atodorov for 3.0 compatibility
- Added Python 3.7 and 3.8 support
- Dropped Python 3.3 support

Improvements

- To ensure compatibility with [JSON-RPC 1.2](https://www.jsonrpc.org/historical/json-rpc-over-http.html),
2 more "Content-Type" values are supported by JSON-RPC Handler: "application/json-rpc" and
"application/jsonrequest" (24). Thanks to dansan

0.11.1

**Release date: 2018-05-13**

Improvements

Last release introduced some undocumented breaking API changes regarding RPC registry management. Old API has been
restored for backward compatibility. The following global functions are now back in the API:

- modernrpc.core.register\_rpc\_method()
- modernrpc.core.get\_all\_method\_names()
- modernrpc.core.get\_all\_methods()
- modernrpc.core.get\_method()
- modernrpc.core.reset\_registry()

In addition, some improvements have been applied to unit tests, to make sure test environment is the same after each
test function. In addition, some exclusion patterns have been added in .coveragerc file to increase coverage
report accuracy.

0.11.0

**Release date: 2018-04-25**

Improvements

- Django 2.0 is now officially supported. Tox and Travis default config have been updated to integrate Django 2.0 in
existing tests environments.
- Method's documentation is generated only if needed and uses Django's cached\_property decorator
- HTML documentation default template has been updated: Bootstrap 4.1.0 stable is now used, and the rendering has
been improved.
- Many units tests have been improved. Some tests with many calls to LiveServer have been split into shorter ones.

API Changes

- Class RPCRequest has been removed and replaced by method `execute_procedure(name, args, kwargs)` in `RPCHandler`
class. This method contains common logic used to retrieve an RPC method, execute authentication predicates to make
sure it can be run, execute the concrete method and return the result.
- HTML documentation content is not marked as "safe" anymore, using `django.utils.safestring.mark_safe()`. You have to
use Django decorator `safe` in your template if you display this value.

Settings

- The `kwargs` dict passed to RPC methods can have customized keys (18). Set the following values:
- `settings.MODERNRPC_KWARGS_REQUEST_KEY`
- `settings.MODERNRPC_KWARGS_ENTRY_POINT_KEY`
- `settings.MODERNRPC_KWARGS_PROTOCOL_KEY`
- `settings.MODERNRPC_KWARGS_HANDLER_KEY`

to override dict keys and prevent conflicts with your own methods arguments.

0.10.0

**Release date: 2017-12-06**

Improvements

- Logging system / error management
- In case of error, current exception stacktrace is now passed to logger by default. This allows special handler
like `django.utils.log.AdminEmailHandler` or `raven.handlers.logging.SentryHandler` to use it to report more
useful information (13)
- Error messages have been rewritten to be consistent across all modules and classes
- Decrease log verbosity: some `INFO` log messages now have `DEBUG` level (startup methods registration)
- Documentation has been updated
- Added a page to explain how to configure RPC methods documentation generation, and add a note to explicitly state
that `markdown` or `docutils` package must be installed if `settings.MODERNRPC_DOC_FORMAT` is set to non-empty
value (16)
- Added a page to list implemented system introspection methods
- Added a bibliography page, to list all references used to write the library
- Default template for generated RPC methods documentation now uses Bootstrap 4.0.0-beta.2 (previously 4.0.0-alpha.5)

0.9.0

**Release date: 2017-10-03**

This is a major release with many improvements, protocol support and bug fixes. This version introduces an API break,
please read carefully.

Improvements

- Class `RPCException` and its subclasses now accept an additional `data` argument (10). This is used by JSON-RPC
handler to report additional information to user in case of error. This data is ignored by XML-RPC handler.
- JSON-RPC: Batch requests are now supported (11)
- JSON-RPC: Named parameters are now supported (12)
- JSON-RPC: Notification calls are now supported. Missing "id" in a payload is no longer considered as invalid, but is
correctly handled. No HTTP response is returned in such case, according to the standard.
- XML-RPC: exception raised when serializing data to XML are now caught as `InternalError` and a clear error message

API Changes

- Both `modernrpc.handlers.JSONRPC` and `modernrpc.handlers.XMLRPC` constants were moved and renamed. They become
respectively `modernrpc.core.JSONRPC_PROTOCOL` and `modernrpc.core.XMLRPC_PROTOCOL`
- `RPCHandler` class updated, as well as subclasses `XMLRPCHandler` and `JSONRPCHandler`. `RPCHandler.parse_request()`
is now `RPCHandler.process_request()`. The new method does not return a tuple `(method_name, params)` anymore.
Instead, it executes the underlying RPC method using new class `RPCRequest`. If you customized your handlers, please
make sure you updated your code (if needed).

Fixes

- Code has been improved to prepare future compatibility with Django 2.0

0.8.1

**Release date: 2017-10-02**

> **important**
>
> This version is a security fix. Upgrade is highly recommended

Security fix

- Authentication backend is correctly checked when executing method using `system.multicall()`

Page 2 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.