Registry / data / kedro
library1.5.0pypypi✓ verified 22d ago

Kedro is an open-source Python framework for creating reproducible, maintainable, and modular data science code. It applies software engineering best practices to data and analytics pipelines. The current version is 1.3.1, and releases are frequent, typically with patch and minor updates released monthly, and major versions less often.

pip install kedro
INSTALL
IMPORT
SIG · KEDRO
K
kedro
datapythonv1.5.0
Install
7.2s avg
Import
124ms
Disk
58MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v1.5.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.910 runs
installs and imports cleanly · install 0.0s · import 0.130s · 57.4MB
glibc
py 3.103.910 runs
installs and imports cleanly · install 7.2s · import 0.118s · 59MB
58MB installed
● package 58MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Pipeline
from kedro.pipeline import Pipeline
node
from kedro.pipeline import node
DataCatalog
from kedro.io import DataCatalog
from kedro.io import KedroDataCatalog
`KedroDataCatalog` was renamed to `DataCatalog` and became the default in Kedro 1.0.0.
MemoryDataSet
from kedro.io import MemoryDataSet
SequentialRunner
from kedro.runner import SequentialRunner
KedroSession
from kedro.framework.session import KedroSession

This example demonstrates how to define Kedro nodes and combine them into a pipeline. It then uses a `SequentialRunner` and an in-memory `DataCatalog` to execute the pipeline. In a typical Kedro project, `kedro new` creates a project structure, and `kedro run` orchestrates execution via `KedroSession`, loading configurations from `conf/` files.

from kedro.io import DataCatalog, MemoryDataSet from kedro.pipeline import Pipeline, node from kedro.runner import SequentialRunner # 1. Define node functions (plain Python functions) def greet(name: str) -> str: """A node that greets a given name.""" return f"Hello, {name}!" def capitalize(text: str) -> str: """A node that capitalizes a string.""" return text.upper() # 2. Assemble nodes into a pipeline def create_example_pipeline() -> Pipeline: return Pipeline([ node( func=greet, inputs="input_name", # Input dataset key outputs="greeting_message", # Output dataset key name="greet_user_node" ), node( func=capitalize, inputs="greeting_message", outputs="final_output", # Final output dataset key name="capitalize_message_node" ) ]) # 3. Create a DataCatalog with input data # In a real Kedro project, this is usually defined in conf/base/catalog.yml catalog = DataCatalog({ "input_name": MemoryDataSet(data="World"), "final_output": MemoryDataSet() # Define an output dataset to store results }) # 4. Instantiate the pipeline and a runner my_pipeline = create_example_pipeline() runner = SequentialRunner() # 5. Run the pipeline # In a real Kedro project, `kedro run` via `KedroSession` orchestrates this. print("Running Kedro pipeline...") result_catalog = runner.run(my_pipeline, catalog) # 6. Retrieve results final_message = result_catalog.load("final_output") print(f"Pipeline finished. Final message: {final_message}") # Expected output: Pipeline finished. Final message: HELLO, WORLD!
kedro --version
Debug
Known issues
breakingKedro dropped support for Python 3.9 in version 1.1.0. Projects using Kedro 1.1.0 or newer must use Python 3.10 or later.
fix
Upgrade your Python environment to 3.10 or a newer supported version.
affects: >=1.1.0
breakingThe `KedroDataCatalog` class was renamed to `DataCatalog` and became the default catalog implementation in Kedro 1.0.0. While most standard workflows were unaffected, programmatic interactions with the catalog, especially direct instantiation or accessing missing datasets (`__getitem__`), might require updates.
fix
Use `DataCatalog` instead of `KedroDataCatalog`. Review any custom catalog interactions for compatibility, especially error handling for missing datasets which now raise `DatasetNotFoundError`.
affects: >=1.0.0
gotchaKedro relies heavily on its project structure (created by `kedro new`) and configuration files in the `conf/` directory. Deviations or manually created projects without the correct structure can lead to `KedroContextError` or `ConfigLoaderError`.
fix
Always initialize new projects with `kedro new` and adhere to the generated project structure. When modifying configuration, follow the `conf/base` and `conf/local` conventions.
affects: All versions
gotchaConfusion between `params:` (dynamic parameters passed as node inputs) and `parameters:` (static configuration loaded from `conf/catalog.yml`) is a common pitfall. The new parameter validation (Kedro >=1.3.0) specifically targets `params:` inputs.
fix
Use `params:` for values that are passed as inputs to node functions, often dynamic. Use `parameters:` for static, global configurations loaded via the `DataCatalog` and accessed from the `context.params` object or directly as dataset entries.
affects: All versions
gotchaPrior to `kedro==1.1.1`, the `project_version` specified in `src/<project_name>/settings.py` had to *exactly match* the installed Kedro package version (including minor and patch versions) to avoid a `ProjectVersionError`.
fix
As of `kedro>=1.1.1`, only major version mismatches are strictly enforced. For older versions, ensure your project's `project_version` matches your installed Kedro package version. For new projects, ensure you're on a recent Kedro version to benefit from the more flexible version check.
affects: <1.1.1
deprecatedThe `--namespace` CLI flag for `kedro run` was deprecated in version 0.19.15 and is discouraged. Kedro now promotes using proper modular pipelines and explicit dataset prefixing for organization.
fix
Refactor pipelines to use modular pipeline features (`Pipeline(namespace=...)`) and explicit dataset naming conventions instead of relying on the deprecated `--namespace` flag.
affects: >=0.19.15
gotchaPublic APIs marked with the `@experimental` decorator (introduced in 1.2.0) are unstable and may change without backward compatibility guarantees. Use them with caution.
fix
Be aware that `@experimental` APIs are subject to change. Avoid using them in production code unless you are prepared to adapt to potential breaking changes in future releases.
affects: >=1.2.0
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'kedro_mnist.pipelines.' ValueError: Failed to find the pipeline named 'pipeline'. It needs to be generated and returned by the 'register_pipelines' function.
This error typically occurs when Kedro cannot locate your pipeline modules due to an incorrect project structure, often caused by leftover Jupyter `.ipynb_checkpoints` directories, or when pipelines are not correctly registered in `src/<project_package>/pipeline_registry.py`.
fix
Ensure your project's Python package structure is correct, remove any `.ipynb_checkpoints` folders from your `src` directory, and verify that the `register_pipelines` function in `src/<project_package>/pipeline_registry.py` accurately defines and returns your pipelines.
'kedro' is not recognized as an internal or external command, operable program or batch file
This error indicates that the directory containing the `kedro` executable (usually within the `Scripts` folder of your Python installation or virtual environment) is not included in your system's PATH environment variable.
fix
Add the `Scripts` directory of your Python environment (e.g., `C:\Users\Username\AppData\Roaming\Python\Python37\Scripts` or `<venv_path>\Scripts`) to your system's PATH. Alternatively, you can run Kedro commands by explicitly calling the Python module: `python -m kedro <command>`.
Error: No such command 'install'
Project-specific Kedro CLI commands (like `kedro install`, `kedro run`, `kedro jupyter`) must be executed from the root directory of your Kedro project, which is identified by the presence of `.kedro.yml` and `pyproject.toml` files.
fix
Navigate to the root directory of your Kedro project using `cd <your-kedro-project>` before attempting to run project-specific `kedro` commands.
ImportError: cannot import name 'ConfigLoader' from 'kedro.config'
This error arises in Kedro projects updated to version 0.19.0 or later, where the `ConfigLoader` class was deprecated and replaced by `OmegaConfigLoader` as part of a migration to use the OmegaConf library for configuration management.
fix
Update your import statements and code to use `OmegaConfigLoader` instead of `ConfigLoader`. For example, change `from kedro.config import ConfigLoader` to `from kedro.config import OmegaConfigLoader`.
Upgrade
Version history
1.5.0latest on PyPI · released Jun 29, 2026
Audit
Dependencies
pythonrequiredKedro requires Python >=3.10 as of version 1.1.0.
Agent activity
19 hits · last 30 days
node
16
OpenAI (training)
1
Resources