• Get Review Board
  • What's New
  • Products
  • Review Board Code review, image review, and document review
  • Documentation
  • Release Notes
  • Power Pack Enterprise integrations, reports, and enhanced document review
  • Try for 60 Days
  • Purchase
  • RBCommons Review Board as a Service, hosted by us
  • Pricing
  • RBTools Command line tools and Python API for Review Board
  • Documentation
  • Release Notes
  • Review Bot Automated code review, connecting tools you already use
  • Documentation
  • Release Notes
  • RB Gateway Manage Git and Mercurial repositories in your network
  • Documentation
  • Release Notes
  • Learn and Explore
  • What is Code Review?
  • Documentation
  • Frequently Asked Questions
  • Support Options
  • Third-Party Integrations
  • Demo
  • Review Board RBTools Power Pack Review Bot Djblets RB Gateway
    1. Djblets dev
    2. Version 5.x
    3. Version 4.x
    4. Version 3.x
    5. Version 2.x
    6. Version 2.0
    7. Version 1.0
    8. Version 0.9
    9. Djblets Documentation
    10. Module and Class References
    11. djblets.util.typing
  • Home
  • Guides
  • Avatar Services Guides
  • Writing Avatar Services
  • Extension Guides
  • Writing Extensions
  • Testing Extensions
  • Feature Checks Guides
  • Introduction to Feature Checks
  • Writing Features
  • Writing Feature Checkers
  • Testing with Feature Checks
  • Integration Guides
  • Supporting Integrations
  • Writing Integrations
  • Privacy Compliance Guides
  • Getting and Checking Consent
  • Working with Personally Identifiable Information
  • Service Integrations
  • reCAPTCHA Guides
  • Using reCAPTCHA
  • Registries Guides
  • Writing Registries
  • Web API Guides
  • Writing Web API Resources
  • Adding OAuth2 Support
  • Module and Class References
  • djblets
  • djblets.deprecation
  • djblets.auth.forms
  • djblets.auth.ratelimit
  • djblets.auth.signals
  • djblets.auth.util
  • djblets.auth.views
  • djblets.avatars.errors
  • djblets.avatars.forms
  • djblets.avatars.registry
  • djblets.avatars.services
  • djblets.avatars.services.base
  • djblets.avatars.services.fallback
  • djblets.avatars.services.file_upload
  • djblets.avatars.services.gravatar
  • djblets.avatars.services.url
  • djblets.avatars.settings
  • djblets.cache.backend
  • djblets.cache.backend_compat
  • djblets.cache.context_processors
  • djblets.cache.errors
  • djblets.cache.forwarding_backend
  • djblets.cache.serials
  • djblets.cache.synchronizer
  • djblets.conditions
  • djblets.conditions.choices
  • djblets.conditions.conditions
  • djblets.conditions.errors
  • djblets.conditions.operators
  • djblets.conditions.values
  • djblets.configforms.forms
  • djblets.configforms.mixins
  • djblets.configforms.pages
  • djblets.configforms.registry
  • djblets.configforms.views
  • djblets.datagrid.grids
  • djblets.db.backends.mysql.base
  • djblets.db.fields
  • djblets.db.fields.base64_field
  • djblets.db.fields.comma_separated_values_field
  • djblets.db.fields.counter_field
  • djblets.db.fields.json_field
  • djblets.db.fields.modification_timestamp_field
  • djblets.db.fields.relation_counter_field
  • djblets.db.managers
  • djblets.db.query
  • djblets.db.query_catcher
  • djblets.db.query_comparator
  • djblets.db.validators
  • djblets.extensions.admin
  • djblets.extensions.errors
  • djblets.extensions.extension
  • djblets.extensions.forms
  • djblets.extensions.hooks
  • djblets.extensions.loaders
  • djblets.extensions.manager
  • djblets.extensions.middleware
  • djblets.extensions.models
  • djblets.extensions.packaging
  • djblets.extensions.resources
  • djblets.extensions.settings
  • djblets.extensions.signals
  • djblets.extensions.staticfiles
  • djblets.extensions.testing
  • djblets.extensions.testing.testcases
  • djblets.extensions.urls
  • djblets.extensions.views
  • djblets.extensions.templatetags.djblets_extensions
  • djblets.features
  • djblets.features.checkers
  • djblets.features.decorators
  • djblets.features.errors
  • djblets.features.feature
  • djblets.features.level
  • djblets.features.registry
  • djblets.features.testing
  • djblets.features.templatetags.features
  • djblets.forms.fields
  • djblets.forms.fieldsets
  • djblets.forms.forms
  • djblets.forms.forms.key_value_form
  • djblets.forms.widgets
  • djblets.gravatars
  • djblets.gravatars.templatetags.gravatars
  • djblets.http.middleware
  • djblets.http.responses
  • djblets.integrations.errors
  • djblets.integrations.forms
  • djblets.integrations.hooks
  • djblets.integrations.integration
  • djblets.integrations.manager
  • djblets.integrations.mixins
  • djblets.integrations.models
  • djblets.integrations.urls
  • djblets.integrations.views
  • djblets.log
  • djblets.log.middleware
  • djblets.log.siteconfig
  • djblets.log.urls
  • djblets.log.views
  • djblets.mail.dmarc
  • djblets.mail.message
  • djblets.mail.testing
  • djblets.mail.utils
  • djblets.markdown
  • djblets.markdown.extensions.escape_html
  • djblets.markdown.extensions.wysiwyg
  • djblets.markdown.extensions.wysiwyg_email
  • djblets.pipeline.compilers.es6
  • djblets.pipeline.compilers.less
  • djblets.pipeline.compilers.mixins
  • djblets.pipeline.compilers.rollup
  • djblets.pipeline.compilers.typescript
  • djblets.pipeline.settings
  • djblets.privacy.consent
  • djblets.privacy.consent.base
  • djblets.privacy.consent.common
  • djblets.privacy.consent.errors
  • djblets.privacy.consent.forms
  • djblets.privacy.consent.hooks
  • djblets.privacy.consent.registry
  • djblets.privacy.consent.tracker
  • djblets.privacy.models
  • djblets.privacy.pii
  • djblets.privacy.templatetags.djblets_privacy
  • djblets.recaptcha.mixins
  • djblets.recaptcha.siteconfig
  • djblets.recaptcha.templatetags.djblets_recaptcha
  • djblets.recaptcha.widgets
  • djblets.registries
  • djblets.registries.errors
  • djblets.registries.importer
  • djblets.registries.mixins
  • djblets.registries.registry
  • djblets.registries.signals
  • djblets.secrets
  • djblets.secrets.crypto
  • djblets.secrets.token_generators
  • djblets.secrets.token_generators.base
  • djblets.secrets.token_generators.legacy_sha1
  • djblets.secrets.token_generators.registry
  • djblets.secrets.token_generators.vendor_checksum
  • djblets.siteconfig
  • djblets.siteconfig.admin
  • djblets.siteconfig.context_processors
  • djblets.siteconfig.django_settings
  • djblets.siteconfig.forms
  • djblets.siteconfig.managers
  • djblets.siteconfig.middleware
  • djblets.siteconfig.models
  • djblets.siteconfig.signals
  • djblets.siteconfig.views
  • djblets.template.caches
  • djblets.template.context
  • djblets.template.loaders.conditional_cached
  • djblets.template.loaders.namespaced_app_dirs
  • djblets.testing.decorators
  • djblets.testing.testcases
  • djblets.testing.testrunners
  • djblets.urls.context_processors
  • djblets.urls.decorators
  • djblets.urls.patterns
  • djblets.urls.resolvers
  • djblets.urls.root
  • djblets.urls.staticfiles
  • djblets.util.compat.django.core.cache
  • djblets.util.compat.python.past
  • djblets.util.contextmanagers
  • djblets.util.dates
  • djblets.util.decorators
  • djblets.util.filesystem
  • djblets.util.functional
  • djblets.util.html
  • djblets.util.http
  • djblets.util.humanize
  • djblets.util.json_utils
  • djblets.util.properties
  • djblets.util.serializers
  • djblets.util.symbols
  • djblets.util.templatetags.djblets_deco
  • djblets.util.templatetags.djblets_email
  • djblets.util.templatetags.djblets_forms
  • djblets.util.templatetags.djblets_images
  • djblets.util.templatetags.djblets_js
  • djblets.util.templatetags.djblets_utils
  • djblets.util.typing
  • djblets.util.views
  • djblets.views.generic.base
  • djblets.views.generic.etag
  • djblets.webapi.auth
  • djblets.webapi.auth.backends
  • djblets.webapi.auth.backends.api_tokens
  • djblets.webapi.auth.backends.base
  • djblets.webapi.auth.backends.basic
  • djblets.webapi.auth.backends.oauth2_tokens
  • djblets.webapi.auth.views
  • djblets.webapi.decorators
  • djblets.webapi.encoders
  • djblets.webapi.errors
  • djblets.webapi.fields
  • djblets.webapi.managers
  • djblets.webapi.models
  • djblets.webapi.oauth2_scopes
  • djblets.webapi.resources
  • djblets.webapi.resources.base
  • djblets.webapi.resources.group
  • djblets.webapi.resources.registry
  • djblets.webapi.resources.root
  • djblets.webapi.resources.user
  • djblets.webapi.resources.mixins.api_tokens
  • djblets.webapi.resources.mixins.forms
  • djblets.webapi.resources.mixins.oauth2_tokens
  • djblets.webapi.resources.mixins.queries
  • djblets.webapi.responses
  • djblets.webapi.signals
  • djblets.webapi.testing
  • djblets.webapi.testing.decorators
  • djblets.webapi.testing.testcases
  • General Index
  • Python Module Index
  • Release Notes
  • This documentation covers the in-development release of Djblets. You can see the stable Djblets documentation or all previous versions.

    djblets.util.typing¶

    Common type definitions used for Djblets and consuming projects.

    New in version 3.3.

    class ToJsonProtocol(*args, **kwargs)[source]¶

    Bases: Protocol

    Protocol for a class containing a to_json function.

    This enables supporting classes that can serialize themselves via a to_json() method in SerializableJSONValue.

    New in version 4.0.

    to_json() → djblets.util.typing.SerializableJSONValue[source]¶

    Return a JSON-serializable value for the object.

    Returns:

    The JSON-serializable value.

    Return type:

    SerializableJSONValue

    __abstractmethods__ = frozenset({})¶
    __annotations__ = {}¶
    __callable_proto_members_only__ = True¶
    __init__(*args, **kwargs)¶
    __parameters__ = ()¶
    __protocol_attrs__ = {'to_json'}¶
    classmethod __subclasshook__(other)¶

    Abstract classes can override this to customize issubclass().

    This is invoked early on by abc.ABCMeta.__subclasscheck__(). It should return True, False or NotImplemented. If it returns NotImplemented, the normal algorithm is used. Otherwise, it overrides the normal algorithm (and the outcome is cached).

    KwargsDict¶

    A type indicating a dictionary used for keyword arguments.

    New in version 3.3.

    alias of Dict[str, Any]

    StrOrPromise¶

    A type indicating a Unicode string or lazily-localized string.

    New in version 3.3.

    alias of Union[str, StrPromise]

    StrPromise¶

    A type indicating a lazily-localized string.

    New in version 3.3.

    alias of Promise

    JSONValue¶

    A type indicating a valid value in JSON data.

    All values are natively-supported JSON data. To support Python objects that can be serialized to JSON, see SerializableJSONValue.

    New in version 3.3.

    alias of Union[JSONDict, JSONDictImmutable, JSONList, JSONListImmutable, None, bool, float, int, str]

    JSONDict¶

    A type for a dictionary mapping strings to JSON vlaues.

    All values are natively-supported JSON data. To support Python objects that can be serialized to JSON, see SerializableJSONDict.

    New in version 3.3.

    alias of Dict[str, Union[JSONDict, JSONDictImmutable, JSONList, JSONListImmutable, None, bool, float, int, str]]

    JSONDictImmutable¶

    An immutable type mapping strings to JSON vlaues.

    This is an immutable version of JSONDict, which cannot be modified once set. It can help with type narrowing and is recommended when returning data from a function that should not be changed.

    All values are natively-supported JSON data. To support Python objects that can be serialized to JSON, see SerializableJSONDictImmutable.

    New in version 3.4.

    alias of Mapping[str, Union[JSONDict, JSONDictImmutable, JSONList, JSONListImmutable, None, bool, float, int, str]]

    JSONList¶

    A type for a list of JSON values.

    All values are natively-supported JSON data. To support Python objects that can be serialized to JSON, see SerializableJSONList.

    New in version 3.3.

    alias of List[Union[JSONDict, JSONDictImmutable, JSONList, JSONListImmutable, None, bool, float, int, str]]

    JSONListImmutable¶

    An immutable type of a list of JSON values.

    This is an immutable version of JSONList, which cannot be modified once set. It can help with type narrowing and is recommended when returning data from a function that should not be changed.

    All values are natively-supported JSON data. To support Python objects that can be serialized to JSON, see SerializableJSONListImmutable.

    New in version 3.4.

    alias of Sequence[Union[JSONDict, JSONDictImmutable, JSONList, JSONListImmutable, None, bool, float, int, str]]

    SerializableJSONValue¶

    A type indicating a valid value that can be serialized to JSON.

    These values are all supported in DjbletsJSONEncoder.

    New in version 4.0.

    alias of Union[SerializableJSONDict, SerializableJSONDictImmutable, SerializableJSONList, SerializableJSONListImmutable, Decimal, JSONDict, JSONDictImmutable, JSONList, JSONListImmutable, None, bool, float, int, str, StrPromise, ToJsonProtocol, UUID, date, datetime, time, timedelta]

    SerializableJSONDict¶

    A type for a dictionary mapping strings to JSON-serializable values.

    These values are all supported in DjbletsJSONEncoder.

    New in version 4.0.

    alias of Dict[str, Union[SerializableJSONDict, SerializableJSONDictImmutable, SerializableJSONList, SerializableJSONListImmutable, Decimal, JSONDict, JSONDictImmutable, JSONList, JSONListImmutable, None, bool, float, int, str, StrPromise, ToJsonProtocol, UUID, date, datetime, time, timedelta]]

    SerializableJSONDictImmutable¶

    An immutable type mapping strings to JSON-serializable values.

    This is an immutable version of SerializableJSONDict, which cannot be modified once set. It can help with type narrowing and is recommended when returning data from a function that should not be changed.

    These values are all supported in DjbletsJSONEncoder.

    New in version 4.0.

    alias of Mapping[str, Union[SerializableJSONDict, SerializableJSONDictImmutable, SerializableJSONList, SerializableJSONListImmutable, Decimal, JSONDict, JSONDictImmutable, JSONList, JSONListImmutable, None, bool, float, int, str, StrPromise, ToJsonProtocol, UUID, date, datetime, time, timedelta]]

    SerializableJSONList¶

    A type for a list of JSON-serializable values.

    These values are all supported in DjbletsJSONEncoder.

    New in version 4.0.

    alias of List[Union[SerializableJSONDict, SerializableJSONDictImmutable, SerializableJSONList, SerializableJSONListImmutable, Decimal, JSONDict, JSONDictImmutable, JSONList, JSONListImmutable, None, bool, float, int, str, StrPromise, ToJsonProtocol, UUID, date, datetime, time, timedelta]]

    SerializableJSONListImmutable¶

    An immutable type of a list of JSON-serializable values.

    This is an immutable version of SerializableJSONList, which cannot be modified once set. It can help with type narrowing and is recommended when returning data from a function that should not be changed.

    These values are all supported in DjbletsJSONEncoder.

    New in version 4.0.

    alias of Sequence[Union[SerializableJSONDict, SerializableJSONDictImmutable, SerializableJSONList, SerializableJSONListImmutable, Decimal, JSONDict, JSONDictImmutable, JSONList, JSONListImmutable, None, bool, float, int, str, StrPromise, ToJsonProtocol, UUID, date, datetime, time, timedelta]]

    Keep up with the latest Review Board releases, security updates, and helpful information.

    About
    News
    Demo
    RBCommons Hosting
    Integrations
    Happy Users
    Support Options
    Documentation
    FAQ
    User Manual
    RBTools
    Administration Guide
    Power Pack
    Release Notes
    Downloads
    Review Board
    RBTools
    Djblets
    Power Pack
    Package Store
    PGP Signatures
    Contributing
    Bug Tracker
    Submit Patches
    Development Setup
    Wiki
    Follow Us
    Mailing Lists
    Reddit
    Twitter
    Mastodon
    Facebook
    YouTube

    Copyright © 2006-2025 Beanbag, Inc. All rights reserved.

    Terms of Service — Privacy Policy — AI Ethics Policy — Branding

    On this page

    • [Top]
    • ToJsonProtocol
      • ToJsonProtocol.to_json()
      • ToJsonProtocol.__abstractmethods__
      • ToJsonProtocol.__annotations__
      • ToJsonProtocol.__callable_proto_members_only__
      • ToJsonProtocol.__init__()
      • ToJsonProtocol.__parameters__
      • ToJsonProtocol.__protocol_attrs__
      • ToJsonProtocol.__subclasshook__()
    • KwargsDict
    • StrOrPromise
    • StrPromise
    • JSONValue
    • JSONDict
    • JSONDictImmutable
    • JSONList
    • JSONListImmutable
    • SerializableJSONValue
    • SerializableJSONDict
    • SerializableJSONDictImmutable
    • SerializableJSONList
    • SerializableJSONListImmutable