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, BytesEnum, 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.8.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.8.0
File Size Uploaded
msgspex-1.8.0.tar.gz 31.9 kB Details

Built distribution (wheel)

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

Total release size: 78.2 kB

Release files / msgspex-1.8.0.tar.gz

Download URL msgspex-1.8.0.tar.gz
Size 31.9 kB
Tags Source
SHA-256 checksum
How to use checksums
db415bac2226e0264c32f5f2c969a432c9deff748731eecee311a53aefe52635
BLAKE2b-256 checksum
How to use checksums
6b980fc02b2120536b393e5d0494b491709d4084ca35d446b82a5ab7993a3adb
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.8.0-py3-none-any.whl

Download URL msgspex-1.8.0-py3-none-any.whl
Size 46.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
232bb161355da663de20609f54f3a1b0183c79478913ddb47f3885843ebe5639
BLAKE2b-256 checksum
How to use checksums
74029706da1f6316519e30d219b4360fdba925eb6f40ec1020e1c412fe8f1490
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

This release

1.8.0 This release

2 release files

1.7.1

2 release files

1.7.0

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