Skip to main content

pidiff

pidiff - the Python interface diff tool

pidiff is a tool to detect and report on API changes between multiple versions of a Python module. It can be used as a testing tool to help a project follow the Semantic Versioning spec.

Examples

The pidiff command can install old and new package versions from PyPI and diff a module between versions, failing if SemVer is not used appropriately.

Here's an example of a diff finding some problems:

$ pidiff more-executors==1.15.0 more-executors==1.16.0
more_executors/_wrap.py:6: N220 function added: flat_bind
more_executors/retry.py:46: N450 ExceptionRetryPolicy now accepts unlimited keyword arguments
more_executors/retry.py:46: B330 argument in ExceptionRetryPolicy can no longer be passed positionally: max_attempts (was position 0)
more_executors/retry.py:133: N450 RetryExecutor now accepts unlimited keyword arguments
more_executors/retry.py:133: B130 method removed: new_default

---------------------------------------------------------------------
Major API changes were found; inappropriate for 1.15.0 => 1.16.0
New version should be equal or greater than 2.0.0

Public API was removed without a major bump of the package version; pidiff considers this an error and suggests the new minimum version number which should be set to accept these changes.

Here's an example of a diff reporting a successful result:

$ pidiff more-executors==1.11.0 more-executors==1.12.0
more_executors/flat_map.py:0: N210 module added: flat_map
more_executors/_executors.py:84: N230 method added: with_flat_map

---------------------------------------------------------------------
Minor API changes were found; appropriate for 1.11.0 => 1.12.0

Public API was added; since there was a minor bump of the package version, this is OK.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Metadata

Release files for pidiff 1.7.2

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

Source distribution (sdist)

Source distribution for pidiff 1.7.2
File Size Uploaded
pidiff-1.7.2.tar.gz 31.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pidiff 1.7.2
File Interpreter ABI Platform
pidiff-1.7.2-py3-none-any.whl Python 3 none any Details

Total release size: 65.9 kB

Release files / pidiff-1.7.2.tar.gz

Download URL pidiff-1.7.2.tar.gz
Size 31.7 kB
Tags Source
SHA-256 checksum
How to use checksums
1b6be1fa5b2b2f570e50c2f129aa805f3fff0f59d0a3aa27925c63d070f05411
BLAKE2b-256 checksum
How to use checksums
21abcce0ff0457e5f349b2f42b5ac6ea7b3c336346e079f6cd66e6d55b91eef6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.8

Release files / pidiff-1.7.2-py3-none-any.whl

Download URL pidiff-1.7.2-py3-none-any.whl
Size 34.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a8c4af64ef431ac7f6db878e8953dc74560a80416012ba07da1a4a4e6cee21ba
BLAKE2b-256 checksum
How to use checksums
e2b0a7df5eeb3190839d169aa7dbd5763aa4a5ee3670a05396d6a67c4e1f537a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.8

Release history Release notifications | RSS feed

This release

1.7.2 This release

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

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