Skip to main content

kedro-diff

kedro-diff aims to be a familiar interface into comparing two points in history. Git diffs are fantastic tools but often are too granular to see what has changed inside the pipeline. kedro-diff aims to be a familiar tool at a higher level so we can see changes to nodes (names, inputs, outputs, tags).

Installation

pip install kedro-diff

Example

kedro diff --stat develop..master
M  __default__      | 6 ++++-
M  data_science     | 3 +++
M  data_engineering | 3 ++-
?? new_pipeline

4 pipelines changed, 5 insertions(+), 4 deletions(-)

Usage

# diff develop into master
kedro diff develop..master

kedro diff develop master

# diff current state with main
kedro diff main

# diff current state with main
kedro diff ..main

# comparing pipelines from two branches
kedro diff master new_branch data_science

More examples

kedro diff develop..master
╭──────────────────────────────────────────────────────────────────────────────╮
│ modified: data_engineering                                                   │
╰──────────────────────────────────────────────────────────────────────────────╯
+ strip_whitespace
+ lowercase_columns
+ get_trains
- get_tains
╭──────────────────────────────────────────────────────────────────────────────╮
│ modified: data_science                                                       │
╰──────────────────────────────────────────────────────────────────────────────╯
+ split_data

Roadmap

1.0.0

  • commit parser
  • get pipeline.to_json() for __default__ for two different commits
  • get pipeline.to_json() for all pipelines for two different commits
  • --stat compares the number of nodes added or dropped in __default__
  • --stat compares the number of nodes added or dropped in all pipelines
  • --stat compares attribute changes (inputs, outputs, tags) in all pipelines
  • compare input names
  • compare output names
  • speed up getting repeat pipelines from the same commit (no need to reaload a new session)
  • speed up getting repeat commits by checking commit hash (reuse existing json)
  • minimize untested code

2.0.0

super-size pipeline.to_json()

  • compare all attributes on a node ( not just inputs, outputs, tags)
  • allow users to specify custom to_json method
  • function names
  • function hashes
  • catalog _filepath
  • catalog _sql

Testing

This project strives for 100% test coverage where it makes sense. Other kedro plugins I have created have suffered development speed by the complexity of fully testing on a full kedro project. There are so many pieces to get into place that it becomes difficult to test accross multiple versions of kedro or keep the tests working as kedro changes. Minimal functionality will be placed into modules that require a kedro full kedro project in place to work.

Metadata

Release files for kedro-diff 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kedro-diff 0.1.1
File Size Uploaded Provenance Actions
kedro-diff-0.1.1.tar.gz 15.4 kB Without provenance Details for kedro-diff-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for kedro-diff 0.1.1
File Interpreter ABI Platform Actions
kedro_diff-0.1.1-py3-none-any.whl Python 3 none any Details for kedro_diff-0.1.1-py3-none-any.whl

Total release size: 33.3 kB

Release files / kedro-diff-0.1.1.tar.gz

Download URL kedro-diff-0.1.1.tar.gz
Size 15.4 kB
Tags Source
SHA-256 checksum
How to use checksums
b6e0e2f69d9ec25cb52e8f49d7fabbdfb4bb6823e387a23780acf8ad1f212de2
BLAKE2b-256 checksum
How to use checksums
90be66b3730d75d31a1ed8c1f88324f670e2634bf23a5631362dbd4f3a3b496e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.11

Release files / kedro_diff-0.1.1-py3-none-any.whl

Download URL kedro_diff-0.1.1-py3-none-any.whl
Size 17.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6c521cff3e66bdcfb2fd9d9561f3ba568e06c7e60adae5a35e3046729e989923
BLAKE2b-256 checksum
How to use checksums
4e04f3a7de309d4d9c609a25ed3b429e24219ac0c4c91f0f4554dd218134a7be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.7.11

Security for kedro-diff 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page