Pydantic Media Type
This package provides a Pydantic type that can be used to validate media types. It uses the media types from the mimetypes module of The Python Standard Library.
Installation
Install using uv:
uv add pydantic-media-type
or using pip:
pip install pydantic-media-type
Example
from pydantic import BaseModel
from pydantic_media_type import MediaType
class Model(BaseModel):
media_type: MediaType
print(Model(media_type=MediaType("image/png")).media_type) # Will print: image/png
Model(media_type=MediaType("invalid")) # Will raise pydantic.ValidationError with code media_type_unsupported
Development
Getting the project up and running can be achieved without much effort using Docker Compose. Doing so ensures that there should be very little difference in environment between all of us devs.
Starting the project
docker compose build
docker compose run --rm pydantic-media-type sh
The last command gives you a shell within the container.
Dependency management
We shouldn't have any other dependencies other than python and pydantic.
However, we do have some dev dependencies like:
- ruff
- mypy
- pytest
We will do our best to keep those up to date. Should you want to upgrade them yourself, please do it from the shell inside the container using:
uv sync --upgrade
Similarly, installing new dependencies is possible using the command:
uv add name-of-the-dependency-to-install
Dev tools
This project uses ruff, mypy and pytest.
The preferred way to run them is by using the container, for example:
docker compose build
docker compose run --rm pydantic-media-type sh
uv run ruff check
uv run mypy .
uv run pytest -v
Release files for pydantic-media-type 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pydantic_media_type-0.1.0.tar.gz | 2.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pydantic_media_type-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 5.1 kB
Release files / pydantic_media_type-0.1.0.tar.gz
| Download URL | pydantic_media_type-0.1.0.tar.gz |
|---|---|
| Size | 2.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8dab17a9d205b5570958fd7f2e4022bd335bd05d9b06914dd4560e79e17c5be0
|
|
BLAKE2b-256 checksum How to use checksums |
23fb09595645ee70dc005ff346cc81c3352bb626f056a7d2806c8d03b8038e47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / pydantic_media_type-0.1.0-py3-none-any.whl
| Download URL | pydantic_media_type-0.1.0-py3-none-any.whl |
|---|---|
| Size | 3.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
921f6db78cc7b41ab2ca1a90932409c22524550453cb325c0883180c07f8fa27
|
|
BLAKE2b-256 checksum How to use checksums |
9f46d0b491cf224504126b684f09d7d8ab332ae1ec8cc8c6741ffddb3e5e137e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|