Changelog¶
Version 1.7.2¶
Error.getattr()
should not mask the absence of__notes__
attribute.
Version 1.7.1¶
Log record values
module
andfilename
were 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¶
config
module:Fixed bug with
Config.get_config()
andplain
bool argument.StrOption
now supports preservation of significant leading whitespace for multiline values (likePyCodeOption
).
Version 1.6.0¶
protobuf
module:Registration of already registered protobuf registration is now ignored instead raising exception.
config
module:Config.get_config()
andOption.get_config()
now providesplain
bool argument to return configuration text without comments. Deafult is False.create_config
is now deprecated, will be removed in version 2.0.
trace
module: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¶
types
module:Added internal functions
_decompose
and_power_of_two
from stdlibenum
module, because they were removed in Python 3.11.
protobuf
module: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. Newdecorator
attribute was added toTraceManager
that 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¶
buffer
module:Added
MemoryBuffer.write_sized_string
for symetry withread_sized_string
.Now
MemoryBuffer
string functions has alsoerrors
parameter in addition toencoding
.
config
module:Direct assignment to
Config
option raises aValueError
exception with message “Cannot assign values to option itself, useoption.value
instead”.
Version 1.3.0¶
Version 1.2.0¶
Build scheme changed to
PEP 517
.Various changes to documentation and type hint adjustments.
config
module:BREAKING CHANGE:
ApplicationDirectoryScheme
was replaced byDirectoryScheme
class, 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
Config
constructor keyword-onlybool
argumentoptional
and associatedoptional
read-only property.Added:
Config.has_value()
function.New class:
PathOption
for Configuration options withpathlib.Path
value.
protobuf
module:Added: function
get_message_factory
.
signal
module:Fix: Bug in
eventsocket
signature handling.
trace
module:Added:
apply_to_descendants
boolean 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”types
module:load
function now supportsobject_name[.object_name...]
specifications instead singleobject_name
.
config
module:New class
ApplicationDirectoryScheme
load_config()
: raises error when section is missing, better error handling when exception is raised while loading optionsPyCallableOption
signature
argument could beinspect.Signature
or CallableIntroduced
PROTO_CONFIG
constant with fully qualified name forConfigProto
protobufOptional argument
to_default
inclear()
is now keyword-only.
logging
module:get_logging_id()
uses__qualname__
instead__name__
protobuf
module:Added direct support for key well-known data types
Empty
,Any
,Duration
,Timestamp
,Struct
,Value
,ListValue
andFieldMask
. They are automatically registered. New constants ‘PROTO_<type>’ with fully qualified names.create_message()
has new optionalserialized
argument withbytes
that should be parsed into newly created message instance.New functions
struct2dict()
anddict2struct()
trace
module:TraceFlag
valueDISABLED
was renamed toNONE
.Added support for trace configuration based on
config
, using new classesBaseTraceConfig
,TracedMethodConfig
,TracedClassConfig
andTraceConfig
.New methods in
TraceManager
:load_config()
to update trace from configuration.set_flag()
andclear_flag()
.
types
module: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 withConfig
valueNew class:
ConfigListOption
- Configuration option with list ofConfig
valuesNew class:
DataclassOption
- Configuration option with a dataclass value
Changed module:
types
New 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:
logging
Trace/audit functionality removed (into new module
trace
)
Version 0.5.0¶
Initial release.