All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Added home page shortcuts
Rename ‘default_translations’ and ‘default’ arguments to ‘default_fmt_placeholders’
Remove placeholder limitation on default translation format
Fixed issue when copying a Translator with translation and/or Format overrides
A number of docstring and under-the-hood fixes
Bump development status to Development Status :: 3 - Alpha on PyPi.
Switched to the PyData Sphinx theme and enabled automatic summaries.
Name of OfflineError changed to ConnectionStatusError.
Moved Cardinality to the mapping namespace.
Move utility.perf up one level.
Swapped generic TypeVar order for IdType and SourceType to match the name -> source -> ID hierarchy
Implement override functions in Mapper.apply.
Also: Partial implementation of override functions for name-to-source mapping in Translator.translate
Implement reverse translations. Added reverse argument to Translator.translate to translate from translations back to IDs.
An option maximal_untranslated_fraction to raise an error if translation fails for too many IDs in Translator.translate.
Make it possible to initialize Fetchers from arbitrary packages in Translator.from_config.
Make it possible configure ScoreFunctions, FilterFunctions and AliasFunctions from arbitrary modules
(still defaults to package functions).
The py.typed marker (PEP-561 compliance).
Additional types-modules for typehint imports
Numerous doc fixes
Fixed chained alias functionality for HeuristicScore
Botched release.
Changed like_database_table from score function to alias function
Thread safety: Change ‘candidates’ from init/property to Mapper.apply arg
Remove store/restore serialize argument. Default path is now None for Translator.store.
Documentation and docstring fixes.
A TOML Configuration section to docs
Convenience functions for (de)serializing Translator instances.
Broken docs.
Try to restore the translation API docs.
The Translator retrieving incorrect sources in offline mode
Refactor scoring functions.
The HeuristicScore class, which enables filter-based short-circuiting and alias heuristics for score functions.
The filter_functions.score_with_heuristics function; replaced by the more general HeuristicScore class.
Make translation.factory module public
Rename MappingScoreFunction -> ScoreFunction
Add a third mandatory context parameter to all mapping functions. The source argument has been removed.
Fix handling logging of duplicate source discovery in MultiFetcher
Allow empty fetching section in main config file when extra_fetchers are given
Short-circuiting logic to filter_functions.score_with_heuristics
Some scoring stuff and related logging.
Fix unwanted case-sensitivity in filter_functions.score_with_heuristics
Allow user-defined cardinality in config files
Missing Cardinality.parse(str) case
Support for fetching using multiple fetchers using the MultiFetcher class (#44)
The fetching.types module.
The Fetcher interface. The old Fetcher class in now called AbstractFetcher.
The action_level.ActionLevel enum type.
Refactor score and filter functions (mapping-module) to increase flexibility and cover more use cases (#57, #58).
The InheritedKeysDict class.
Integration of Mapper in the Fetcher for programmatic placeholder-mapping.
Filtering logic for Mapper
The plottting.pi_ticks-function to plot an (X-)axis in terms of PI.
Dvdrental testcase and docs running against a docker DB (not in CI)
More plotting functions
Improved dependency management. Added new dependency groups translation and plotting to be installed as extras
Copy method for Translator.copy(**overrides).
Switch from YAML to TOML for Translator.config.
A large number of changes, bugfixes and stability improvements. Only the most important ones are listed here.
Implement shared default translations (#31)
Implement in-place translation for sequences (list, pandas.Series, numpy.array)
Allow alternative use of translation format with an ID placeholder, even if the main doesn’t include it
Add an option to run Translator.store with explicit data to cache
Implement alternative format for unknown IDs
SqlFetcher: Break out potentially expensive operations into overridable methods
Replace suffix _log_level -> _level in basic_config
Fix name extraction for pandas.Series
Dict utility methods in rics.utility.collections
The rics.utility.plotting module
The Translator.fetch function for retrieving IDs
Revert bad commit
Fix an issue in PandasFetcher
Some SqlFetcher warning messages
Readme links.
Update get_local_or_remote - remote root mandatory, default to cwd for local root
Make it possible to use predicates for names and ignore_name in Translator.translate
Add Translator.map_to_sources to get name-to-source mapping without translating data
Translation using formats which don’t include the id placeholder
Update Fetcher return format from dict-of-lists to matrix (performance optimization)
Database table discovery (gathers metadata like size and columns) for SqlFetcher
Add selection logic (used to always fetch everything) for SqlFetcher
Implement translations of pandas.Series
The rics.utility.perf package for multivariate (data x functions) performance testing
Fix fetching only required placeholders in SqlFetcher
First release on PyPI!
The rics.utility package for various common operations
The rics.translation package suite for translating IDs into human-readable labels
The rics.mapping package for linking elements in multiple directions
The rics.cardinality package; enum types for 1:1, 1:N, N:1, and M:N