Django-modern-rpc

Latest version: v1.0.3

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

Scan your dependencies

Page 1 of 5

1.0.2

**Release date: 2023-11-27**

Fixes

- When request is received with an invalid Content-Type (or missing one), the error response is now returned with a
"text/plain" Content-Type header.

Misc

- Dropped support of python 3.5 and 3.6
- Added support for python 3.12 and Django 4.2

1.0.1

**Release date: 2023-01-26**

Fixes

- Fixed invalid argument used to initialized default handlers instances (52). Thanks to washeck

1.0.0

**Release date: 2023-01-03**

After months of work, the 1.0 milestone is a major refactoring of the library. Many parts of the project have been
modernized to improve readability and robustness, and a few issues were fixed.

Improvements
- Type hinting is now supported in RPC methods. Auto-generated documentation will use it when it is defined.
Old-style "doctypes" are still supported.
- Dependency to `six` have been completely removed

Breaking Changes
- When an authentication error is raised, the returned status code is now 200 instead of 403 for consistency with
batch and system.multicall requests (35)
- Django < 2.1 and Python < 3.5 support have been dropped.

Other API changes
- A new `modernrpc.core.Protocol` enum has been introduced to enforce correct protocol value when needed. (29, 30).
This new class replaces `modernrpc.core.JSONRPC_PROTOCOL` and `modernrpc.core.XMLRPC_PROTOCOL` but aliases were
created for backward compatibility.
- `RPCUnknownMethod` exception has been renamed to `RPCMethodNotFound`. An alias has been created
for backward compatibility

Fixes
- Initialization process updated: exceptions are now raised on startup for invalid RPC modules. In addition, Django
check system is used to notify common errors. This was requested multiple times (2, 13, 34).
- JSON-RPC notification behavior has been fixed to respect standard. Requests without `id` are handled as
notifications but requests with null `id` are considered invalid and will return an error
- Batch request behavior has been fixed when one or more results failed to be serialized
- Builtin `system.methodSignature` behavior have been updated to respect standard. It now returns a list of
list and unknown types are returned as "undef" (see http://xmlrpc-c.sourceforge.net/introspection.html)

Misc
- Added support for Python 3.9, 3.10 and 3.11
- Added support for Django 3.2, 4.0 and 4.1
- Documentation tree was completely reworked for clarity and simplicity. A new theme (Book) is now used to improve
readability. See <https://django-modern-rpc.rtfd.io>.
- Poetry is now used to configure project dependencies and build distributions. The new `pyproject.toml` file
replaces `setup.py`, `setup.cfg`, `MANIFEST.in` and `requirements.txt` to centralize all dependencies,
external tools settings (pytest, flake8, etc.) and packaging configuration
- Black is now used to automatically format code
- Mypy is now used to verify type hints consistency
- Tox configuration now includes pylama, mypy, pylint and black environments
- All tests have been rewritten to have a strong separation between unit and functional tests. Test classes where
created to group tests by similarities. Many fixtures have been added, with more parameterization, resulting in
about 350 tests executed covering more than 95% of the code.

0.12.1

**Release date: 2020-06-11**

Fixes

- Fix `ImportError` with Django 3.1

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.

Page 1 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.