5.1.0 (May 29, 2025)#

Added#

  • Add logs.FORMAT_SEC, rename FORMAT -> FORMAT_MS.

  • New class logs.LoggingSetupHelper.

  • New functions logs.get_logger() and convert_log_level().

  • New naive functions strings.camel_to_snake() and snake_to_camel().

  • New class types.LiteralHelper[T].

  • New wrapper functions types.verify_literal() and verify_enum().

  • New module rics.env:

    • Added read-functions for primitive types; read_bool(), read_int, read_enum().

    • Added types.LiteralHelper[T].read_env().

  • New function strings.str_as_bool().

  • New module rics.click.

  • The MultiCaseTimer now supports callable test_data args to generate data.

  • Finished new rics.performance plotting implementation (support facets).

Changed#

  • Update basic_config.basic_config(): Allow and handle level=None to avoid logging from root.

  • The misc.get_by_full_name() function now supports reading member attributes. Uses entrypoint syntax, e.g. pandas:DataFrame.sum.

  • Moved some functions to new rics.env module:

    • Moves implementation rics.envinterp -> rics.env.interpolation.

    • Moved implementation of misc.interpolate_environment_variables() -> env.interpolation.replace_in_string().

    Aliases above will be deprecated in 0.6.0 and removed in 0.7.0.

  • Added strings.format_seconds(full=False); round to nearest minute for durations above four hours.

Fixed#

  • Calling MultiCaseTimer.run(number=<int>) no longer crashes.

  • Calling tname() with prefix_classname=True when arg is an inherited instance method (e.g. pd.Series().describe) now uses the child name. This parent is still shown for methods of uninitialized child types (e.g. pd.Series.describe).