0.14.0 (June 08, 2025)#

This release is a mostly focused on adding documentation and removing things to make the project less cumbersome to maintain. Concrete implementations for things like caching are being dropped and replaced by generic interfaces (the CacheAccess pattern). This is part of the process of getting ready to release 1.0.0 sometime this year.

Added#

  • Methods MagicDict.real_get and real_contains.

  • New typehint translator_typing.AbstractFetcherParams.

  • Added concurrency and thread-safety table to the documentation.

Changed#

  • Make some Transformer method parameters positional-only.

  • The TranslatorFactory can now discard optional fetchers that raise when imported or initialized. Set ID_TRANSLATION_SUPPRESS_OPTIONAL_FETCHER_INIT_ERRORS=true to enable (not recommended).

  • The AbstractFetcher.map_placeholders method no longer uses caching.

  • Renamed init args:

    • Mapper.unmapped_values_action -> on_unmapped

    • Mapper.unknown_user_override_action -> on_unknown_user_override

    • MultiFetcher.duplicate_source_discovered_action -> on_source_conflict

    • MultiFetcher.optional_fetcher_discarded_log_level -> fetcher_discarded_log_level

  • Replaced ActionLevel with typing.Literal in several places.

Fixed#

  • The docs no longer incorrectly state that max_fails stops working when default_fmt_placeholders are in use.

  • Fix max_fails check when transformers are in use.

  • The BitmaskTransformer no longer uses missing IDs in decomposed bitmask translations.

  • Fix SqlFetcher.__init__: Suppress exceptions from create_engine() if optional.

Removed#

  • The TransformerStop class and associated functionality (it wasn’t very useful).

  • The AbstractFetcher.get_placeholders method.

  • The AbstractFetcher.concurrent_operation_action option.

  • The AbstractFetcher.fetch_all_unmapped_values_action option; manage automatically when selective_fetch_all=True.

  • The MultiFetcher.duplicate_translation_action option; now managed automatically (fetch=warn, fetch_all=ignore).

  • The PandasFetcher(online) init arg.

  • Dropped deprecated Translator.translate arguments inplace and maximal_untranslated_fraction.