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.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.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.3.0-cp313-cp313-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

fetter-3.3.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.3.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.3.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.3.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.3.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.3.0-cp312-cp312-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

fetter-3.3.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.3.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.3.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.3.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.3.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.3.0-cp311-cp311-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

fetter-3.3.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.3.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.3.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.3.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.3.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.3.0-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.12+ x86-64

fetter-3.3.0-cp39-cp39-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

fetter-3.3.0-cp39-cp39-macosx_10_12_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: fetter-3.3.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.3.0.tar.gz
Algorithm Hash digest
SHA256 5ed18d48b24f6c9ec9c162c1a502ddf601be27b666312316e95c4c050e059fd1
MD5 3de1834d2f88f603511c927a831d9e3b
BLAKE2b-256 0b0d2b18bdb310819c31bd0230d48ffbe317a37cc93afeb1c215a14acddea900

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 748fc886254f3aceb6a3d3ab19a139ab68546e98318b9dd16026716447129f6b
MD5 30a9067e70104e1dcdbfcd31f1bacced
BLAKE2b-256 ae1c9bece8530cb3872b52d61643d40b1f0710dd5db40b29a211f282bb70ed1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 fc49d22345a55cc525c6f668c9059af78f35fcb22d00930f5ace6b8a97b86c6c
MD5 61a24e791ddd757343efb76144de2f03
BLAKE2b-256 5d9cfd6af9630b2465bf9e9fa9932b6fa53c8425d126df8db37207037924f2c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 0b82b8792030ddb3341ba8e5bcc48378f2fae638505f4f1c68a4a4c4bb66aa11
MD5 f51c074b8824ed9383af5fa98b6e51a2
BLAKE2b-256 bd0075a27a965020f0bd9c7920a4c7b3f9c40202dbf56c37779b0728f481d364

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a2328327d511189bb35fd8523adc42253221db28785c77fefdb1ff2468807c29
MD5 908b232ad3584a6a0d7e0eb15173cf6f
BLAKE2b-256 0126e99bfc042b30076382c93d91f26669a3b20bc79b08b7ead652087b17b785

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 af26b78abc4b5c9c81862a53ab6acdcde83ae1f1750fb948191f2df1ab0bf0eb
MD5 6e5e1faf80a7808f5a425e975cc9ac26
BLAKE2b-256 b810dfe5a450f7f7a14e722f35bf7e0b5e197792c1732d8d2ff13d713a042d01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 314ae16ec381c26f05a3eb2dc660d777c3de97fdd6379208898e20ce758a667a
MD5 fe076facf1007ae5c63301168c8bbb06
BLAKE2b-256 e6a18c76a92e66128dafc3699464bead2b06de40b59c60d92bf05a72dae195b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 c00b99484bec1a0a1d3c94fbd6d93c64e19b0115e8b1550269b35f2dffc88eca
MD5 3ce25ecdc31396b92b1346e8c06f7346
BLAKE2b-256 e060e104a78cafe8d77672b1fc27c33097cdde6d173c92319f67b3dfa93af83d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 554201f521cca89a9796624185324e09ae5e904c39ba8cf129dbafddec962e2f
MD5 3d9b45aca5a57261a06adf426226a8dd
BLAKE2b-256 934c44af39e5230a58210638fffd5d586ff67e003c4013e959338bb1800341a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a03c53b1c85925959905a3ba0bdb488ff038da68ccd92b64bf3db16a4b50abeb
MD5 79069e211386a15483ff4555cde591ca
BLAKE2b-256 699841cf7446193809b61ddb7ff41133094b547687d2a524d159f4c7d5975cf2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 427aca18796e96779d03b29eca87257f3faa29682f55607205f547f77d746b6c
MD5 dcabea757b0436be690ca0be147e6b33
BLAKE2b-256 d767b20e2a9dda3b6402880c68b0dafbaadbcc0013c95e6b922e6adcf5aa5e1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4730faead7fbb3371ddc0c18fe846d51269fe024025bfeac5da3a312dc7f4180
MD5 6e5a1dc24a8271e05ce7cbcec8e2d2dc
BLAKE2b-256 c69f18588ebbf7e477dfc28af9fa5e8c5bd7ca0cebd967c752b8da2d71dd3aa7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6b690c641c62f140873e599a40f6133983e727607bf0db7d063f3dcd70a369a4
MD5 b95c320de11664788a20a1fc68ebe745
BLAKE2b-256 9750b91d199b5477b495b668893f6403971cb07a0e2e844c33f7bad8be385610

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 55920ae6120e83240852dcef0d7709acf695f3d980c7446a0879bb20d6eeb213
MD5 48a85cc62744c31b99effcea1a8b7c44
BLAKE2b-256 1e5d1e363cd30f91f119810870d2eb7994922fde66429dbe8d8ddbba822ec3da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 d678494de0b56b6e35f9d0d41024eacfb4192ad5e60e84917ed8385660dc17cb
MD5 8648d6fcededf7a8a9935b97cd94e3b9
BLAKE2b-256 2a211b2b3256b08dd2a897cf6f155839ccdf2a19a72f9f59e0a6e56b1d7804d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 0dc0d828768dcfe7ad1c3a87dca3fa2862f42e4369933fec92a446dd64fffaa3
MD5 4233a5e828af611cfa8193f1cdf32eb5
BLAKE2b-256 549d9d32dcc27c32807eb806370932d8dc5c158dd9ce203518534db2db1f0c9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 971446f261dcf1dd85ea2d29708fdf989b5fc070bb89d041b1a3dd6479e0da5b
MD5 802a02e1c53b1cc92ae65ba0551d459d
BLAKE2b-256 1ed4178a548cd5e45e32d2f71bbe63e3998b5a947eddb512aeb453038a57d0b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 2c624160f4ce2a498c5a21751471800bf9dc50558b7a2745808f9a5ca72cf713
MD5 bcf63dc40a430ba9abf09aaf652a853b
BLAKE2b-256 f9a27fd0608614bab61ee8e9023e3be47a744d2ac53795a1617616e4c4fd3242

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f77c4b746162f09b765abb98d2ba3359aecc041a5c660886ff4b2328448442cf
MD5 c255d9d03cfb65095803334297159f23
BLAKE2b-256 64d6c8ff1306dccff4ff1349ebfbbe75f48c9e7a9dce7824c55743cb9989a41e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a5a6e40d7b73621c4f2a6d911851a8e5ea185517dec2eaeb35742daf7dea05e6
MD5 5fd4bf77cd804c72e2cbbeebf2f0d867
BLAKE2b-256 fcc74e8153ad77ce0fc82e2a4d7056562a49c04722f001bf34f8bc77967183b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fbf3925ede102cfbe4b32ce740e35fd1be8167463930d180a5c0b3900ff73bf7
MD5 491492025f14c6b3a5a09e53f157494a
BLAKE2b-256 a436d152afc379483d6ac5c8a7fd099fc9977fba283df43209b65298d03a8e66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 61d79407e5c01b74dfdb65e3d45c0c605cbb0aecc8b2f9bff45e2d1d04e46dd3
MD5 a514fa6600eebeba6d40f864e2be640e
BLAKE2b-256 ef996bdb7ff779e5bf4216aa95f8e3c903dc00530d757a87169f4a8ff768f808

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 4da2fa5da4005bf99d77206b3a4633ed7d5f08c3ee6f1b9d8c199a99fe205860
MD5 f97bf1956d34a87683ed46c75931ded9
BLAKE2b-256 7543ea0e307d0e756aab708b479e2143cc97ad1f87ac8dc5d21e9074874b93b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 93b41084e2969ad86c6904980e28bf1b3b1c503368b836c9c7c410595b68b9b9
MD5 b47db16ef3b5212e91dbb7dd670f2249
BLAKE2b-256 f55de291bc7a641529b10070596fb13d2db2636b899059ad085894ef1739dde7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ec218abcc08ce10575c2d2fc8b3c0c185ad60c62b0c8b0f7d8fe32f23121eaf7
MD5 fa9d4e4c378437f96431abd72af7c560
BLAKE2b-256 11e4007574c4abd636797191bad3e3fb46210d87fcd7d64873f54fb08769f8d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cac2eaafd2267f70a8fb53d5d652db1190ede7e4806bd60c1d9ceacbd65bb25b
MD5 c1866b154c2569f96c5437ce53254782
BLAKE2b-256 798f8bc024faf860245434a57beed776d1791376b60db5f7802280f1a94bc2c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f46fc8dd08efb1455ec2a4aec807f4d1933d41498757aacf907c2a37979c3622
MD5 c88994d5c57a8764f8e07d3cbd1cc35e
BLAKE2b-256 0ef9d59fe3cd2683aa27476fa53afefddb6734c32184cf76f7ae163db7e31642

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0f00d847cbb3772829a3eab70ad94ac81e725c49f29626dc1e0a112479e076fb
MD5 28ae4d7e492c93e9fe2d739288f54e30
BLAKE2b-256 13b9ed0a0619a927d3b6a522dbde7c80489f54ff1beaf1957165603f7868eec4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 c2725d74f9536bf78b12f413c21b9fb35d0967406e7d0915f2c29eff154c2e68
MD5 6d32c891f139ee698d1555d508480dea
BLAKE2b-256 4ff39929a85da58eb0be72027232676362793eb46437e16d65a6147989c5aaec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 6504176ca1830add810a8d677a74a80c837e2844b3cb5682ebcf5f08a7bcbdbb
MD5 9c61ea3ed8cf0ed412c7831bbf8c4ee2
BLAKE2b-256 3407be9a5395263f749f5b539d111999bd30509538211f7e77982dc17b33913a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1dc2a48219207d567e800d9a7520e243b73fda6f6ae22801ce57706dfe08a6b1
MD5 1d51b5934fd4fb4de0b50efabf143422
BLAKE2b-256 dca0101bde14e6c67fb554c64d5cb9669ea031a794b5d358a596903f3e814f86

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 d20dd960082906aa793d8a34572d49c87eb722ba2e3fadd7a478e14a18b9d6dd
MD5 75400650a725da24f58873df9d921b3f
BLAKE2b-256 70027d43b40df3191d9a8eed167c1dc2c55739ff8fac29829dee45e5e8ded53a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aa8cf3b283e75bc055433387e31550b20c9a61a707a46f5818a0e72096bee637
MD5 84b873d17e1fe7b72f6431539065109f
BLAKE2b-256 90c04d68fc35d47e98d4d05d91a2b63bf53e2baa90fb77d1823750dac432603d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for fetter-3.3.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 aaa1ae2f6a388ec93a56dcf931f1ce89cbc2649c403320598de40a01ab62ae76
MD5 8b07766b0f19e6b00fe05d7dba8dec2e
BLAKE2b-256 8ceba3f68edd0236210458d0cab972750df236d02e4aee81ac9a9ccb151841d4

See more details on using hashes here.

File details

Details for the file fetter-3.3.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for fetter-3.3.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 638c6acd2ba83ffe92f9ac833793990b7c681fc527a2f74caed5edb2597327b1
MD5 551b037215639bdd6706abcc1bb2a63a
BLAKE2b-256 e94cbfd93ff909537fe6b3c636825c2311df49b99bf17df76b1b1765986170e8

See more details on using hashes here.

File details

Details for the file fetter-3.3.0-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for fetter-3.3.0-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ab4de23230056d6452b6a3bd81489467c2badebc2a44e89b52857a0248fe9980
MD5 80a7b44292e0611d075c958425ce94fa
BLAKE2b-256 99328181d0879dc1fbec638ca7629fffb6d31d27ff94d4e90b0446db2189b244

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