Skip to main content

System-wide Python package discovery, validation, and allow-listing.

Project description

fetter

System-wide Python Package Discovery, Validation, and Allow-Listing.

The fetter command-line tool scans and validates Python packages across virtual environments or entire systems, ensuring packages conform to specified requirements or lock files. It identifies unapproved or vulnerable packages, supports continuous integration with 'pre-commit', and offers excellent performance thanks to a multi-threaded Rust implementation.

As an alternative to pip-audit, fetter can lookup vulnerabilities for packages defined in requirements.txt, pyproject.toml, or lock files created by uv, pixi, poetry, pipenv, or pip-tools; further, full vulnerability details, including CVSS scores, are provided.

Additionally, fetter can configure a virtual environment to validate package alignment before every Python run, enforcing a locked and reproducible development environment.

  • 🔎 System Scanning: Finds Python packages across system environments.
  • 🛡️ Vulnerability Audit: Scans defined or installed packages for security vulnerabilities in the Open Source Vulnerability database.
  • ⚖️ Package Validation: Checks installed packages against requirements.txt, pyproject.toml, or lock files created by uv, pixi, poetry, pipenv, or pip-tools that are sourced locally, via URLs, or via git repositories.
  • 🔒 Locked & Reproducible Environments: Automatically validate packages against a lock file before every Python run.
  • ⚙️ CI Integration: Validate and audit with pre-commit hooks.
  • 🚀 Fast: Multi-threaded Rust implementation.
  • 🪢 Bound Requirements: Derive lock-file-like bound requirements from observed system packages.
  • 🧹 Search and Purge: Find and remove packages across environments.
  • 🧩 Flexible Output: Display results in terminal or export to delimited files.

Articles

Installing the fetter Command Line Application

While available as a pure Rust binary (crates), fetter is easily installed via a Python package (pypi):

$ pip install fetter
$ fetter --help

As fetter can operate across multiple virtual environments, installation via pipx might be desirable:

$ pipx install fetter
$ fetter --version

An "ephemeral" fetter installation and run is also possible with uvx:

$ uvx fetter --version

Using fetter to Replace pip-audit

The fetter lookup-bound command can perform numerous operations similar to pip-audit, though with broader file format support and (by using the OSV Database) greater vulnerability details (including CVSS scores).

To audit dependencies for a local Python project:

$ fetter lookup-bound

To audit dependencies for a specified requirements file:

$ fetter lookup-bound --bound requirements.txt

To audit dependencies for a lock file created by uv, pixi, poetry, pipenv, or pip-tools:

$ fetter lookup-bound --bound uv.lock

To audit dependencies defined in an online git repository:

$ fetter lookup-bound --bound git@github.com:psf/clabot.git

The fetter lookup-name command can be used to find vulnerabilities for a single package or version, or multiple versions across a dependency specification.

$ fetter lookup-name "pip>=25"

Using fetter to Scan, Validate, and Audit Packages

For complete command-line documentation, see CLI Documentation.

By default, fetter will search for all packages in site-packages directories discoverable from all Python executables found in the system or user virtual environments. Depending on your system, this command might take several seconds.

$ fetter scan

To limit scanning to site-packages directories associated with a specific Python executable, the --exe (or -e) argument can be supplied.

$ fetter -e python3 scan
Package                   Site
certifi-2024.8.30         ~/.env-wp/lib/python3.12/site-packages
charset_normalizer-3.4.0  ~/.env-wp/lib/python3.12/site-packages
idna-3.10                 ~/.env-wp/lib/python3.12/site-packages
jinja2-3.1.3              ~/.env-wp/lib/python3.12/site-packages
markupsafe-2.1.5          ~/.env-wp/lib/python3.12/site-packages
pip-21.1.1                ~/.env-wp/lib/python3.12/site-packages
requests-2.32.3           ~/.env-wp/lib/python3.12/site-packages
setuptools-56.0.0         ~/.env-wp/lib/python3.12/site-packages
urllib3-2.2.3             ~/.env-wp/lib/python3.12/site-packages
zipp-3.18.1               ~/.env-wp/lib/python3.12/site-packages

This environment was built from this "requirements.txt":

jinja2==3.1.3
zipp==3.18.1
requests==2.32.3

To validate that the installed packages match the packages specified in "requirements.txt", we can use the fetter validate command, again targeting our active Python with -e python3, and providing "requirements.txt" to the --bound argument.

$ fetter -e python3 validate --bound requirements.txt
Package                   Dependency  Explain     Sites
certifi-2024.8.30                     Unrequired  ~/.env-wp/lib/python3.12/site-packages
charset_normalizer-3.4.0              Unrequired  ~/.env-wp/lib/python3.12/site-packages
idna-3.10                             Unrequired  ~/.env-wp/lib/python3.12/site-packages
markupsafe-2.1.5                      Unrequired  ~/.env-wp/lib/python3.12/site-packages
pip-21.1.1                            Unrequired  ~/.env-wp/lib/python3.12/site-packages
setuptools-56.0.0                     Unrequired  ~/.env-wp/lib/python3.12/site-packages
urllib3-2.2.3                         Unrequired  ~/.env-wp/lib/python3.12/site-packages

The --superset command can be provided to accept packages that are not defined in the bound requirements.

$ fetter -e python3 validate --bound requirements.txt --superset

If we update zipp to version 3.20.2 and re-run validation, fetter will report these as "Misdefined" records

$ fetter -e python3 validate --bound requirements.txt --superset
Package      Dependency    Explain     Sites
zipp-3.20.2  zipp==3.18.1  Misdefined  ~/.env-wp/lib/python3.12/site-packages

If we remove the zipp package entirely, fetter identifies this as a "Missing" record:

$ fetter -e python3 validate --bound requirements.txt --superset
Package  Dependency    Explain  Sites
         zipp==3.18.1  Missing

If we want to permit the absence of specified packages, the --subset flag can be used:

$ fetter -e python3 validate --bound requirements.txt --superset --subset

Using the fetter audit command, details are provided for every vulnerability associated with installed packages.

$ fetter -e python3 audit
Package            Vulnerabilities      Attribute  Value
jinja2-3.1.3       GHSA-h75v-3vvj-5mfj  URL        https://osv.dev/vulnerability/GHSA-h75v-3vvj-5mfj
                                        Summary    Jinja vulnerable to HTML attribute injection when passing ...
                                        Reference  https://nvd.nist.gov/vuln/detail/CVE-2024-34064
                                        Severity   CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
pip-21.1.1         GHSA-mq26-g339-26xf  URL        https://osv.dev/vulnerability/GHSA-mq26-g339-26xf
                                        Summary    Command Injection in pip when used with Mercurial
                                        Reference  https://nvd.nist.gov/vuln/detail/CVE-2023-5752
                                        Severity   CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA
                   PYSEC-2023-228       URL        https://osv.dev/vulnerability/PYSEC-2023-228
                                        Reference  https://mail.python.org/archives/list/security-announce@py...
                                        Severity   CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
setuptools-56.0.0  GHSA-cx63-2mw6-8hw5  URL        https://osv.dev/vulnerability/GHSA-cx63-2mw6-8hw5
                                        Summary    setuptools vulnerable to Command Injection via package URL
                                        Reference  https://nvd.nist.gov/vuln/detail/CVE-2024-6345
                                        Severity   CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA
                   GHSA-r9hx-vwmv-q579  URL        https://osv.dev/vulnerability/GHSA-r9hx-vwmv-q579
                                        Summary    pypa/setuptools vulnerable to Regular Expression Denial of...
                                        Reference  https://nvd.nist.gov/vuln/detail/CVE-2022-40897
                                        Severity   CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
                   PYSEC-2022-43012     URL        https://osv.dev/vulnerability/PYSEC-2022-43012
                                        Reference  https://github.com/pypa/setuptools/blob/fe8a98e696241487ba...
zipp-3.18.1        GHSA-jfmj-5v4g-7637  URL        https://osv.dev/vulnerability/GHSA-jfmj-5v4g-7637
                                        Summary    zipp Denial of Service vulnerability
                                        Reference  https://nvd.nist.gov/vuln/detail/CVE-2024-5569
                                        Severity   CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA

Installing Automatic Environment Validation

The fetter site-install command can be used to configure a Python environment to automatically perform pre-run validation against a requirements.txt, pyproject.toml, or lock file created by uv, poetry, pipenv, or pip-tools. Once installed, packages will be validated before every Python execution, warning or optionally exiting if the environment is invalid.

The site-install command takes the same arguments as validate. Automatic validation is implemented by installing a special ".pth" file in the virtual environment associated with the provided Python executable.

For example, the following command will validate packages installed for the currently available python3 against a "requirement.txt" lock file and issue warnings:

$ fetter -e python3 site-install --bound requirements.txt

For stronger control, the exit subcommand can be added to force process termination on validation errors.

$ fetter -e python3 site-install --bound requirements.txt exit

To uninstall automatic environment validation, run site-uninstall with the same Python executable:

$ fetter -e python3 site-uninstall

Using fetter with pre-commit

Two fetter commands can be run via pre-commit hooks for continuous integration of Python package controls.

Running fetter validate with pre-commit.

The fetter validate command permits validating that the actually installed Python packages in the current environment are what are defined to be installed, as specified by a requirements.txt file, a pyproject.toml file, or a lock file produced by uv, poetry, pipenv, or pip-tools.

The fetter validate command takes a required argument, --bound, to specify that path or URL to the file to be used to define the bound requirements. The optional --superset argument permits packages not defined in the bound requirements to be present. The optional --subset argument permits not all packages in the bound requirements to be present.

To run fetter validate with pre-commit, add the following to your .pre-commit-config.yaml.

repos:
- repo: https://github.com/fetter-io/fetter-rs
  rev: v3.1.0
  hooks:
    - id: fetter-validate
      args: [--bound, {FILE}, --superset, --subset, display, --code, 3]

Running fetter audit with pre-commit.

The fetter audit command will check for cybersecurity vulnerabilities issued for all installed Python packages in the current environment. Vulnerabilities are searched for in the Open Source Vulnerability (OSV) database.

To run fetter audit with pre-commit, add the following to your .pre-commit-config.yaml. Note that, as searching vulnerabilities can take time, this hook is likely better deployed as a pre-push rather than a pre-commit hook.

repos:
- repo: https://github.com/fetter-io/fetter-rs
  rev: v3.1.0
  hooks:
    - id: fetter-audit

Command Line Interface Documentation

Global Options

  • --exe, -e <FILES>: Provide zero or more executable paths to derive site package locations. If omitted, all discoverable executables will be used.
  • --quiet, -q: Disable terminal animations.
  • --user_site: Force inclusion of the user site-packages, even if it is not activated. Defaults to only including if the interpreter is configured to use it.
  • --all-users: When searching for all discoverable executables, include all user directories. Otherwise, include only the users home directory.
  • --cache-duration, -c: Create or use a caches that expire after the provided number of seconds. A duration of zero will disable caching.
  • --cache-directory: Provide an explicit directory to be used for storing caches.
  • --log, -l: Enable logging output.
  • --stderr: Force all output to stderr.

Command: fetter scan

  • Description: Scan the environment to report on installed packages.
  • Subcommands
    • display: Show scan results in the terminal.
    • write: Save scan results to a file.
      • --output, -o <FILE>: Specify the output file.
      • --delimiter, -d <char>: Set the delimiter for the file (default: ,).

Command: fetter inspect

  • Description: Inspect all sites for code files runnable on interpreter startup.
  • Subcommands
    • display: Show inspect results in the terminal.
    • write: Save inspect results to a file.
      • --output, -o <FILE>: Specify the output file.
      • --delimiter, -d <char>: Set the delimiter for the file (default: ,).

Command: fetter search

  • Description: Search the environment to report on installed packages based on a pattern.
  • Options
    • --pattern, -p <STRING>: Specify a glob-like pattern to match packages.
    • --case: Enable case-sensitive pattern matching.
  • Subcommands
    • display: Show search results in the terminal.
    • write: Save search results to a file.
      • --output, -o <FILE>: Specify the output file.
      • --delimiter, -d <char>: Set the delimiter for the file (default: ,).

Command: fetter count

  • Description: Count discovered executables, sites, and packages.
  • Subcommands
    • display: Show count results in the terminal.
    • write: Save count results to a file.
      • --output, -o <FILE>: Specify the output file.
      • --delimiter, -d <char>: Set the delimiter for the file (default: ,).

Command: fetter derive

  • Description: Derive new requirements from discovered packages.
  • Options
    • --anchor, -a <BOUND>: Set the nature of the bound in the derived requirements. (Use a value from CliAnchor)
  • Subcommands
    • display: Show derived requirements in the terminal.
    • write: Save derived requirements to a file.
      • --output, -o <FILE>: Specify the output file.

Command: fetter validate

  • Description: Validate if packages conform to a specified validation target.
  • Options
    • --bound, -b <FILE>: Path or URL to the file containing bound requirements, which can be a requirements.txt, pyproject.toml or a lock file created by uv, poetry, pipenv, or pip-tools.
    • --bound-options <OPTIONS>: Names of additional optional dependency groups.
    • --ignore <OPTIONS>: Names of packages to be excluded from all evaluation.
    • --subset: Allow the observed packages to be a subset of the bound requirements.
    • --superset: Allow the observed packages to be a superset of the bound requirements.
  • Subcommands
    • display: Show validation results in the terminal.
      • --code, -c <INT>: Optionally specify and exit with an error code (default: 3).
    • json: Print validation results in JSON format.
    • write: Save validation results to a file.
      • --output, -o <FILE>: Specify the output file.
      • --delimiter, -d <char>: Set the delimiter for the file (default: ,).
    • exit: Return an exit code (0 for success, customizable for errors).
      • --code, -c <INT>: Specify the error code (default: 3).

Command: fetter site-install

  • Description: Install automatic validation checks on every Python run.
  • Options
    • --bound, -b <FILE>: Path or URL to the file containing bound requirements, which can be a requirements.txt, pyproject.toml or a lock file created by uv, poetry, pipenv, or pip-tools.
    • --bound-options <OPTIONS>: Names of additional optional dependency groups.
    • --ignore <OPTIONS>: Names of packages to be excluded from all evaluation.
    • --subset: Allow the observed packages to be a subset of the bound requirements.
    • --superset: Allow the observed packages to be a superset of the bound requirements.
  • Subcommands
    • warn: Configure site-install to print warnings on validation errors.
    • exit: Configure site-install to return an exit code on validation errors.
      • --code, -c <INT>: Specify the error code (default: 3).

Command: fetter site-uninstall

  • Description: Uninstall automatic validation checks.

Command: fetter audit

  • Description: Search for security vulnerabilities in packages via the OSV DB.
  • Options
    • --pattern, -p <STRING>: Specify a glob-like pattern to select packages (default: *).
    • --case: Enable case-sensitive pattern matching.
    • --cache-refresh: Ignore any OSV caches and re-fetch vulnerability details
    • --cvss: Filter vulnerabilities to those greater or equal to a provided CVSS score. If no argument is provided, the maximum is reported.
  • Subcommands
    • display: Show audit results in the terminal.
    • json: Print validation results in JSON format.
    • write: Save audit results to a file.
      • --output, -o <FILE>: Specify the output file.
      • --delimiter, -d <char>: Set the delimiter for the file (default: ,).
    • exit: Return an exit code (0 for success, customizable for errors).
      • --code, -c <INT>: Specify the error code (default: 3).

Command: fetter lookup-name

  • Description: Search for security vulnerabilities for a package name or dependency specification via the OSV DB.
  • Options
    • <NAME>: Provide a package name or dependency specification.
    • --limit <INT>: If the package does not specify a version, determine how many recent versions to audit.
    • --retain-passing: Show a record for all packages, even if the package has no vulnerabilities.
    • --cache-refresh: Ignore any OSV caches and re-fetch vulnerability details.
    • --cvss: Filter vulnerabilities to those greater or equal to a provided CVSS score. If no argument is provided, the maximum is reported.
  • Subcommands
    • display: Show lookup results in the terminal.
    • json: Print lookup results in JSON format.
    • write: Save lookup results to a file.
      • --output, -o <FILE>: Specify the output file.
      • --delimiter, -d <char>: Set the delimiter for the file (default: ,).
    • exit: Return an exit code (0 for success, customizable for errors).
      • --code, -c <INT>: Specify the error code (default: 3).

Command: fetter lookup-bound

  • Description: Search for security vulnerabilities for all packages in a bound requirements file via the OSV DB.
  • Options
    • <SOURCE>: Directory, file path, URL, or git repository from which to read bound requirements. The provided file can be requirements.txt, pyproject.toml or a lock file created by uv, poetry, pipenv, or pip-tools. If no argument is provided (or a directory is provided), the current directory is searched for a lock file, requirements.txt, or pyproject.toml.
    • --bound-options <OPTIONS>: Names of additional optional dependency groups.
    • --retain-passing: Show a record for all packages, even if the package has no vulnerabilities.
    • --cache-refresh: Ignore any OSV caches and re-fetch vulnerability details.
    • --cvss: Filter vulnerabilities to those greater or equal to a provided CVSS score. If no argument is provided, the maximum is reported.
  • Subcommands
    • display: Show lookup results in the terminal.
    • json: Print lookup results in JSON format.
    • write: Save lookup results to a file.
      • --output, -o <FILE>: Specify the output file.
      • --delimiter, -d <char>: Set the delimiter for the file (default: ,).
    • exit: Return an exit code (0 for success, customizable for errors).
      • --code, -c <INT>: Specify the error code (default: 3).

Command: fetter unpack-count

  • Description: Count all installed package artifacts.

  • Options

    • --pattern, -p <STRING>: Specify a glob-like pattern to select packages (default: *).
    • --case: Enable case-sensitive pattern matching.
  • Subcommands

    • display: Show artifact counts in the terminal.
    • write: Save artifact counts to a file.
      • --output, -o <FILE>: Specify the output file.
      • --delimiter, -d <char>: Set the delimiter for the file (default: ,).

Command: fetter unpack-files

  • Description: List the file names of all installed package artifacts.
  • Options
    • --pattern, -p <STRING>: Specify a glob-like pattern to select packages (default: *).
    • --case: Enable case-sensitive pattern matching.
  • Subcommands
    • display: Show artifact file names in the terminal.
    • write: Save artifact file names to a file.
      • --output, -o <FILE>: Specify the output file.
      • --delimiter, -d <char>: Set the delimiter for the file (default: ,).

Command: fetter purge-pattern

  • Description: Purge packages that match a specific pattern.
  • Options
    • --pattern, -p <STRING>: Specify a glob-like pattern to select packages (default: *).
    • --case: Enable case-sensitive pattern matching.

Command: fetter purge-invalid

  • Description: Purge packages that are invalid based on dependency specification.
  • Options
    • --bound, -b <FILE>: Path or URL to the file containing bound requirements, which can be a requirements.txt, pyproject.toml or a lock file created by uv, poetry, pipenv, or pip-tools.
    • --bound-options <OPTIONS>: Names of additional optional dependency groups.
    • --subset: Allow the observed packages to be a subset of the bound requirements.
    • --superset: Allow the observed packages to be a superset of the bound requirements.

What is New in Fetter

3.4.0

Testing and building on Python 3.14

3.3.0

Testing and building on Python 3.14

3.2.0

Extension to the public library interface.

3.1.0

Extended lookup-bound subcommand to, by default, search the current working directory for a bound requirements file; alternatively, a path to a project directory can now be provided.

3.0.0

Added inspect subcommand to display all code files runnable on interpreter startup.

Added lookup-name subcommand to display all vulnerabilities for a single package.

Added lookup-bound subcommand to display all vulnerabilities for all packages in bound requirements, which can be a requirements.txt, pyproject.toml or a lock file created by uv, poetry, pipenv, or pip-tools

2.9.0

Improvements to CacheConfig struct.

2.8.0

Extension to the public library interface.

2.7.0

Extension to the public library interface.

2.6.0

Added all-users command-line flag to expand default search to all users.

Added cache-directory command-line flag to specify cache directory.

2.5.0

Extension to the public library interface.

2.4.0

Extension to the public library interface.

2.3.0

Extension to the public library interface.

2.2.0

Extension to the public library interface.

2.1.0

Extension to the public library interface.

2.0.2

Updated cvss dependency.

2.0.1

Update for CI.

2.0.0

The audit command now features a --cvss flag to filter results be CVSS score.

The audit command now displays CVSS score, severity, and vector.

The --cache-duration parameter is now used to set the cache duration of vulnerabilities per package obtained from the OSV DB.

The audit command is now robust to requests with no packages.

The monitor_scan command now properly identifies duplicated scans.

The monitor_scan command now defaults to a single execution with a --period of zero.

1.22.0

Extension to the public library interface.

1.21.0

Extension to the public library interface.

1.20.0

Added caching of OSV vulnerability data.

Added --cache-refresh parameter to audit command.

Implemented minimization of file path usage in ScanFS JSON representation.

1.19.0

Extension to the public library interface.

1.18.0

Extension to the public library interface.

1.17.0

Extension to the public library interface.

1.16.0

Added tenant argument to monitor-scan.

1.15.0

Extension to the public library interface.

1.14.0

Extension to the public library interface.

1.13.0

SystemTag now properly captures hostname and OS version on MacOS.

1.12.0

Extension to the public library interface.

1.11.0

Extension to the public library interface.

1.10.0

Extension to the public library interface.

1.9.0

Environment markers in Pipfile.lock files are now imported.

Support for lock files created by Pixi.

Added the exit subcommand to the audit command.

Implemented SystemTag

Implemented the monitor-scan command.

1.8.0

Added the --ignore parameter to site-install.

Added the --stderr flag to optionally divert all output to stderr.

Updated site-install to always use --stderr.

1.7.0

Added the --ignore parameter to validate to permit bypassing validation of specified packages. Defaults to ignore pip.

1.6.0

Better file path validation and error reporting.

Limit site-install and site-uninstall to only operate on single-Python environment selections.

Support for nearly all dependency environment markers.

1.5.0

Extended support for lock files provided to --bound to include uv.lock, poetry.lock, Pipfile.lock, as well as lock files produced by uv pip compile and pip-tools.

Improved loading of --bound files sourced from a git repository to find and load various lock file formats as well as pyproject.toml.

Improved loading of --bound files sourced from a URL to support various lock file formats as well as pyproject.toml.

1.4.0

Improved site-install to run in the same parent Python process.

Added code option to display to only optionally return an error code.

1.3.0

Implemented site-install to permit installation of package validation on every Python run.

Implemented site-uninstall to remove installation of package validation.

Added log option to display logging information.

Added support for poetry-style dependency specifications with ^ and ~.

Usage of -S in sub-processed Python calls for better isolation and performance.

1.2.0

Improvements to path expansion.

Implemented cache-duration to permit creating and using a locally stored JSON scan cache for the provided duration.

1.1.0

Implemented bound-options to permit selecting optional dependencies in pyproject.toml files.

1.0.0

Implemented home-path display abbreviation with ~.

Handle combining multiple DepSpec in producing DepManifest.

Added --pattern and --case options to audit.

Added support for creating DepManifest from pyproject.toml.

Permit DepManifest to be retrieved from a URL.

0.13.0

All subcommands now have their output sub-subcommands set to display by default.

The validate and audit subcommands now return a non-zero exit code when items are found.

The CLI now exits for unsupported platforms.

0.12.0

Extended validate and audit commands to return a non-zero error code if display prints records.

0.11.0

Implemented variable-width and colored terminal displays.

Implemented terminal spinner for long-running commands.

Added purge-invalid and purge-pattern commands.

Split unpack command into unpack-count and unpack-files.

Added support to specify --bound with a git repository.

0.10.0

Added --user-site flag to force inclusion of user site packages; otherwise, user site packages are only included if ENABLE_USER_SITE is set.

Reimplemented display and delimited table outputs to use a generic trait implementation.

0.9.0

Support --requirement in requirements files.

0.8.0

Package and DepSpec comparisons now remove user.

Package and DepSpec comparisons now accept matching either on revision or commit_id.

URLs are now shown in DepSpec displays.

Delimited file output no longer pads spaces.

0.7.0

Validate display now shows paths properly.

Updated validate json output to terminate line and flush buffer.

0.6.0

Package and dependency keys are case insensitive.

Improved URL validation between dependency and package by removing user components.

Improved validation JSON output to provided labelled objects.

Improved valiation output to show sorted missing packages.

Renamed validation explain values.

Implemented support for nested requirements.txt.

0.5.0

Implemented search command with basic wildcard matching.

Implemented Arc-wrapped PathBuf for sharable site paths.

Added explanation column to validation results.

Added support for both --subset and --superset validations.

Implemented ValidationDigest for simplified JSON serialization.

Added JSON CLI output option for validation results.

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

fetter-3.4.0.tar.gz (40.4 kB view details)

Uploaded Source

Built Distributions

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

fetter-3.4.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

fetter-3.4.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ s390x

fetter-3.4.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ppc64le

fetter-3.4.0-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl (2.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ i686

fetter-3.4.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARMv7l

fetter-3.4.0-cp314-cp314-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

fetter-3.4.0-cp314-cp314-macosx_10_12_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

fetter-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

fetter-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ s390x

fetter-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ppc64le

fetter-3.4.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (2.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

fetter-3.4.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARMv7l

fetter-3.4.0-cp313-cp313-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

fetter-3.4.0-cp313-cp313-macosx_10_12_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

fetter-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

fetter-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ s390x

fetter-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64le

fetter-3.4.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (2.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

fetter-3.4.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARMv7l

fetter-3.4.0-cp312-cp312-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

fetter-3.4.0-cp312-cp312-macosx_10_12_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

fetter-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

fetter-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390x

fetter-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

fetter-3.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (2.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

fetter-3.4.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARMv7l

fetter-3.4.0-cp311-cp311-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

fetter-3.4.0-cp311-cp311-macosx_10_12_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

fetter-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

fetter-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390x

fetter-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (3.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64le

fetter-3.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (2.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

fetter-3.4.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARMv7l

fetter-3.4.0-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

fetter-3.4.0-cp310-cp310-macosx_10_12_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file fetter-3.4.0.tar.gz.

File metadata

  • Download URL: fetter-3.4.0.tar.gz
  • Upload date:
  • Size: 40.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.13.3

File hashes

Hashes for fetter-3.4.0.tar.gz
Algorithm Hash digest
SHA256 b00fc81324b4309b434126f76c51e95bd1c4152a0184acd566e69a3206d82835
MD5 172c6a2699d4a19d6f110ff1ed244659
BLAKE2b-256 1963688d38bce4104afaf6cc896a286b337791f3394e7eb282abcc275e6d3c22

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 00bef364d77d60ed7597bec5219b2f1709bc81d4917f31b7d591541ddc65a742
MD5 ab20c81f03a48d3a92b29a647fff1a28
BLAKE2b-256 8e5c2b522268a82aa4fc45707934e43957ac2e285b79b7c962d715edac9ec285

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 ed963d848904d9312ed6495e67ae8e9357c7ab70e4c555d521cc2b1667ece0f8
MD5 64fddb233b90eafd6a62afd9d913a69e
BLAKE2b-256 9a013b07afce026c135d3e49d855124eaecf06524b7a7fb98c50e2d8a792d30c

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 e27c21730ff4f8f30a690bca19ce72e0d5f0f06f92708f53bf9744452c176dfe
MD5 6c5de2c25623f28ace18819691a08901
BLAKE2b-256 34db35672f13806a5a7fb9c3fdf92d15857b85604452fc8523e8c13d460038e2

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bc3ce5512785be62eff902e91b7588dbaca43bdb0cd4149772d73f1dd7256641
MD5 ed19bc9c28f0a82af67858d36da6c31e
BLAKE2b-256 4dff8f5a3548146acb14c1cdcdced2bc59b17ebaa53ca017e2c774df4b28df8a

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 53f0c2ac88b77c6143b26237763e0767ae14d0ca990a4de533f053beea6a6166
MD5 76e5eb9244567c328f36a3e1c62a5429
BLAKE2b-256 996e6fbb69071bae1690ffac7249ed38b9934c143b2c9f86daa040a8b79c0642

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 36d69cbed0d1b2e548b954fad89a2b4f2066efa8dfc2c4c00c848f4780b9bf24
MD5 733ff53759f0e5f508d69ffbdef03954
BLAKE2b-256 eeec32679bef72f6d71d611d66da281b4a21ecb545c9b74b18032a7a20fd3030

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 993b31066ca65212a0e26725825f92da7218354c9201266e7fb305ef74efa084
MD5 3ed7c8bc98d1f5e205675db75ee3f80e
BLAKE2b-256 9af0027a93a1f9262134deedfe5126114eac7bdf9a7e62600771f45f6675b2b3

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9781dadb5a5bdca3a8ff8cbb4b602f52b56b9f377aef725e0dc322404beef1ff
MD5 8cb19ea23acad4b102588e2edab692e0
BLAKE2b-256 68982b0ded37e2c0ee6ba916d2fd9b21661c10e4659413813cba0f0af7a253ae

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 1c3f353a8b6c3228799033c6a28156b8f876d20d59fa8ff2be863374d61f57c6
MD5 47c1ba553d4ac0a93048282e85def2d5
BLAKE2b-256 cb46abdb2820e39ce32676f146695557d372051cd7cb9c92d4e900e41e901a90

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 73a790cdd4647d1a872ea9d78be6c92eabd650679d9f9ca558fd5827b463ea7a
MD5 86a7ab65c1ba747f50fc2fb3c0af8ec8
BLAKE2b-256 55173f72a7d4b824422d068abc92235640b4b453aede04fab27d235f2e5dd1d4

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 13f6f495064071280b14dd774f4f7d892514bc20bed764ef0ac88abb25483daf
MD5 7f3ba2c9f18e4db017cfd28a023d1697
BLAKE2b-256 1c262d46fd4e527d3321f58a402d00ade55db66c745fd1671aed9ca338ce321a

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 e29594341985796573aeb81c5f4b061cdb440d230a6d007af4bc52f61ceb7ab8
MD5 36d1af72118991401e25afc32e660aa9
BLAKE2b-256 c2b7022b34a184a0d0e79eda4864cbb9da8106e8c95ae8f88958d84b94b930b4

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7a7f9a257890997b63a6c860dabf5c48346c34f4b4317c3ee930c78295d769b1
MD5 11143f7c9a4109f92f1bf4874968b9d8
BLAKE2b-256 9d995a2c4f365a33968e804d8406d56ad008a3c150354cafc51f058de0ba4e90

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 007ac3d0390bec4e95afeb44994c6b774a89aac2073eb2459ef01bc25c39a99c
MD5 ef706edcc7e295c43e85041fed99e1a9
BLAKE2b-256 067aac3200be8a125d1c613970f07081230033cc63e5c69eb3017f03a169ec31

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6ce159da25cc5d40d55614514a6bebf1b62c16f4cdc59c0a38608f9e2ce85d0d
MD5 2f55b737edcfb1450cc6fe99ee9c08f9
BLAKE2b-256 643f05cc6715bfdf90b9baf12108333bdb129d26c36997c8fb757d6b82a6c5e7

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 3d5e526953079cfb0cc9307cdaa2dd257d63fbcd443fc00c1af22c871fc253ac
MD5 8ac1e7ad67b7d10af291825e7bdf2c86
BLAKE2b-256 8f81869a6e46e820e3a92c4c3de446639dcdfbbe55bbf425e3d71357f1ee0970

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 69cdb93d3d6a6e657694af3d72afe9d318c407993e5601e3d98724e3a3f82635
MD5 7ffb3571f3ac86f8e169ba77be8871d3
BLAKE2b-256 8cfcddd5ed4d152aa7a1dc6f2b46db1ceb211245d0e7bef85528895ab229cb9a

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0817b6db5b27dd60d96483ffa95f2d76f1d6513f0012f4dc4376309216d1ce89
MD5 61e0b234283d5e985fa153404627ddd9
BLAKE2b-256 d623065af08c6b882b6be14a2b405746c22be09fa0e73ecb5d3965781a7aee4b

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 924423712357d9e339739a956a1e8816010cb29097b1647d2490712044db098c
MD5 b06e6e7f86e9bbb88ccf2f8179736fc6
BLAKE2b-256 7ca062127f7242918c8d209b98a3ef6ca19dd853f71800e198edb3ce705c2849

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 29febfa7a9ece9ef3586ddcb7a4ebc54b297b5e6dad50eb00a4c3045eb609e36
MD5 980aed114ae57496ed5dff6c9b363378
BLAKE2b-256 a77f2eb2e66fae7b133df388e1cc82feec3f886cc114a766e0e249a756d92e94

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6c7c3f15286e2d443ba9e7c3be15a552f34ee925284126bea615d395d0bd5b24
MD5 22f35b9a6620d66c52873c3b69aaf3e4
BLAKE2b-256 57244486cb34704db1265cf3a03a88d23fe8d2f6566264ba4fd27f47f687db47

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2eaf8f67502ed35086a50ffcdc4a0cf8320f5a316426e07102f05560ded62368
MD5 348f87735293811735b127282c2de655
BLAKE2b-256 63e5e5536234c24ac2011c811b26d979b98be799218d32bb3633e94405ab518d

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 f547974b694b1d569a529aa0f3a852ec86c1965e8f785218ff4296238fabaa5f
MD5 392aaaf3daef744e171e636c2e79484a
BLAKE2b-256 b0398093478f2304f0890ab92e3ac492cb23c31d0d1442fcc9728f91c7b4b6d7

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 34772381a2e9923950b17a95183a90e896c2cd84a97398fd5a0c99b796eef02e
MD5 ebdd295be52b099ad0b90cc0124ca92c
BLAKE2b-256 324201f93032a852be34e6231e1d4e22b49f497ab6849e74b5e06e7915fc9229

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d72b303153c0e9b81dbd11fb775db47e770248388dc761e618dd8f5c5a6de7f9
MD5 261f8d0b1a82f1dd2358b2ac7e007b34
BLAKE2b-256 8cda47f0f7c87b61f808de9a8648b59656e2c54e58adb6a4f6535eb0e3e7ffc5

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 f5bd1c3e3863f0ede08c1bf737de1ab7cceae8698619de33b604a715da7acbdf
MD5 7866b534191e68f3832c96056e3add0d
BLAKE2b-256 0bbd00a0ad6d2762efccecbc51485f002bc6a0025e8ebd3b74a23d37e27a00f3

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a9a91fd317d1b0e2584098d69eed36762a9bde72a92a3554211a9075ed90942c
MD5 c99bbbe2fa55c2444e888bda1b02996d
BLAKE2b-256 713a699b60261503d82fa415f0f4d51571b03b964ea911097d062102c5a29e59

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c8e42e6c0cafa3eda5097479daa0641b85d7a238428e84f2c4841d90e86aa67d
MD5 4a81f4b91fefa71569edebe77e3363b1
BLAKE2b-256 9dc985efb8c35f83be935da479996fa582e51dec2a2847938a90ca88b9a61984

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2e724b538043ea4cd24b084eb1e1c5a62a8c6df09db9cf56075164f0c9de60e2
MD5 b31a723c8995b4a9cabfd9c027ed9451
BLAKE2b-256 d40ce60393214b48f1c04eb99a71c6de0cad4a497486ece88439e8dce3780058

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 1f5daf1a3425ba8b6fab66dc6443fea51c780f704f7630da665726b43170fa3a
MD5 833054227b2878379772383eabb7cdc7
BLAKE2b-256 8f310fbf11135d19f650e80b858cedf7fb020e6921c556147fbde66ce01ea2e4

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 a8531b58609c88bf6e734699a93ec195a633c2afda251ff673b5e16865ab5430
MD5 871a2e3b3359449af10604f986262f27
BLAKE2b-256 fae0556944ab85e2cced4e38da864b2d4476007c1e210a9a5d2f0ca9627de18b

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f4d807113d71be839a30e257fe78eecdb6b82cc4a644cd5353bc88b5be8d7866
MD5 ee0f2746d2226a0528103183805b2172
BLAKE2b-256 7d1b09f1973c32baa6bf2831219c079c6cdd2db34dd16abf4f88241ec9a14b1e

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 25243133a12a3cdbda93962f38535d63685020cfaf00deaeb1bb3a279d67ba88
MD5 fa0c88be07974dee791242afc4ca1a8d
BLAKE2b-256 a8201fbf3e23258d3fcfc5dbe97f9afa1db851731c10f12c76b8aeae66a76f24

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ac2756eb09c311c6ded56245a1d34b64ae3bf353b3894dedfe9ee2de32d9e606
MD5 b4465e6db206a9a5fa4599dd1f18955d
BLAKE2b-256 85b3fa6d097f027f3b303e13478452a2fbd143f28f45edf0538eb8087ee1fdbc

See more details on using hashes here.

File details

Details for the file fetter-3.4.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fetter-3.4.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2b911aec3898611dde0f21aaabe5019fd82f6e42ad3fc084fa9e07a0c92bbc62
MD5 2cbc5355ae911f2caffdd6aa3906cfd1
BLAKE2b-256 fb79ea7bc4b18d638b14d281a5e606411b6f238fed0af67d75b4c48bc860f52b

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