Skip to main content

Generates report showing where dependencies affect your project

Project description

thaw

PyPI Coverage Status GitHub issues PyPI - License PyPI - Wheel

thaw is a command line tool that identifies precisely where project dependencies are used. It is designed to help with CI and with general project updates by providing a roadmap of where dependency updates would impact your project.

By default thaw looks at the project's requirements.txt file, and there are also options to search for dependencies based on import statements or to only report where specific libraries are used.

See planned features and progress here.

Requires Python 3. Not compatible with Python 2. Tested with Python 3.7/3.8

Installation

You can install thaw with pip and PyPI:

$ pip3 install thaw

Use

thaw takes one positional argument, the root/top level of your project directory.

Running thaw with its default settings will look through your requirements.txt file and print a report of where they're used to stdout:

$ python3 -m thaw .

You can write the report to a .txt file with the --out flag. This creates a timestamped file in the location you specify:

python3 -m thaw . ---out /put/report/here

By default, the report will have filepaths relative to the project's root directory and line numbers for each affected file. You can have the report include the line content by using the --verbose flag:

python3 -m thaw . --verbose

If you have no requirements.txt file or if you want to get a report on where all dependencies are used, use the --imports flag:

python3 -m thaw . --imports

Alternatively, if you want to search for one or several libraries in particular, use the --library flag and enter the names of the libraries separated by spaces:

python3 -m thaw . --library pandas numpy

Example report

	*library1                                 | 2.9 >> 2.10          | 2 files affected
	*library2                                 | 3.8 >> 4.0           | 1 files affected
	library3                                  | 4.9.1, no update needed
	library4                                  | no version number listed

2 total updates: 1 MAJOR updates, 1 MINOR updates, 0 MICRO updates

Major updates:
[ ]library2
	file3.py
		[19, 22, 23, 28, 47, 49]
    file4.py
        [6, 12, 13, 14, 110, 212, 213]

Minor updates:
[ ]library1
    file1.py
		[14, 15, 16, 22, 87, 88, 209, 211, 212]
    file2.py
        [16, 18, 21]
    file3.py
        [24, 89, 134, 137]

Micro updates:
none

Bugs/Requests

Please use the GitHub issue tracker to submit bugs or request features. (If thaw is breaking on a particular repo and you're able to share the repo publically, it would be great if you can include a link to it in your report - if not, no worries.)

You can check planned features on thaw's GitHub project board.

Background

thaw was created because it's super frustrating to update project dependencies and then play whack-a-mole with errors. The report thaw generates tells you which libraries are used where, including variables made with those libraries, so you can easily pinpoint where problems may occur and have a roadmap for fixing update-induced errors.

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

thaw-1.0.1.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

thaw-1.0.1-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

Details for the file thaw-1.0.1.tar.gz.

File metadata

  • Download URL: thaw-1.0.1.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.7

File hashes

Hashes for thaw-1.0.1.tar.gz
Algorithm Hash digest
SHA256 08784d4d4b3eed538090b9b094a45d63c7d5908bd88369d918be90b1bf2f9460
MD5 769c9cdfecdf813a2445ce1903f51a08
BLAKE2b-256 d5495eaa91684f683aea51a9ec6339221e84559bef93f9b7998b125b421fed88

See more details on using hashes here.

File details

Details for the file thaw-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: thaw-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 15.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.7

File hashes

Hashes for thaw-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 edd74b1e6338e7a293929f10c24407319072f70840977b52d98225e92fdabf0e
MD5 b9ef21b11588be6789d89c317077bd55
BLAKE2b-256 c00b17cff68c81ad25916c044e871e4690ea2ec49df8b613317451bb50b3fcf9

See more details on using hashes here.

Supported by

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