Skip to main content

Python interface diff

Project description

pidiff

pidiff - the Python interface diffing tool

Build Status Coverage Status Maintainability

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


Download files

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

Source Distribution

pidiff-0.1.0.tar.gz (24.1 kB view details)

Uploaded Source

Built Distribution

pidiff-0.1.0-py3-none-any.whl (26.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pidiff-0.1.0.tar.gz
  • Upload date:
  • Size: 24.1 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

Hashes for pidiff-0.1.0.tar.gz
Algorithm Hash digest
SHA256 67166255c036ade3b5c7609dbb2c599619bb89a65736a33704695b148676d3d5
MD5 305d640b58f86eb0a1152253e3d5cf8e
BLAKE2b-256 db6140ce09d7a05ca5819a06c695c39fa37b4a9b465db0e36763ccbbd6be6e74

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pidiff-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 26.0 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

Hashes for pidiff-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 34e20ae7175c9a528dd7b0410566c90343c4fcf0b500c31af2a8cf9be0bfa1eb
MD5 cd16fe11d54787ccc24a4764eb15f2cb
BLAKE2b-256 f79e3eb0682f771ad9d58cb09758a6f3b40b5c1497f7bc411eed3b9f1cadef42

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