betty.media_type module#

Provide media type handling utilities.

exception betty.media_type.InvalidMediaType#

Bases: ValueError

Raised when an identifier is not a valid media type.

final class betty.media_type.MediaType#

Bases: Data

Define a media type.

Media types are also commonly known as content types or MIME types.

__init__(media_type: str, *, extensions: Sequence[str] = ())#
extensions: Sequence[str]#

The file extensions associated with this media type.

Extensions must include a leading dot, and are returned in order of decreasing priority.

parameters: Mapping[str, str]#

The parameters, e.g. {"charset": "UTF-8"} for "text/html; charset=UTF-8".

subtype: Final[str]#

The subtype, e.g. "vnd.oasis.opendocument.text" for "application/vnd.oasis.opendocument.text".

subtypes#

The subtype parts, e.g. ["vnd", "oasis", "opendocument", "text"] for "application/vnd.oasis.opendocument.text".

suffix: Final[str | None]#

The suffix, e.g. json for application/ld+json.

type: Final[str]#

The type, e.g. application for application/ld+json.

final class betty.media_type.MediaTypeDefinition#

Bases: HumanFacingDefinition, OrderedPluginDefinition

The media type plugin type.

Plugin type ID

media-type

Definition

@MediaTypeDefinition(...)

Built-in media types:

__init__(plugin_id: ResolvableMachineName, *, label: ResolvableLocalizable, description: ResolvableLocalizable | None = None, media_type: MediaType, after: Order[MediaTypeDefinition] = (), auto: bool = True, before: Order[MediaTypeDefinition] = ())#
property media_type: MediaType#

The media type.

static type() PluginTypeDefinition[Self]#

The plugin type definition.

exception betty.media_type.MissingMediaType#

Bases: RuntimeError

Raised when a media type is not missing.

__init__()#
exception betty.media_type.UnsupportedMediaType#

Bases: RuntimeError

Raised when a media type is not supported.

__init__(media_type: MediaTypeIndicator, /)#
betty.media_type.match_extension(match: StrPath, supported_media_types: Iterable[MediaType], /) tuple[MediaType, str]#

Match a file extension indicator against available media types.

betty.media_type.match_media_type(match: MediaType, supported_media_types: Iterable[MediaType], /) MediaType#

Match a media type against available media types.

betty.media_type.resolve_media_type(media_type: ResolvableMediaType, /) MediaType#

Resolve a media type.