Python interface diff
Project description
pidiff
pidiff
- the Python interface diffing tool
This project is alpha quality and is not yet recommended for use
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
more_executors/_executors.py:49: D200 object added: more_executors.Executors.flat_bind
more_executors/retry.py:46: D100 object removed: more_executors.retry.ExceptionRetryPolicy.new_default
more_executors/retry.py:133: D100 object removed: more_executors.retry.RetryExecutor.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 -r more-executors==1.11.0 more-executors==1.12.0 more_executors
more_executors/flat_map.py:0: D200 module added: more_executors.flat_map
more_executors/_executors.py:84: D200 object added: more_executors.Executors.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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pidiff-0.2.0.tar.gz
.
File metadata
- Download URL: pidiff-0.2.0.tar.gz
- Upload date:
- Size: 25.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52d452dc2a93a19b912a6bd12e737d1dceb1e7ebc8dc15727249529518311666 |
|
MD5 | 93bdc3174b86eb9bed93ad74ae4b31e1 |
|
BLAKE2b-256 | 91edcd4f29efa8f90d90b3098d42294d9ec9691ac9ec026b19496624df73adad |
Provenance
File details
Details for the file pidiff-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: pidiff-0.2.0-py3-none-any.whl
- Upload date:
- Size: 27.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3ab43e277048cc89b6e9c1b5b9133fdf72ba6adbec7410831270837667aca43 |
|
MD5 | bf05ab775fd582c15980cf15e3d579ed |
|
BLAKE2b-256 | 83bcda26b3fda1c9bebc6ce63b8a05260ec69829edb7c024241507b366117cdc |