Skip to main content

msgspex

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

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)

Installing

pip install msgspex
uv add msgspex
poetry add msgspex

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 (alias: stimestamp), IntTimestampDatetime (alias: itimestamp), FloatTimestampDatetime (alias: ftimestamp), ISODatetime (alias: isodatetime), and datetime.datetime.
  • timedelta — subclass of datetime.timedelta with cast support.
  • StrEnum, IntEnum, FloatEnum, Enum and EnumMeta — enum extensions for stable handling of unknown values.
  • Literal — runtime type conceptually compatible with typing.Literal.
  • dataclasses.InitVar — Passing vars to a __post_init__ method.

3. OpenAPI-Oriented Types

  • Email — format: email
  • IDNEmail — format: idn-email
  • URI — format: uri
  • URIReference — format: uri-reference
  • IRI — format: iri
  • IRIReference — format: iri-reference
  • Hostname — format: hostname
  • IDNHostname — format: idn-hostname
  • IPv4 — format: ipv4
  • IPv6 — format: ipv6
  • JsonPointer — format: json-pointer
  • RelativeJsonPointer — format: relative-json-pointer
  • Regex — format: regex
  • Int32, Int64 — range-limited integer types
  • Float32, Float64 — finite, range-limited floating-point types
  • UUID4 — uuid v4

UUID, Decimal, date and time already supported by msgspec.

License

msgspex is MIT licensed

Metadata

Release files for msgspex 1.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for msgspex 1.7.0
File Size Uploaded
msgspex-1.7.0.tar.gz 31.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for msgspex 1.7.0
File Interpreter ABI Platform
msgspex-1.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 77.6 kB

Release files / msgspex-1.7.0.tar.gz

Download URL msgspex-1.7.0.tar.gz
Size 31.6 kB
Tags Source
SHA-256 checksum
How to use checksums
930ec71c4d5ef0cbae2ffbfe1382c7e3657d4d6c0d87f370515a8e23e86a099b
BLAKE2b-256 checksum
How to use checksums
edc7b913a42e1c5d097ed2bf5d0fd44421b6752f0d72a8e7eeb6db0e89142f5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","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}

Release files / msgspex-1.7.0-py3-none-any.whl

Download URL msgspex-1.7.0-py3-none-any.whl
Size 46.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d35a1bd0856f69c6d62a23604514dfd74cbe3e6c96ce1b1988a3d69d34314f20
BLAKE2b-256 checksum
How to use checksums
54d81d1cfe3126ba57ef4a67d6732d0fdb87aa5b980fa55d666f780983f23add
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","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}

Release history Release notifications | RSS feed

1.7.1

2 release files

This release

1.7.0 This release

2 release files

1.6.0

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page