Releases: ORNL/curifactory
Releases · ORNL/curifactory
v0.13.2
v0.13.1
v0.13.0
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 bothx
andy
.- Potential error when collecting metadata if manager run info doesn't have "status".
v0.12.0
Added
- Bash/zsh tab-completion via
argcomplete
. (This requires installingargcomplete
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 runcurifactory completion
for
instructions.) resolve
option toLazy
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
v0.11.0
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
v0.10.0
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 thecurifactory
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
onRecord
'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
andload
should call the cacher'sget_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 cacherssave
andload
should replace it withself.get_path([optional_suffix])
, and do this for any paths it writes out (rather than callingget_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