Skip to main content

The Python interface diff tool

Project description

pidiff

pidiff - the Python interface diff tool

Build Status Coverage Status Maintainability

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pidiff-1.5.0.tar.gz (30.6 kB view details)

Uploaded Source

Built Distribution

pidiff-1.5.0-py3-none-any.whl (33.8 kB view details)

Uploaded Python 3

File details

Details for the file pidiff-1.5.0.tar.gz.

File metadata

  • Download URL: pidiff-1.5.0.tar.gz
  • Upload date:
  • Size: 30.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.46.1 CPython/3.7.2

File hashes

Hashes for pidiff-1.5.0.tar.gz
Algorithm Hash digest
SHA256 6d32093e1c3a584941f6e681206d62ca7fd3b074e2f8a96c589a0f22ad2b31aa
MD5 1b39a14325ba74f2d7bbe9cb2825f603
BLAKE2b-256 a925838aea8d18fe3a7b2c4d7ea0fa862c26e6d54e4d642e3309c98deaf1e239

See more details on using hashes here.

Provenance

File details

Details for the file pidiff-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: pidiff-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 33.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.46.1 CPython/3.7.2

File hashes

Hashes for pidiff-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b5fd1ebfd8904b028c2c46c682ef512c102a4993ebd0fe4cba9a81ead4156af4
MD5 58b19f369db9a432ac717074a0887c87
BLAKE2b-256 a97a929cf41f4b62b7b1190663b69c6dad3124769b14ae88739d053ac1e11b26

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page