Skip to content

0.22.1 wheel lacks typing stubs #72

Description

@mjpieters

The tarball for version 0.22.1 on PyPI includes the typing stub information now:

$ curl -LO https://files.pythonhosted.org/packages/81/4b/d3eb25831590d6d7d38c2f2e3561d3ba41d490dc89cd91d9e65e7c812508/thefuzz-0.22.1.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
$ tar tzvf thefuzz-0.22.1.tar.gz
drwxr-xr-x  0 johndebs staff       0 19 Jan 19:17 thefuzz-0.22.1/
-rw-r--r--  0 johndebs staff   20810 21 Sep 18:25 thefuzz-0.22.1/CHANGES.rst
-rw-r--r--  0 johndebs staff    1064 30 Oct 15:13 thefuzz-0.22.1/LICENSE.txt
-rw-r--r--  0 johndebs staff      52 21 Sep 18:25 thefuzz-0.22.1/MANIFEST.in
-rw-r--r--  0 johndebs staff    3859 19 Jan 19:17 thefuzz-0.22.1/PKG-INFO
-rw-r--r--  0 johndebs staff    3086 19 Jan 19:16 thefuzz-0.22.1/README.rst
-rw-r--r--  0 johndebs staff     186 30 Oct 15:13 thefuzz-0.22.1/requirements.txt
-rw-r--r--  0 johndebs staff      38 19 Jan 19:17 thefuzz-0.22.1/setup.cfg
-rw-r--r--  0 johndebs staff    1239 30 Oct 19:39 thefuzz-0.22.1/setup.py
-rw-r--r--  0 johndebs staff   18483 21 Sep 18:25 thefuzz-0.22.1/test_thefuzz.py
drwxr-xr-x  0 johndebs staff       0 19 Jan 19:17 thefuzz-0.22.1/thefuzz/
-rw-r--r--  0 johndebs staff      23 30 Oct 19:39 thefuzz-0.22.1/thefuzz/__init__.py
-rw-r--r--  0 johndebs staff    5058 21 Sep 18:25 thefuzz-0.22.1/thefuzz/fuzz.py
-rw-r--r--  0 johndebs staff     830 21 Sep 18:25 thefuzz-0.22.1/thefuzz/fuzz.pyi
-rw-r--r--  0 johndebs staff   11752 21 Sep 18:25 thefuzz-0.22.1/thefuzz/process.py
-rw-r--r--  0 johndebs staff     705 21 Sep 18:25 thefuzz-0.22.1/thefuzz/process.pyi
-rw-r--r--  0 johndebs staff       1 21 Sep 18:25 thefuzz-0.22.1/thefuzz/py.typed
-rw-r--r--  0 johndebs staff     509 21 Sep 18:25 thefuzz-0.22.1/thefuzz/utils.py
-rw-r--r--  0 johndebs staff      98 21 Sep 18:25 thefuzz-0.22.1/thefuzz/utils.pyi
drwxr-xr-x  0 johndebs staff       0 19 Jan 19:17 thefuzz-0.22.1/thefuzz.egg-info/
-rw-r--r--  0 johndebs staff    3859 19 Jan 19:17 thefuzz-0.22.1/thefuzz.egg-info/PKG-INFO
-rw-r--r--  0 johndebs staff     412 19 Jan 19:17 thefuzz-0.22.1/thefuzz.egg-info/SOURCES.txt
-rw-r--r--  0 johndebs staff       1 19 Jan 19:17 thefuzz-0.22.1/thefuzz.egg-info/dependency_links.txt
-rw-r--r--  0 johndebs staff      35 19 Jan 19:17 thefuzz-0.22.1/thefuzz.egg-info/requires.txt
-rw-r--r--  0 johndebs staff       8 19 Jan 19:17 thefuzz-0.22.1/thefuzz.egg-info/top_level.txt
-rw-r--r--  0 johndebs staff       1 16 Jan 14:17 thefuzz-0.22.1/thefuzz.egg-info/zip-safe

However, the wheel on PyPI does not include these:

$ curl -LO https://files.pythonhosted.org/packages/82/4f/1695e70ceb3604f19eda9908e289c687ea81c4fecef4d90a9d1d0f2f7ae9/thefuzz-0.22.1-py3-none-any.whl
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  8245  100  8245    0     0  90604      0 --:--:-- --:--:-- --:--:-- 97000
$ unzip -l thefuzz-0.22.1-py3-none-any.whl
Archive:  thefuzz-0.22.1-py3-none-any.whl
  Length      Date    Time    Name
---------  ---------- -----   ----
       23  10-30-2023 19:39   thefuzz/__init__.py
     5058  09-21-2023 17:25   thefuzz/fuzz.py
    11752  09-21-2023 17:25   thefuzz/process.py
      509  09-21-2023 17:25   thefuzz/utils.py
     1064  01-19-2024 19:17   thefuzz-0.22.1.dist-info/LICENSE.txt
     3899  01-19-2024 19:17   thefuzz-0.22.1.dist-info/METADATA
       92  01-19-2024 19:17   thefuzz-0.22.1.dist-info/WHEEL
        8  01-19-2024 19:17   thefuzz-0.22.1.dist-info/top_level.txt
        1  01-16-2024 14:17   thefuzz-0.22.1.dist-info/zip-safe
      775  01-19-2024 19:17   thefuzz-0.22.1.dist-info/RECORD
---------                     -------
    23181                     10 files

Can this please be fixed?

For now, the work-around is to force PIP to install from the tarball; the following command assumes that the dependencies are already installed correctly, it only re-installs thefuzz from the tarball to build a cached wheel with typing stubs:

pip install --force-reinstall --no-binary thefuzz --no-deps 'thefuzz==0.22.1'

To verify the stubs are now installed you can use:

python -c 'from importlib.resources import files;print(*(f.name for f in files("thefuzz").iterdir() if f.suffix in (".pyi", ".typed")), sep="\n")'

This should print out:

fuzz.pyi
process.pyi
py.typed
utils.pyi

(moved here from #67 for visibility)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions