lib.settings

Settings objects and type-mapping for Django Docutils library package.

django_docutils.lib.settings.SAFE_DOCUTILS_DEFAULTS: Final[dict[str, object]] = {'_disable_config': True, 'file_insertion_enabled': False, 'line_length_limit': 10000, 'raw_enabled': False}
data
data
django_docutils.lib.settings.SAFE_DOCUTILS_DEFAULTS: Final[dict[str, object]] = {'_disable_config': True, 'file_insertion_enabled': False, 'line_length_limit': 10000, 'raw_enabled': False}

Docutils defaults used for web-facing django-docutils rendering.

django_docutils.lib.settings.PROTECTED_DOCUTILS_DEFAULTS: Final[dict[str, object]] = {'_disable_config': True, 'file_insertion_enabled': False, 'raw_enabled': False}
data
data
django_docutils.lib.settings.PROTECTED_DOCUTILS_DEFAULTS: Final[dict[str, object]] = {'_disable_config': True, 'file_insertion_enabled': False, 'raw_enabled': False}

Settings that require explicit unsafe opt-in before applications may override.

django_docutils.lib.settings.DEFAULT_ALLOWED_URI_SCHEMES: Final[frozenset[str]] = frozenset({'http', 'https', 'mailto'})
data
data
django_docutils.lib.settings.DEFAULT_ALLOWED_URI_SCHEMES: Final[frozenset[str]] = frozenset({'http', 'https', 'mailto'})

URI schemes emitted by django-docutils HTML rendering by default.

django_docutils.lib.settings.UNSAFE_URI_SCHEMES: Final[frozenset[str]] = frozenset({'data', 'file', 'javascript', 'vbscript'})
data
data
django_docutils.lib.settings.UNSAFE_URI_SCHEMES: Final[frozenset[str]] = frozenset({'data', 'file', 'javascript', 'vbscript'})

URI schemes that require explicit unsafe opt-in when configured.

django_docutils.lib.settings.DJANGO_DOCUTILS_LIB_RST = {}
data
data
django_docutils.lib.settings.DJANGO_DOCUTILS_LIB_RST = {}

Settings for reStructuredText

django_docutils.lib.settings.unsafe_docutils_settings_allowed()
function[source]
function[source]
django_docutils.lib.settings.unsafe_docutils_settings_allowed()

Return whether project settings may re-enable unsafe Docutils features.

Returns:

True when DJANGO_DOCUTILS_LIB_RST sets allow_unsafe_docutils_settings.

Return type:

bool

Examples

>>> isinstance(unsafe_docutils_settings_allowed(), bool)
True
django_docutils.lib.settings.get_docutils_settings(settings_overrides=None)
function[source]
function[source]
django_docutils.lib.settings.get_docutils_settings(settings_overrides=None)

Return Docutils settings with django-docutils security defaults applied.

Parameters:

settings_overrides (mapping, optional) – Per-call Docutils settings layered over project configuration. Protected settings still win unless the project sets allow_unsafe_docutils_settings.

Returns:

Resolved Docutils settings safe to hand to the publisher.

Return type:

dict

Examples

>>> settings = get_docutils_settings()
>>> settings["file_insertion_enabled"]
False
>>> settings["raw_enabled"]
False
>>> settings["_disable_config"]
True
django_docutils.lib.settings.get_allowed_uri_schemes()
function[source]
function[source]
django_docutils.lib.settings.get_allowed_uri_schemes()

Return normalized URI schemes allowed in rendered HTML attributes.

Returns:

Lowercased scheme names; unsafe schemes are excluded unless the project sets allow_unsafe_docutils_settings.

Return type:

frozenset of str

Examples

>>> "https" in get_allowed_uri_schemes()
True
>>> "javascript" in get_allowed_uri_schemes()
False
django_docutils.lib.settings.reload_settings(signal, sender, setting, value, enter, **kwargs)
function[source]
function[source]
django_docutils.lib.settings.reload_settings(signal, sender, setting, value, enter, **kwargs)

Ran when settings updated.

Examples

>>> before = dict(DJANGO_DOCUTILS_LIB_RST)
>>> reload_settings(None, None, "DJANGO_DOCUTILS_LIB_RST", {"transforms": []}, True)
>>> DJANGO_DOCUTILS_LIB_RST["transforms"]
[]
>>> reload_settings(None, None, "DJANGO_DOCUTILS_LIB_RST", dict(before), False)
>>> dict(DJANGO_DOCUTILS_LIB_RST) == before
True
Parameters:
Return type:

None