microversion-parse
raw JSON → 2.1.0 verified Fri May 01 auth: no python
Library for parsing OpenStack microversion headers from HTTP requests. Version 2.1.0, supports Python >=3.10. Actively maintained, part of the OpenStack project. Release cadence follows OpenStack cycles.
pip install microversion-parse Common errors
error ImportError: cannot import name 'parse_version' from 'microversion-parse' ↓
cause Using incorrect import path with hyphen instead of underscore.
fix
Use 'from microversion_parse import parse_version' (underscores).
error microversion_parse.exc.MicroversionHeaderError: Invalid microversion header: 'compute 2' ↓
cause Version string missing minor version (e.g., '2' instead of '2.0').
fix
Use '<service-type> <major>.<minor>' format, e.g., 'compute 2.0'.
Warnings
breaking In version 2.0.0, the package was renamed from 'microversion_parse' (underscore) to 'microversion-parse' (hyphen). The import path remains 'microversion_parse' (underscore). ↓
fix Update from pip package 'microversion_parse' to 'microversion-parse'. Import path unchanged.
gotcha The library expects the version header to be in the format '<service-type> <major>.<minor>'. Missing space or wrong format raises an exception. ↓
fix Ensure header format is correct, e.g., 'compute 2.1'.
gotcha The function 'parse_version' requires a WebOb request object. Passing a plain dict or other request object will raise an error. ↓
fix If not using WebOb, use 'parse_version_string' directly.
deprecated The function 'get_major_version' was deprecated in 2.0.0 and removed in 2.1.0. ↓
fix Use 'parse_version_string' and access the major component.
Imports
- parse_version wrong
from microversion_parse import Versioncorrectfrom microversion_parse import parse_version - parse_version_string wrong
from microversion_parse import parse_version_stringscorrectfrom microversion_parse import parse_version_string
Quickstart
from microversion_parse import parse_version, parse_version_string
from webob import Request
# Example with a WebOb request
req = Request.blank('/', headers={'OpenStack-API-Version': 'compute 2.1'})
version = parse_version(req, 'compute')
print(version) # ('compute', 2, 1)
# Parse a version string directly
ver = parse_version_string('compute 2.1')
print(ver) # ('compute', 2, 1)