Kedro Versions Save

Kedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and data science pipelines that are reproducible, maintainable, and modular.

0.18.10

11 months ago

Major features and improvements

  • Rebrand across all documentation and Kedro assets.
  • Added support for variable interpolation in the catalog with the OmegaConfigLoader.

0.18.9

11 months ago

Major features and improvements

  • kedro run --params now updates interpolated parameters correctly when using OmegaConfigLoader.
  • Added metadata attribute to kedro.io datasets. This is ignored by Kedro, but may be consumed by users or external plugins.
  • Added kedro.logging.RichHandler. This replaces the default rich.logging.RichHandler and is more flexible, user can turn off the rich traceback if needed.

Bug fixes and other changes

  • OmegaConfigLoader will return a dict instead of DictConfig.
  • OmegaConfigLoader does not show a MissingConfigError when the config files exist but are empty.

Documentation changes

  • Added documentation for collaborative experiment tracking within Kedro-Viz.
  • Revised section on deployment to better organise content and reflect how recently docs have been updated.
  • Minor improvements to fix typos and revise docs to align with engineering changes.

Breaking changes to the API

  • kedro package does not produce .egg files anymore, and now relies exclusively on .whl files.

Community contributions

Many thanks to the following Kedroids for contributing PRs to this release:

0.18.8

1 year ago

Major features and improvements

  • Added KEDRO_LOGGING_CONFIG environment variable, which can be used to configure logging from the beginning of the kedro process.
  • Removed logs folder from the kedro new project template. File-based logging will remain but just be level INFO and above and go to project root instead.

Bug fixes and other changes

  • Improvements to Jupyter E2E tests.
  • Added full kedro run CLI command to session store to improve run reproducibility using Kedro-Viz experiment tracking.

Documentation changes

  • Improvements to documentation about configuration.
  • Improvements to Sphinx toolchain including incrementing to use a newer version.
  • Improvements to documentation on visualising Kedro projects on Databricks, and additional documentation about the development workflow for Kedro projects on Databricks.
  • Updated Technical Steering Committee membership documentation.
  • Revised documentation section about linting and formatting and extended to give details of flake8 configuration.
  • Updated table of contents for documentation to reduce scrolling.
  • Expanded FAQ documentation.
  • Added a 404 page to documentation.
  • Added deprecation warnings about the removal of kedro.extras.datasets.

0.18.7

1 year ago

Release 0.18.7

Major features and improvements

  • Added new Kedro CLI kedro jupyter setup to setup Jupyter Kernel for Kedro.
  • kedro package now includes the project configuration in a compressed tar.gz file.
  • Added functionality to the OmegaConfigLoader to load configuration from compressed files of zip or tar format. This feature requires fsspec>=2023.1.0.
  • Significant improvements to on-boarding documentation that covers setup for new Kedro users. Also some major changes to the spaceflights tutorial to make it faster to work through. We think it's a better read. Tell us if it's not.

Bug fixes and other changes

  • Added a guide and tooling for developing Kedro for Databricks.
  • Implement missing dict-like interface for _ProjectPipeline.

0.18.6

1 year ago

Release 0.18.6

Bug fixes and other changes

  • Fixed bug that didn't allow to read or write datasets with s3a or s3n filepaths
  • Fixed bug with overriding nested parameters using the --params flag
  • Fixed bug that made session store incompatible with Kedro-Viz experiment tracking

Migration guide from Kedro 0.18.5 to 0.18.6

A regression introduced in Kedro version 0.18.5 caused the Kedro-Viz console to fail to show experiment tracking correctly. If you experienced this issue, you will need to:

  • upgrade to Kedro version 0.18.6
  • delete any erroneous session entries created with Kedro 0.18.5 from your session_store.db stored at <project-path>/data/session_store.db.

Thanks to Kedroids tomohiko kato, tsanikgr and maddataanalyst for very detailed reports about the bug.

0.18.5

1 year ago

Release 0.18.5

NOTE: This version of Kedro introduced a bug such that the Kedro-Viz console to fail to show experiment tracking correctly. We recommend that you don't use it and prefer instead to use Kedro version 0.18.6.

Major features and improvements

  • Added new OmegaConfigLoader which uses OmegaConf for loading and merging configuration.
  • Added the --conf-source option to kedro run, allowing users to specify a source for project configuration for the run.
  • Added omegaconf syntax as option for --params. Keys and values can now be separated by colons or equals signs.
  • Added support for generator functions as nodes, i.e. using yield instead of return.
    • Enable chunk-wise processing in nodes with generator functions.
    • Save node outputs after every yield before proceeding with next chunk.
  • Fixed incorrect parsing of Azure Data Lake Storage Gen2 URIs used in datasets.
  • Added support for loading credentials from environment variables using OmegaConfigLoader.
  • Added new --namespace flag to kedro run to enable filtering by node namespace.
  • Added a new argument node for all four dataset hooks.
  • Added the kedro run flags --nodes, --tags, and --load-versions to replace --node, --tag, and --load-version.

Bug fixes and other changes

  • Commas surrounded by square brackets (only possible for nodes with default names) will no longer split the arguments to kedro run options which take a list of nodes as inputs (--from-nodes and --to-nodes).
  • Fixed bug where micropkg manifest section in pyproject.toml isn't recognised as allowed configuration.
  • Fixed bug causing load_ipython_extension not to register the %reload_kedro line magic when called in a directory that does not contain a Kedro project.
  • Added anyconfig's ac_context parameter to kedro.config.commons module functions for more flexible ConfigLoader customizations.
  • Change reference to kedro.pipeline.Pipeline object throughout test suite with kedro.modular_pipeline.pipeline factory.
  • Fixed bug causing the after_dataset_saved hook only to be called for one output dataset when multiple are saved in a single node and async saving is in use.
  • Log level for "Credentials not found in your Kedro project config" was changed from WARNING to DEBUG.
  • Added safe extraction of tar files in micropkg pull to fix vulnerability caused by CVE-2007-4559.
  • Documentation improvements
    • Bug fix in table font size
    • Updated API docs links for datasets
    • Improved CLI docs for kedro run
    • Revised documentation for visualisation to build plots and for experiment tracking
    • Added example for loading external credentials to the Hooks documentation

Breaking changes to the API

Community contributions

Many thanks to the following Kedroids for contributing PRs to this release:

Upcoming deprecations for Kedro 0.19.0

  • project_version will be deprecated in pyproject.toml please use kedro_init_version instead.
  • Deprecated kedro run flags --node, --tag, and --load-version in favour of --nodes, --tags, and --load-versions.

0.18.4

1 year ago

Major features and improvements

  • Make Kedro instantiate datasets from kedro_datasets with higher priority than kedro.extras.datasets. kedro_datasets is the namespace for the new kedro-datasets python package.
  • The config loader objects now implement UserDict and the configuration is accessed through conf_loader['catalog'].
  • You can configure config file patterns through settings.py without creating a custom config loader.
  • Added the following new datasets:
Type Description Location
svmlight.SVMLightDataSet Work with svmlight/libsvm files using scikit-learn library kedro.extras.datasets.svmlight
video.VideoDataSet Read and write video files from a filesystem kedro.extras.datasets.video
video.video_dataset.SequenceVideo Create a video object from an iterable sequence to use with VideoDataSet kedro.extras.datasets.video
video.video_dataset.GeneratorVideo Create a video object from a generator to use with VideoDataSet kedro.extras.datasets.video
  • Implemented support for a functional definition of schema in dask.ParquetDataSet to work with the dask.to_parquet API.

Bug fixes and other changes

  • Fixed kedro micropkg pull for packages on PyPI.
  • Fixed format in save_args for SparkHiveDataSet, previously it didn't allow you to save it as delta format.
  • Fixed save errors in TensorFlowModelDataset when used without versioning; previously, it wouldn't overwrite an existing model.
  • Added support for tf.device in TensorFlowModelDataset.
  • Updated error message for VersionNotFoundError to handle insufficient permission issues for cloud storage.
  • Updated Experiment Tracking docs with working examples.
  • Updated MatplotlibWriter Dataset, TextDataset, plotly.PlotlyDataSet and plotly.JSONDataSet docs with working examples.
  • Modified implementation of the Kedro IPython extension to use local_ns rather than a global variable.
  • Refactored ShelveStore to its own module to ensure multiprocessing works with it.
  • kedro.extras.datasets.pandas.SQLQueryDataSet now takes optional argument execution_options.
  • Removed attrs upper bound to support newer versions of Airflow.
  • Bumped the lower bound for the setuptools dependency to <=61.5.1.

Minor breaking changes to the API

Upcoming deprecations for Kedro 0.19.0

  • kedro test and kedro lint will be deprecated.

Documentation

  • Revised the Introduction to shorten it
  • Revised the Get Started section to remove unnecessary information and clarify the learning path
  • Updated the spaceflights tutorial to simplify the later stages and clarify what the reader needed to do in each phase
  • Moved some pages that covered advanced materials into more appropriate sections
  • Moved visualisation into its own section
  • Fixed a bug that degraded user experience: the table of contents is now sticky when you navigate between pages
  • Added redirects where needed on ReadTheDocs for legacy links and bookmarks

Contributions from the Kedroid community

We are grateful to the following for submitting PRs that contributed to this release: jstammers, FlorianGD, yash6318, carlaprv, dinotuku, williamcaicedo, avan-sh, Kastakin, amaralbf, BSGalvan, levimjoseph, daniel-falk, clotildeguinard, avsolatorio, and picklejuicedev for comments and input to documentation changes

0.18.3

1 year ago

Release 0.18.3

Major features and improvements

  • Implemented autodiscovery of project pipelines. A pipeline created with kedro pipeline create <pipeline_name> can now be accessed immediately without needing to explicitly register it in src/<package_name>/pipeline_registry.py, either individually by name (e.g. kedro run --pipeline=<pipeline_name>) or as part of the combined default pipeline (e.g. kedro run). By default, the simplified register_pipelines() function in pipeline_registry.py looks like:

    def register_pipelines() -> Dict[str, Pipeline]:
        """Register the project's pipelines.
    
        Returns:
            A mapping from pipeline names to ``Pipeline`` objects.
        """
        pipelines = find_pipelines()
        pipelines["__default__"] = sum(pipelines.values())
        return pipelines
    
  • The Kedro IPython extension should now be loaded with %load_ext kedro.ipython.

  • The line magic %reload_kedro now accepts keywords arguments, e.g. %reload_kedro --env=prod.

  • Improved resume pipeline suggestion for SequentialRunner, it will backtrack the closest persisted inputs to resume.

Bug fixes and other changes

  • Changed default False value for rich logging show_locals, to make sure credentials and other sensitive data isn't shown in logs.
  • Rich traceback handling is disabled on Databricks so that exceptions now halt execution as expected. This is a workaround for a bug in rich.
  • When using kedro run -n [some_node], if some_node is missing a namespace the resulting error message will suggest the correct node name.
  • Updated documentation for rich logging.
  • Updated Prefect deployment documentation to allow for reruns with saved versioned datasets.
  • The Kedro IPython extension now surfaces errors when it cannot load a Kedro project.
  • Relaxed delta-spark upper bound to allow compatibility with Spark 3.1.x and 3.2.x.
  • Added gdrive to list of cloud protocols, enabling Google Drive paths for datasets.
  • Added svg logo resource for ipython kernel.

Upcoming deprecations for Kedro 0.19.0

  • The Kedro IPython extension will no longer be available as %load_ext kedro.extras.extensions.ipython; use %load_ext kedro.ipython instead.
  • kedro jupyter convert, kedro build-docs, kedro build-reqs and kedro activate-nbstripout will be deprecated.

0.18.2

1 year ago

Release 0.18.2

Major features and improvements

  • Added abfss to list of cloud protocols, enabling abfss paths.
  • Kedro now uses the Rich library to format terminal logs and tracebacks.
  • The file conf/base/logging.yml is now optional. See our documentation for details.
  • Introduced a kedro.starters entry point. This enables plugins to create custom starter aliases used by kedro starter list and kedro new.
  • Reduced the kedro new prompts to just one question asking for the project name.

Bug fixes and other changes

  • Bumped pyyaml upper bound to make Kedro compatible with the pyodide stack.
  • Updated project template's Sphinx configuration to use myst_parser instead of recommonmark.
  • Reduced number of log lines by changing the logging level from INFO to DEBUG for low priority messages.
  • Kedro's framework-side logging configuration no longer performs file-based logging. Hence superfluous info.log/errors.log files are no longer created in your project root, and running Kedro on read-only file systems such as Databricks Repos is now possible.
  • The root logger is now set to the Python default level of WARNING rather than INFO. Kedro's logger is still set to emit INFO level messages.
  • SequentialRunner now has consistent execution order across multiple runs with sorted nodes.
  • Bumped the upper bound for the Flake8 dependency to <5.0.
  • kedro jupyter notebook/lab no longer reuses a Jupyter kernel.
  • Required cookiecutter>=2.1.1 to address a known command injection vulnerability.
  • The session store no longer fails if a username cannot be found with getpass.getuser.
  • Added generic typing for AbstractDataSet and AbstractVersionedDataSet as well as typing to all datasets.
  • Rendered the deployment guide flowchart as a Mermaid diagram, and added Dask.

Minor breaking changes to the API

  • The module kedro.config.default_logger no longer exists; default logging configuration is now set automatically through kedro.framework.project.LOGGING. Unless you explicitly import kedro.config.default_logger you do not need to make any changes.

Upcoming deprecations for Kedro 0.19.0

  • kedro.extras.ColorHandler will be removed in 0.19.0.

0.18.1

2 years ago

Major features and improvements

  • Added a new hook after_context_created that passes the KedroContext instance as context.
  • Added a new CLI hook after_command_run.
  • Added more detail to YAML ParserError exception error message.
  • Added option to SparkDataSet to specify a schema load argument that allows for supplying a user-defined schema as opposed to relying on the schema inference of Spark.
  • The Kedro package no longer contains a built version of the Kedro documentation significantly reducing the package size.

Bug fixes and other changes

  • Removed fatal error from being logged when a Kedro session is created in a directory without git.
  • Fixed CONFIG_LOADER_CLASS validation so that TemplatedConfigLoader can be specified in settings.py. Any CONFIG_LOADER_CLASS must be a subclass of AbstractConfigLoader.
  • Added runner name to the run_params dictionary used in pipeline hooks.
  • Updated Databricks documentation to include how to get it working with IPython extension and Kedro-Viz.
  • Update sections on visualisation, namespacing, and experiment tracking in the spaceflight tutorial to correspond to the complete spaceflights starter.
  • Fixed Jinja2 syntax loading with TemplatedConfigLoader using globals.yml.
  • Removed global _active_session, _activate_session and _deactivate_session. Plugins that need to access objects such as the config loader should now do so through context in the new after_context_created hook.
  • config_loader is available as a public read-only attribute of KedroContext.
  • Made hook_manager argument optional for runner.run.
  • kedro docs now opens an online version of the Kedro documentation instead of a locally built version.

Upcoming deprecations for Kedro 0.19.0

  • kedro docs will be removed in 0.19.0.