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)
| File | Size | Uploaded | |
|---|---|---|---|
| pidiff-1.7.2.tar.gz | 31.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|