Changelog

Version 2.0.3

  • Fix: Problem with entry_points in protobuf module under Python 3.14

Version 2.0.2

  • Fix: “quick fingers” issue with _decompose fix.

Version 2.0.1

  • Fix: for trace configuration.

  • Fix: issues with _decompose.

  • Fix: Signature match in eventsocket.

Version 2.0.0

Version 1.8.0

Version 1.7.2

  • Error.getattr() should not mask the absence of __notes__ attribute.

Version 1.7.1

  • Log record values module and filename 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

Version 1.6.0

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 stdlib enum module, because they were removed in Python 3.11.

  • protobuf module:

  • Improved documentation.

Version 1.4.2

Version 1.4.1

  • Fix: uregistered bug in trace.TraceConfig - redundant flags definition.

  • New: Documentation is now also provided as Dash / Zeal docset, downloadable from releases at github.

Version 1.4.0

Version 1.3.1

Version 1.3.0

  • config module:

    • Layout produced by get_config() was changed.

    • Config has new constructor keyword-only argument description.

    • Fix: uregistered bug in config.ListOption - value and default was the same instance

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 by DirectoryScheme class, and get_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-only bool argument optional and associated optional read-only property.

    • Added: Config.has_value() function.

    • New class: PathOption for Configuration options with pathlib.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 is True.

Version 1.1.0

  • New module: signal - Callback system based on Signals and Slots, and “Delphi events”

  • types module:

    • load function now supports object_name[.object_name...] specifications instead single object_name.

  • config module:

    • New class ApplicationDirectoryScheme

    • load_config(): raises error when section is missing, better error handling when exception is raised while loading options

    • PyCallableOption signature argument could be inspect.Signature or Callable

    • Introduced PROTO_CONFIG constant with fully qualified name for ConfigProto protobuf

    • Optional argument to_default in clear() 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 and FieldMask. They are automatically registered. New constants ‘PROTO_<type>’ with fully qualified names.

    • create_message() has new optional serialized argument with bytes that should be parsed into newly created message instance.

    • New functions struct2dict() and dict2struct()

  • trace module:

  • types module:

    • MIME now handles access to properties more efficiently and faster.

    • New function load().

  • Changes in documentation.

Version 1.0.0

Version 0.6.1

  • Promoted to stable

  • More documentation

Version 0.6.0

  • New module: strconv - Data conversion from/to string

  • New module: trace - Trace/audit for class instances

  • Reworked module: config - Classes for configuration definitions

    • New class: ConfigOption - Configuration option with Config value

    • New class: ConfigListOption - Configuration option with list of Config values

    • New class: DataclassOption - Configuration option with a dataclass value

  • Changed module: types

    • New class: MIME - MIME type specification

    • New class: PyExpr - Source code for Python expression

    • New class: PyCode - Python source code

    • New class: PyCallable - Source code for Python callable

    • Removed function: str2bool

  • Changed module: logging

    • Trace/audit functionality removed (into new module trace)

Version 0.5.0

Initial release.