Registry / database / firebird-base

firebird-base

JSON →
library2.0.3pypypi✓ verified 87d ago

Firebird-base provides foundational modules for working with Firebird databases in Python, offering utilities for logging, configuration, buffering, event handling, and protobuf integration. It is actively maintained with regular patch and minor releases, typically quarterly, and had a major version bump to 2.0.0 in late 2023, raising the minimum Python version to 3.11. The current version is 2.0.2.

pip install firebird-base
INSTALL
IMPORT
SIG · FIREBIRD-BASE
F
firebird-base
databasepythonv2.0.3
Install
1.9s avg
Import
25ms
Disk
18MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v1.8.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.920 runs
installs and imports cleanly · install 0.0s · import 0.018s · 20MB
glibc
py 3.103.920 runs
installs and imports cleanly · install 1.9s · import 0.032s · 21MB
18MB installed
● package 18MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

MemoryBuffer
from firebird.base.buffer import MemoryBuffer
get_logger
from firebird.base.logging import get_logger
from firebird.base.logging import Logger
The firebird.base.logging module was completely reworked in v2.0.0. Use get_logger() instead of directly importing Logger or LogManager for basic logging.
Config
from firebird.base.config import Config

Demonstrates basic usage of MemoryBuffer, a core utility for managing binary data, including the `get_raw` method introduced in v2.0.0.

from firebird.base.buffer import MemoryBuffer import io # Create a MemoryBuffer with an initial capacity of 1KB buffer = MemoryBuffer(1024) # Write some bytes to the buffer test_data = b"This is a test string to be written into the buffer." buffer.write(test_data) # Move the cursor to the beginning to read buffer.seek(0, io.SEEK_SET) # Read all data from the buffer read_data = buffer.read() # Get the raw underlying buffer content (new in v2.0.0) raw_content = buffer.get_raw() print(f"Original data: {test_data}") print(f"Read data: {read_data}") print(f"Raw buffer content (up to written length): {raw_content[:len(test_data)]}") # Verify data assert read_data == test_data assert raw_content[:len(test_data)] == test_data print("Buffer operations successful!")
Debug
Known issues
breakingVersion 2.0.0 and above require Python 3.11 or newer. Running on older Python versions will result in installation failures or runtime errors.
fix
Upgrade your Python environment to 3.11 or later, or pin `firebird-base` to a version `<2.0.0` (e.g., `firebird-base<2.0.0`).
affects: >=2.0.0
breakingThe `firebird.base.logging` module was completely reworked in v2.0.0. Existing code that directly imports `Logger` or `LogManager` classes, or relies on previous configuration methods, will break.
fix
Update your logging implementation to use the new API, primarily `firebird.base.logging.get_logger()` and its associated configuration methods.
affects: >=2.0.0
gotchaInternal `_decompose` logic in `firebird.base.types` was adjusted in v1.4.3 and fixed again in v2.0.1 due to changes in Python 3.11's `enum` module. Using older versions of `firebird-base` (e.g., <1.4.3 or between 1.4.3 and 2.0.1) on Python 3.11 might lead to incorrect behavior with certain enum-like types.
fix
Ensure you are running `firebird-base` v2.0.1 or newer, especially when using Python 3.11+.
affects: <2.0.1
gotchaThe `firebird.base.config` module's `EnvExtendedInterpolation` extends `configparser.ExtendedInterpolation` to automatically resolve 'env' section variables from environment variables. This might cause unexpected configuration values if environment variables with matching names exist but are not intended to be used.
fix
Review configuration files to ensure explicit handling of 'env' sections or rename environment variables if conflicts arise. Be aware of this feature when designing configuration.
affects: >=1.8.0
Errors
Common errors & fixes
TypeError: __signature__ must be an instance of inspect.Signature
An issue with signature matching in the `eventsocket` module was present in earlier versions.
fix
Upgrade `firebird-base` to version 2.0.1 or newer to resolve the signature mismatch.
AttributeError: 'MemoryBuffer' object has no attribute 'get_raw'
The `get_raw` method was added to `MemoryBuffer` (and related buffer factories) in version 2.0.0.
fix
Upgrade `firebird-base` to version 2.0.0 or newer to use the `get_raw` method.
ModuleNotFoundError: No module named 'firebird.base.logging.config'
The `firebird.base.logging` module was entirely rewritten in v2.0.0, changing its internal structure and API, including the removal of previous configuration modules.
fix
Adapt your logging code to the new API introduced in `firebird-base` v2.0.0. For basic usage, refer to `firebird.base.logging.get_logger()`.
distutils.errors.DistutilsPlatformError: Python 3.10.x is not supported by Firebird Base Modules 2.0.0 and above.
Attempting to install or run `firebird-base` v2.0.0+ on a Python version older than 3.11.
fix
Upgrade your Python environment to 3.11 or newer, or specify an older compatible version of `firebird-base` (e.g., `pip install 'firebird-base<2.0.0'`).
Upgrade
Version history
2.0.3latest on PyPI · released Apr 17, 2026
Audit
Dependencies
protobufrequiredUsed for configuration and data serialization, explicitly required by the library.
Agent activity
4 hits · last 30 days
node
4
Resources
firebird-base — pip install firebird-base · libregistry