Closed Avasam closed 3 months ago
This change has led to a lot of work. I spent the full day today working through the failures introduced in my projects, and I'm only about 1/3 through the failures. It's a lot of work to identify upstream issues and associate the exceptions with those. See pmxbot/pmxbot, importlib_metadata, jaraco.abode, jaraco.develop for examples of the changes necessary. I started to fatigue and just lump exceptions without upstream issues (https://github.com/jaraco/keyring/commit/5cd38280f609fc4605f2371aa2d4e170c2d64e1b).
There have been a couple of failures also due to issues with improper merges, but most of the issues are relating to the mypy changes.
This work is not good use of my time.
@Avasam Would you be willing to work through the remaining failing projects (excluding coherent.*) and devise PRs to fix those? Or can you propose some other way to deal with the fallout from this in a less labor-intensive way?
Is there a specific kind of issue you're hitting more often ? Maybe there's some config we can add to be even more lenient on a project's first pass.
For instance, it seems a lot of your issues are related to missing stubs / untyped dependencies. Maybe we should add
# Enable import-untyped if you'd like to be notified about using untyped dependencies or missing stubs packages
# You can leave it disabled if your package isn't publicly typed / `py.typed`
disable_error_code = import-untyped
until the ecosystem is further along. Namely the jaraco
packages. (that's why I originally ignored that issue from jaraco.*
in setuptools)
If a package doesn't yet intend to promote itself as py.typed
, I don't think it needs to care about the import-untyped
error as much (it matters once your typed API interacts with one of your dependencies' types). Whilst still having some basic type-checking benefits.
I also don't think that running around after untyped dependencies is the best use of your time. Especially not this early in type-checking adoption. Packages getting typed will be a slow trickle.
If you get any issue with stubs in typeshed, I can prioritize your blockers there.
win32ctypes
, win32cred
and pywintypes
in keyring all come from types-pywin32
https://github.com/jaraco/jaraco.abode/blob/8843f360ee5d9bc1afb1bdb3119157addb4aaf06/jaraco/abode/config.py#L4C7-L4C19 is a mypy issue (https://github.com/python/mypy/issues/10962) although that can be worked around in platformdirs
itself. Edit: I opened https://github.com/platformdirs/platformdirs/pull/295
I can go through https://jaraco.com/projects/ and create PRs if you'd like. Although my next two days are going to be quite occupied. This weekend I'd have time for.
Rather that continue the conversation here, I've filed #143 to track the effort.
Includes the latest changes from setuptools (including https://github.com/pypa/setuptools/pull/4526) that I believe are applicable to all skeleton-based projects.