Skip to content

Releases: ORNL/curifactory

v0.13.2

05 May 18:47
Compare
Choose a tag to compare

Fixed

  • Docker module incorrectly using the run_command function.
  • Experiment passing in a cutoff run folder to the docker command.

v0.13.1

26 Apr 15:04
Compare
Choose a tag to compare

Fixed

  • Reportables that implement render using the old name instead of qualified_name, causing
    unintended figure image overwrites.

v0.13.0

21 Apr 14:02
Compare
Choose a tag to compare

Added

  • Check for get_params() functions that aren't returning lists.

Changed

  • An aggregate stage that is not explicitly given a set of records now takes manager records minus
    the record containing the currently running aggregate stage.

Fixed

  • Record make_copy adding the new record to the artifact manager twice.
  • Reportables ToC in report not correctly using the qualified names when cached reportables found.
  • LinePlotReporter not adding a legend when dictionaries provided for both x and y.
  • Potential error when collecting metadata if manager run info doesn't have "status".

v0.12.0

30 Mar 17:02
Compare
Choose a tag to compare

Added

  • Bash/zsh tab-completion via argcomplete. (This requires installing argcomplete outside of the
    environment and adding a line to your shell's rc file in order to use. You can run
    curifactory completion [--bash|--zsh] to add the line, or just run curifactory completion for
    instructions.)
  • resolve option to Lazy outputs - this allows not automatically loading the object on an input
    to the stage, directly providing the lazy instance instead. This allows delaying the loading, or
    simply getting the path of the object to deal with in some other way (e.g. passing to an external
    command.)

Fixed

  • experiment ls incorrectly handling curifactory configurations with experiment/param modules located
    in subdirectories.

v0.11.1

29 Mar 14:37
Compare
Choose a tag to compare

Fixed

  • --names flag incorrectly checking existence of parameterset name.

v0.11.0

29 Mar 13:57
Compare
Choose a tag to compare

Added

  • Curifactory submodules to top level import, so separately importing submodules is no longer necessary.

Changed

  • Minimum python version to 3.9.
  • Parameterset name to be ignored by hashing mechanism.

Fixed

  • No longer using backported package importlib_resources that wasn't in the setup.

v0.10.1

28 Mar 15:59
Compare
Choose a tag to compare

Fixed

  • Hash computation not correctly handling sub-dataclasses recursively.

v0.10.0

28 Mar 13:52
Compare
Choose a tag to compare

Added

  • Metadata output for every cached artifact. Alongside every output cache file will be a [file]_metadata.json,
    containing information about the run that generated it, the parameters, and previous stages run in the same record.
  • track parameter to cachers, indicating whether the output files should be copied into a full store run folder or not.
    (It is true by default.)
  • Optional cacher prefixes, which replaces the first part of a cached filepath name (normally the experiment name) with the provided
    prefix. This allows cross-experiment caching (use with care!)
  • Optional cacher subdir, which places output files into the specified subdirectory in the cache/run folder (allows better organization,
    e.g. Kedro's data engineering convention of 01_raw, 02_intermediate, etc.)
  • Allowing exact path overrides to be used by a cacher, making it cleaner to use them on the fly/outside of stages.
  • --version flag on the curifactory command.

Changed

  • Full store cached files are now placed into an artifacts/ subdirectory of the run folder.
  • PickleCacher's extension is now correctly set to .pkl (we aren't actually running gzip on it.)
  • Full store runs no longer call a cacher's save function a second time with a new path, instead relying
    on Record's path tracking to simply copy the cached files into the full store folder at the end of a stage.
  • Cachers' path mechanism - rather than expecting a cacher's set_path to be called beforehand, save and load
    should call the cacher's get_path().
  • The default cachers' save() functions return the path that was saved to.
  • --name flag to --prefix to make it more consistent to caching terminology.

Fixed

  • Reportable names doubling when loading from cache.
  • Silent execution when no parametersets provided or a requested parameterset name wasn't found, (now errors and exits.)

Breaking changes notes

  • Cacheable.set_path no longer exists, any custom cachers that override it should remove this function.
  • Any self.path references in custom cachers save and load should replace it with self.get_path([optional_suffix]), and do this for any paths it writes out (rather than calling get_path, modifying the resulting path, and writing to that modified path)
  • Any previous cached files from the PickleCacher will no longer be used as the extension has changed

v0.9.3

21 Mar 15:20
Compare
Choose a tag to compare

Fixed

  • Lack of proper html escaping of args dump in output reports.

v0.9.2

21 Mar 11:54
Compare
Choose a tag to compare

Fixed

  • String hash representation not recursively getting a string hash
    representation from any parameter sub-dataclasses.