Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.22.1 wheel lacks typing stubs #72

Open
mjpieters opened this issue Jan 20, 2024 · 2 comments
Open

0.22.1 wheel lacks typing stubs #72

mjpieters opened this issue Jan 20, 2024 · 2 comments

Comments

@mjpieters
Copy link
Contributor

mjpieters commented Jan 20, 2024

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)

@Felixoid
Copy link

Felixoid commented Jun 4, 2024

for some reason, the pip install --force-reinstall --no-binary thefuzz --no-deps 'thefuzz==0.22.1 doesn't work for me =\

@damymetzke
Copy link

I have locally verified the cause. Setuptools is pinned to "68.2.2", which doesn't include type information in the wheel by default. Pinning it to the latest version "70.0.0" fixes the issue. A fix as soon as possible would be appreciated, as this is causing annoyances in a CI pipeline I manage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants