Skip to content

[stubsabot] Potential issues with outdated or unsupported packages #14706

@donBarbos

Description

@donBarbos

When running stubsabot on the hugovk/top-pypi-packages list, I noticed some errors that may occur if we attempt to add their stubs to typeshed.

It seems that some of these libraries are no longer maintained and rely either on outdated distribution methods or an incorrect versions dictionary. I’m not sure if it’s worth generalizing stubsabot’s functionality just to support such cases, but similar issues might also appear in other packages outside the top 5000 most popular ones.

(in fact the code was slightly changed, so the whole traceback will be of little use for finding the error)

traceback

Error processing awsretry:
Traceback (most recent call last):
    ...
    release_info = sorted(
                   ~~~~~~~
        releases[version], key=lambda x: bool(x["packagetype"] == "bdist_wheel")
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    )[-1]
    ~^^^^
IndexError: list index out of range

Error processing pytest-coverage:
Traceback (most recent call last):
...
release_info = sorted(
~~~~~~~
releases[version], key=lambda x: bool(x["packagetype"] == "bdist_wheel")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
)[-1]
~^^^^
IndexError: list index out of range

Error processing google-oauth:
Traceback (most recent call last):
...
release_info = sorted(
~~~~~~~
releases[version], key=lambda x: bool(x["packagetype"] == "bdist_wheel")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
)[-1]
~^^^^
IndexError: list index out of range

Error processing commonregex:
Traceback (most recent call last):
...
release_info = sorted(
~~~~~~~
releases[version], key=lambda x: bool(x["packagetype"] == "bdist_wheel")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
)[-1]
~^^^^
IndexError: list index out of range

Error processing slack:
Traceback (most recent call last):
...
release_info = sorted(
~~~~~~~
releases[version], key=lambda x: bool(x["packagetype"] == "bdist_wheel")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
)[-1]
~^^^^
IndexError: list index out of range

Error processing pyrouge:
Traceback (most recent call last):
...
release_info = sorted(
~~~~~~~
releases[version], key=lambda x: bool(x["packagetype"] == "bdist_wheel")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
)[-1]
~^^^^
IndexError: list index out of range

Error processing git-python:
Traceback (most recent call last):
... in release_contains_py_typed
raise AssertionError(
f"Unknown package type for {release_to_download.distribution}: {packagetype!r}"
)
AssertionError: Unknown package type for git-python: 'bdist_egg'

Error processing environ:
Traceback (most recent call last):
... in release_contains_py_typed
raise AssertionError(
f"Unknown package type for {release_to_download.distribution}: {packagetype!r}"
)
AssertionError: Unknown package type for environ: 'bdist_wininst'

Error processing python-constraint:
Traceback (most recent call last):
... in release_contains_py_typed
raise AssertionError(
f"Package file {release_to_download.filename!r} does not end with '.tar.gz' or '.zip'"
)
AssertionError: Package file 'python-constraint-1.4.0.tar.bz2' does not end with '.tar.gz' or '.zip'

Error processing amqplib:
Traceback (most recent call last):
... release_contains_py_typed
raise AssertionError(
f"Package file {release_to_download.filename!r} does not end with '.tar.gz' or '.zip'"
)
AssertionError: Package file 'amqplib-1.0.2.tgz' does not end with '.tar.gz' or '.zip'

Error processing mocker:
Traceback (most recent call last):
... in release_contains_py_typed
raise AssertionError(
f"Package file {release_to_download.filename!r} does not end with '.tar.gz' or '.zip'"
)
AssertionError: Package file 'mocker-1.1.1.tar.bz2' does not end with '.tar.gz' or '.zip'

Error processing crcmod:
Traceback (most recent call last):
... in release_contains_py_typed
raise AssertionError(
f"Unknown package type for {release_to_download.distribution}: {packagetype!r}"
)
AssertionError: Unknown package type for crcmod: 'bdist_msi'

Error processing multiprocessing:
Traceback (most recent call last):
... in release_contains_py_typed
raise AssertionError(
f"Unknown package type for {release_to_download.distribution}: {packagetype!r}"
)
AssertionError: Unknown package type for multiprocessing: 'bdist_wininst'

Error processing fpdf:
Traceback (most recent call last):
... in release_contains_py_typed
raise AssertionError(
f"Unknown package type for {release_to_download.distribution}: {packagetype!r}"
)
AssertionError: Unknown package type for fpdf: 'bdist_wininst'

compact list

        pytest-coverage: IndexError
        slack: IndexError
        awsretry: IndexError
        commonregex: IndexError
        google-oauth: IndexError
        pyrouge: IndexError
        fpdf: Unknown package type: 'bdist_wininst'
        crcmod: Unknown package type: 'bdist_msi'
        git-python: Unknown package type: 'bdist_egg'
        multiprocessing: Unknown package type: 'bdist_wininst'
        environ: Unknown package type: 'bdist_wininst'
        python-constraint: Package file 'python-constraint-1.4.0.tar.bz2' does not end with '.tar.gz' or '.zip'
        mocker: Package file 'mocker-1.1.1.tar.bz2' does not end with '.tar.gz' or '.zip'
        amqplib: Package file 'amqplib-1.0.2.tgz' does not end with '.tar.gz' or '.zip'

The question is not critical right now, but it seems likely that someone may want to revisit it in the future.

Metadata

Metadata

Assignees

No one assigned

    Labels

    project: policyOrganization of the typeshed project

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions