Extract the format version from a media type string
Project description
media-type-version - extract the format version from a media type string
[Home | GitLab | PyPI | Python API | ReadTheDocs]
Overview
The media-type-version library is designed to be used as the first step in
parsing structured data, e.g. configuration files, serialized classes, etc.
The caller extracts the media type string (e.g. a JSON "mediaType": "..." key) and
passes it in for parsing.
The caller then decides what to do with the extracted version information -
is this version supported, what fields are expected to be there, should any
extraneous fields produce errors, and so on.
The media type string is expected to be in a <prefix>.vX.Y<suffix> format, with
a fixed prefix and suffix.
The prefix will usually be a vendor-specific media type.
The version part consists of two unsigned integer numbers.
The suffix, if used, may correspond to the file format.
A sample media type string identifying a TOML configuration file for
a text-processing program could be
vnd.ringlet.textproc.publync.config/publync.v0.2+toml
The library
The media-type-version library provides a single function, extract(), that
parses a media type string, strips the specified prefix and suffix, and looks for
a .vX.Y version string left.
It then returns the (X, Y) version tuple.
Python example:
mtv_cfg: Final = media_type_version.Config(
log=logging.Logger(...),
prefix="vnd.acme/thing",
suffix="+toml",
)
ver_major, ver_minor = media_type_version.extract(mtv_cfg, "vnd.acme/thing.v3.12+toml")
Rust example:
use media_type_version::{Config as MTVConfig, Error as MTVError, Version as MTVersion};
let cfg = MTVConfig::builder()
.prefix("vnd.acme/thing")
.suffix("+toml")
.build()
.map_err(MTVError::into_owned_error)?;
assert_eq!(
media_type_version::extract(&cfg, "vnd.acme/thing.v3.12+toml").as_tuple(),
(3, 12)
);
The mtv-extract tool
The media-type-version library also provides a command-line tool
called mtv-extract that will read a series of strings from the specified files,
parse them as media-type strings with the specified prefix and suffix, and
output a line consisting of two tab-separated numbers for each parsed string:
$ { echo vnd.acme/thing.v3.47; echo vnd.acme/thing.v42.616; } | mtv-extract -q -p vnd.acme/thing -- -
3 47
42 616
$
The mtv-extract tool supports the following command-line options:
-p prefix(required): the prefix to strip from the media type string-q: quiet operation; only display warnings and error messages-s suffix: the optional suffix to strip from the media type string-v: verbose operation; display diagnostic output
Contact
The media-type-version library was written by Peter Pentchev.
It is developed in a GitLab repository.
This documentation is hosted at Ringlet with a copy at ReadTheDocs.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file media_type_version-0.1.2.tar.gz.
File metadata
- Download URL: media_type_version-0.1.2.tar.gz
- Upload date:
- Size: 54.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3594f31003a3c47db9c04a6fccba295e85b0ff28346827038c76a6aeffa59029
|
|
| MD5 |
2d2bddd21c11860f92939e02c4712b50
|
|
| BLAKE2b-256 |
e790f63cf2acf10c9ea7c2d8307316b220689b4cb1d533872eaefaa519b349a5
|
File details
Details for the file media_type_version-0.1.2-py3-none-any.whl.
File metadata
- Download URL: media_type_version-0.1.2-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1a86b1ecfaa9fd75144e04204cf5417b3c09f0a9245348c3b48efcf5a62d379
|
|
| MD5 |
68858d6200b8624ecc2e199bb67cf0f1
|
|
| BLAKE2b-256 |
200703f1cded97275fd8550f333f4ccd3dc940e88e58c757afa1aec2858ba8a8
|