Settings¶
Django-modern-rpc behavior can be customized by defining some values in project’s settings.py
.
Basic configuration¶
MODERNRPC_METHODS_MODULES
¶
Default: []
(Empty list)
Define the list of python modules containing RPC methods. You must set this list with at least one module. At startup, the list is looked up to register all python functions decorated with @rpc_method.
JSON Serialization and deserialization¶
You can configure how JSON-RPC handler will serialize and unserialize data:
MODERNRPC_JSON_DECODER
¶
Default: 'json.decoder.JSONDecoder'
Decoder class used to convert python data to JSON
MODERNRPC_JSON_ENCODER
¶
Default: 'django.core.serializers.json.DjangoJSONEncoder'
Encoder class used to convert JSON to python values. Internally, modernrpc uses the default Django JSON encoder, which improves the builtin python encoder by adding support for additional types (DateTime, UUID, etc.).
XML serialization and deserialization¶
MODERNRPC_XMLRPC_USE_BUILTIN_TYPES
¶
Default: True
Control how builtin types are handled by XML-RPC serializer and deserializer. If set to True (default), dates will be
converted to datetime.datetime
by XML-RPC deserializer. If set to False, dates will be converted to
XML-RPC DateTime instances (or equivalent for Python 2).
This setting will be passed directly to ServerProxy instantiation.
MODERNRPC_XMLRPC_ALLOW_NONE
¶
Default: True
Control how XML-RPC serializer will handle None values. If set to True (default), None values will be converted to
<nil>. If set to False, the serializer will raise a TypeError
when encountering a None value.
MODERNRPC_XMLRPC_DEFAULT_ENCODING
¶
Default: None
Configure the default encoding used by XML-RPC serializer.
MODERNRPC_XML_USE_BUILTIN_TYPES
¶
Default: True
Deprecated. Define MODERNRPC_XMLRPC_USE_BUILTIN_TYPES
instead.
Python 2 String standardization¶
MODERNRPC_PY2_STR_TYPE
¶
Default: None
Define target type for Global String standardization (project level).
MODERNRPC_PY2_STR_ENCODING
¶
Default: UTF-8
Define global encoding used in Global String standardization (project level).
RPC entry points configuration¶
MODERNRPC_HANDLERS
¶
Default: ['modernrpc.handlers.JSONRPCHandler', 'modernrpc.handlers.XMLRPCHandler']
List of handler classes used by default in any RPCEntryPoint
instance. If you defined your custom handler for any
protocol, you can replace the default class used
MODERNRPC_DEFAULT_ENTRYPOINT_NAME
¶
Default: '__default_entry_point__'
Default name used for anonymous RPCEntryPoint
Other available settings¶
MODERNRPC_DOC_FORMAT
¶
Default: ''
(Empty String)
Configure the format of the docstring used to document your RPC methods.
Possible values are: (empty)
, rst
or markdown
.
Note
The corresponding package is not automatically installed. You have to ensure library markdown or docutils is
installed in your environment if you set settings.MODERNRPC_DOC_FORMAT
to a non-empty value