Skip to main content

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.

Metadata

Release files for thaw 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for thaw 1.0.1
File Size Uploaded
thaw-1.0.1.tar.gz 13.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for thaw 1.0.1
File Interpreter ABI Platform
thaw-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 29.0 kB

Release files / thaw-1.0.1.tar.gz

Download URL thaw-1.0.1.tar.gz
Size 13.9 kB
Tags Source
SHA-256 checksum
How to use checksums
08784d4d4b3eed538090b9b094a45d63c7d5908bd88369d918be90b1bf2f9460
BLAKE2b-256 checksum
How to use checksums
d5495eaa91684f683aea51a9ec6339221e84559bef93f9b7998b125b421fed88
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / thaw-1.0.1-py3-none-any.whl

Download URL thaw-1.0.1-py3-none-any.whl
Size 15.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
edd74b1e6338e7a293929f10c24407319072f70840977b52d98225e92fdabf0e
BLAKE2b-256 checksum
How to use checksums
c00b17cff68c81ad25916c044e871e4690ea2ec49df8b613317451bb50b3fcf9
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

0.5.5

2 release files

0.4.7

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page