Skip to main content

An extra msgspec collection of custom types, casters, encode hooks and decode hooks.

Project description

msgspex

A collection of msgspec extensions: custom types, cast helpers, decode hooks, and encode hooks.

Quick Start

import msgspex
from msgspex.custom_types import Email, datetime

value = msgspex.decoder.decode('"user@example.com"', type=Email)
dt = msgspex.decoder.decode('"2024-01-02T03:04:05Z"', type=datetime)
payload = msgspex.encoder.encode(dt)

After import msgspex, all hooks and types are registered automatically.

Custom Types

1. Types from kungfu

  • Option[T] — optional value type based on kungfu (Some | Nothing | msgspec.UnsetType).

There is also decode-hook integration for kungfu.Sum (not a custom type, but supported by the decoder).

2. Types Derived from stdlib

  • date — re-export of datetime.date.
  • datetime — meta-type that covers StringTimestampDatetime, IntTimestampDatetime, FloatTimestampDatetime, ISODatetime (alias: isodatetime), and datetime.datetime.
  • timedelta — subclass of datetime.timedelta with cast support.
  • StrEnum, IntEnum, FloatEnum, BaseEnumMetaenum extensions for stable handling of unknown values.
  • Literal — runtime type conceptually compatible with typing.Literal.

3. OpenAPI-Oriented Types

  • Emailformat: email
  • IDNEmailformat: idn-email
  • URIformat: uri
  • URIReferenceformat: uri-reference
  • IRIformat: iri
  • IRIReferenceformat: iri-reference
  • Hostnameformat: hostname
  • IDNHostnameformat: idn-hostname
  • IPv4format: ipv4
  • IPv6format: ipv6
  • JsonPointerformat: json-pointer
  • RelativeJsonPointerformat: relative-json-pointer
  • Regexformat: regex
  • Int32, Int64 — range-limited integer types
  • Float32, Float64 — finite, range-limited floating-point types

UUID is not redefined here, because it is already supported by msgspec.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

msgspex-1.0.0.tar.gz (24.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

msgspex-1.0.0-py3-none-any.whl (37.4 kB view details)

Uploaded Python 3

File details

Details for the file msgspex-1.0.0.tar.gz.

File metadata

  • Download URL: msgspex-1.0.0.tar.gz
  • Upload date:
  • Size: 24.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for msgspex-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9b84eac4dabcf603785689337fdcb6a13cb94d2723e1a55c062c19ab2d02fcd3
MD5 6829070c77a4b80b927a71875eb3e226
BLAKE2b-256 7f028b7d6c82e58af3067d1512bc1a412e7b8474704c012d201b71a0bdc5dd3e

See more details on using hashes here.

File details

Details for the file msgspex-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: msgspex-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 37.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for msgspex-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bcb16f58b2fe6ddc29ccf490f4ebe4b29242126e14536caa678c8aed3b631226
MD5 d5125da556c7010a53d768cecc8b3c1d
BLAKE2b-256 0d1570ce4fb1cd22b8840034bfe50ad8ab53083ef1a3aa55527629b28e993cd0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page