firebird-embedded 3.0.14.3__py3-none-win32.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
1
+ # SPDX-FileCopyrightText: 2026-present IBPhoenix <www.ibphoenix.com>
2
+ #
3
+ # SPDX-License-Identifier: MIT
4
+ __version__ = "3.0.14.3"
@@ -0,0 +1,3 @@
1
+ # SPDX-FileCopyrightText: 2026-present IBPhoenix <www.ibphoenix.com>
2
+ #
3
+ # SPDX-License-Identifier: MIT
@@ -0,0 +1,86 @@
1
+ # SPDX-FileCopyrightText: 2026-present IBPhoenix <www.ibphoenix.com>
2
+ #
3
+ # SPDX-License-Identifier: MIT
4
+
5
+ from __future__ import annotations
6
+
7
+ import sys
8
+ from importlib.metadata import version as distribution_version
9
+ from pathlib import Path
10
+
11
+
12
+ class FirebirdProvider:
13
+ """Provider for the Firebird runtime bundled with firebird-embedded."""
14
+
15
+ DISTRIBUTION_NAME = "firebird-embedded"
16
+
17
+ @property
18
+ def name(self) -> str:
19
+ """Provider identifier."""
20
+ return "firebird"
21
+
22
+ @property
23
+ def package_version(self) -> str:
24
+ """Version of the firebird-embedded distribution."""
25
+ return distribution_version(self.DISTRIBUTION_NAME)
26
+
27
+ @property
28
+ def firebird_version(self) -> str:
29
+ """Firebird version supplied by this provider.
30
+
31
+ The first three components of the package version correspond to
32
+ the Firebird version. For example::
33
+
34
+ 5.0.4.0 -> 5.0.4
35
+ 5.0.4.1 -> 5.0.4
36
+ """
37
+ parts = self.package_version.split(".")
38
+ return ".".join(parts[:3])
39
+
40
+ @property
41
+ def root(self) -> Path:
42
+ """Root directory of the bundled Firebird runtime."""
43
+ return Path(__file__).resolve().parent / "runtime"
44
+
45
+ @property
46
+ def client_library(self) -> Path:
47
+ """Path to the Firebird client library."""
48
+ if sys.platform == "win32":
49
+ path = self.root / "fbclient.dll"
50
+ elif sys.platform.startswith("linux"):
51
+ path = self.root / "libfbclient.so.2"
52
+ else:
53
+ raise RuntimeError(
54
+ f"Unsupported platform: {sys.platform}"
55
+ )
56
+
57
+ if not path.is_file():
58
+ raise RuntimeError(
59
+ f"Firebird client library not found: {path}"
60
+ )
61
+
62
+ return path
63
+
64
+ @property
65
+ def firebird_log(self) -> Path:
66
+ """Path to the bundled Firebird log."""
67
+ path = self.root / "firebird.log"
68
+ if not path.is_file():
69
+ raise RuntimeError(f"Firebird log not found: {path}")
70
+ return path
71
+
72
+ @property
73
+ def capabilities(self) -> frozenset[str]:
74
+ """Capabilities provided by this runtime."""
75
+ return frozenset({
76
+ "client",
77
+ "embedded",
78
+ })
79
+
80
+ def __repr__(self) -> str:
81
+ return (
82
+ f"{type(self).__name__}("
83
+ f"name={self.name!r}, "
84
+ f"package_version={self.package_version!r}, "
85
+ f"firebird_version={self.firebird_version!r})"
86
+ )
Binary file
Binary file