eptm_dashboard/.venv/lib/python3.12/site-packages/pypdfium2_raw/version.py

91 lines
2.5 KiB
Python

# SPDX-FileCopyrightText: 2026 geisserml <geisserml@gmail.com>
# SPDX-License-Identifier: Apache-2.0 OR BSD-3-Clause
# TODO(future) add bindings info (e.g. ctypesgen version, reference/generated, runtime libpaths)
__all__ = ("PDFIUM_INFO", )
import json
from pathlib import Path
class _version_class:
def __init__(self):
with open(self._FILE, "r") as buf:
data = json.load(buf)
for k, v in data.items():
setattr(self, k, v)
self.api_tag = tuple(data[k] for k in self._TAG_FIELDS)
self._hook()
self.version = self.tag + self.desc
def __repr__(self):
return self.version
def _craft_tag(self):
return ".".join(str(v) for v in self.api_tag)
def _craft_desc(self, *suffixes):
local_ver = []
if self.n_commits > 0:
local_ver += [str(self.n_commits), str(self.hash)]
local_ver += suffixes
desc = ""
if local_ver:
desc += "+" + ".".join(local_ver)
return desc
class _version_pdfium (_version_class):
_FILE = Path(__file__).parent / "version.json"
_TAG_FIELDS = ("major", "minor", "build", "patch")
def _hook(self):
self.flags = tuple(self.flags)
self.tag = self._craft_tag()
self.desc = self._craft_desc()
if self.flags:
self.desc += f":{','.join(self.flags)}"
if self.origin != "pdfium-binaries":
self.desc += f"@{self.origin}"
PDFIUM_INFO = _version_pdfium()
"""
PDFium version.
It is suggesed to compare against *build* (see below).
Parameters:
version (str):
Joined tag and desc, forming the full version.
tag (str):
Version ciphers joined as string.
desc (str):
Descriptors (origin, flags) as string.
api_tag (tuple[int]):
Version ciphers grouped as tuple.
major (int):
Chromium major cipher.
minor (int):
Chromium minor cipher.
build (int):
Chromium/pdfium build cipher.
This value uniquely identifies the pdfium version.
patch (int):
Chromium patch cipher.
n_commits (int):
Number of commits after tag at install time. 0 for tagged build commit.
hash (str | None):
Hash of head commit (prefixed with 'g') if n_commits > 0, None otherwise.
origin (str):
The pdfium binary's origin.
flags (tuple[str]):
Tuple of pdfium feature flags. Empty for default build. (V8, XFA) for pdfium-binaries V8 build.
"""