Changelog¶
Version 1.8.0¶
configmodule:New
EnvExtendedInterpolationclass that extendsconfigparser.ExtendedInterpolationwith special handling for “env” section that returns value of specified environment variable, or empty string if such variable is not defined.
Version 1.7.2¶
Error.getattr()should not mask the absence of__notes__attribute.
Version 1.7.1¶
Log record values
moduleandfilenamewere not assigned properly under Python 3.11,Failed tests due to subtle changes in Python 3.11
Downgrade dependency to
protobuf>=4.23.4
Version 1.7.0¶
Update dependency to protobuf >=4.24.3
Build system changed from setuptools to hatch
Package version is now defined in firebird.base.__about__.py (__version__)
Version 1.6.1¶
configmodule:Fixed bug with
Config.get_config()andplainbool argument.StrOptionnow supports preservation of significant leading whitespace for multiline values (likePyCodeOption).
Version 1.6.0¶
protobufmodule:Registration of already registered protobuf registration is now ignored instead raising exception.
configmodule:Config.get_config()andOption.get_config()now providesplainbool argument to return configuration text without comments. Deafult is False.create_configis now deprecated, will be removed in version 2.0.
tracemodule:Fixed bug in
TraceManager.load_config().
Version 1.5.0¶
Move away from setup.cfg to pyproject.toml, new source tree layout.
Version 1.4.3¶
typesmodule:Added internal functions
_decomposeand_power_of_twofrom stdlibenummodule, because they were removed in Python 3.11.
protobufmodule:Use importlib.metadata.entry_points instead
pkg_resources.iter_entry_points.
Improved documentation.
Version 1.4.2¶
Optimizations.
Cleanup of pylint warnings.
Updated documentation.
Fixed unregistered bugs:
Signature in
firebird.base.config.IntOption.clear.Signature in
firebird.base.trace.TraceManager.add_trace. Keyword argumentdecorator(with default) could not be used with args/kwargs, so it was removed. Newdecoratorattribute was added toTraceManagerthat could be used to change trace decorator used for intrumentation.
Version 1.4.1¶
Version 1.4.0¶
Upgrade to protobuf 4.21.1. As this upgrade has consequences, please read https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
Version 1.3.1¶
buffermodule:Added
MemoryBuffer.write_sized_stringfor symetry withread_sized_string.Now
MemoryBufferstring functions has alsoerrorsparameter in addition toencoding.
configmodule:Direct assignment to
Configoption raises aValueErrorexception with message “Cannot assign values to option itself, useoption.valueinstead”.
Version 1.3.0¶
Version 1.2.0¶
Build scheme changed to
PEP 517.Various changes to documentation and type hint adjustments.
configmodule:BREAKING CHANGE:
ApplicationDirectorySchemewas replaced byDirectorySchemeclass, andget_directory_scheme()has changed signature.Directory scheme was reworked and now also supports concept of HOME directory.
New MacOS directory scheme support. As I don’t have access to MacOS, this support should be considered EXPERIMENTAL. Any feedback about it’s correctness is welcome.
Added: New
Configconstructor keyword-onlyboolargumentoptionaland associatedoptionalread-only property.Added:
Config.has_value()function.New class:
PathOptionfor Configuration options withpathlib.Pathvalue.
protobufmodule:Added: function
get_message_factory.
signalmodule:Fix: Bug in
eventsocketsignature handling.
tracemodule:Added:
apply_to_descendantsboolean configuration option to apply configuration also to all registered descendant classes. The default value isTrue.
Version 1.1.0¶
New module:
signal- Callback system based on Signals and Slots, and “Delphi events”typesmodule:loadfunction now supportsobject_name[.object_name...]specifications instead singleobject_name.
configmodule:New class
ApplicationDirectorySchemeload_config(): raises error when section is missing, better error handling when exception is raised while loading optionsPyCallableOptionsignatureargument could beinspect.Signatureor CallableIntroduced
PROTO_CONFIGconstant with fully qualified name forConfigProtoprotobufOptional argument
to_defaultinclear()is now keyword-only.
loggingmodule:get_logging_id()uses__qualname__instead__name__
protobufmodule:Added direct support for key well-known data types
Empty,Any,Duration,Timestamp,Struct,Value,ListValueandFieldMask. They are automatically registered. New constants ‘PROTO_<type>’ with fully qualified names.create_message()has new optionalserializedargument withbytesthat should be parsed into newly created message instance.New functions
struct2dict()anddict2struct()
tracemodule:TraceFlagvalueDISABLEDwas renamed toNONE.Added support for trace configuration based on
config, using new classesBaseTraceConfig,TracedMethodConfig,TracedClassConfigandTraceConfig.New methods in
TraceManager:load_config()to update trace from configuration.set_flag()andclear_flag().
typesmodule:Changes in documentation.
Version 1.0.0¶
Documentation: new examples for trace - Trace/audit for class instances, logging - Context-based logging and hooks - Hook manager
Documentation: adjustments to css
DataList is now generic class
DataList.extract()has new ‘copy’ argument.
Version 0.6.1¶
Promoted to stable
More documentation
Version 0.6.0¶
New module:
strconv- Data conversion from/to stringNew module:
trace- Trace/audit for class instancesReworked module:
config- Classes for configuration definitionsNew class:
ConfigOption- Configuration option withConfigvalueNew class:
ConfigListOption- Configuration option with list ofConfigvaluesNew class:
DataclassOption- Configuration option with a dataclass value
Changed module:
typesNew class:
MIME- MIME type specificationNew class:
PyExpr- Source code for Python expressionNew class:
PyCode- Python source codeNew class:
PyCallable- Source code for Python callableRemoved function: str2bool
Changed module:
loggingTrace/audit functionality removed (into new module
trace)
Version 0.5.0¶
Initial release.