Thanks to typeshed-stats (#9386), I was able to make the following list of stubs majorly using Any, indicating that they've likely not been switched over to Incomplete yet.
Ordered by ratio of "explicit Any / explicit Incomplete + 1" parameters and variables.
Excludes stubs marked as obsolete and ratio <= 1 rounded down.
| Package Name |
Explicit Any |
Explicit Incomplete |
Ratio |
| WebOb |
119 |
0 |
119 |
| WTForms |
114 |
0 |
114 |
| simplejson |
59 |
0 |
59 |
| python-gflags |
50 |
0 |
50 |
| regex |
41 |
0 |
41 |
| pyflakes |
40 |
0 |
40 |
| Markdown |
33 |
0 |
33 |
| jmespath |
60 |
1 |
30 |
| toml |
30 |
0 |
30 |
| decorator |
28 |
0 |
28 |
| python-xlib |
28 |
0 |
28 |
| uWSGI |
21 |
0 |
21 |
| gevent |
114 |
5 |
19 |
| polib |
18 |
0 |
18 |
| slumber |
16 |
0 |
16 |
| six |
15 |
0 |
15 |
| PyYAML |
216 |
14 |
14 |
| pynput |
14 |
0 |
14 |
| stdlib |
3295 |
237 |
13 |
| opentracing |
25 |
1 |
12 |
| hdbcli |
24 |
1 |
12 |
| python-jose |
56 |
4 |
11 |
| fanstatic |
11 |
0 |
11 |
| Flask-Cors |
10 |
0 |
10 |
| mypy-extensions |
10 |
0 |
10 |
| protobuf |
144 |
15 |
9 |
| parsimonious |
27 |
2 |
9 |
| capturer |
9 |
0 |
9 |
| croniter |
9 |
0 |
9 |
| greenlet |
8 |
0 |
8 |
| singledispatch |
8 |
0 |
8 |
| translationstring |
8 |
0 |
8 |
| xmltodict |
8 |
0 |
8 |
| html5lib |
179 |
24 |
7 |
| paramiko |
45 |
6 |
6 |
| console-menu |
11 |
1 |
5 |
| waitress |
5 |
0 |
5 |
| python-crontab |
18 |
3 |
4 |
| cachetools |
4 |
0 |
4 |
| colorama |
4 |
0 |
4 |
| qrbill |
4 |
0 |
4 |
| Pygments |
178 |
47 |
3 |
| vobject |
93 |
24 |
3 |
| PyMySQL |
88 |
28 |
3 |
| dateparser |
86 |
21 |
3 |
| Send2Trash |
3 |
0 |
3 |
| untangle |
3 |
0 |
3 |
| usersettings |
3 |
0 |
3 |
| seaborn |
186 |
65 |
2 |
| mock |
137 |
45 |
2 |
| psycopg2 |
97 |
37 |
2 |
| beautifulsoup4 |
72 |
33 |
2 |
| aws-xray-sdk |
61 |
21 |
2 |
| humanfriendly |
54 |
22 |
2 |
| requests |
53 |
19 |
2 |
| JACK-Client |
2 |
0 |
2 |
| chevron |
2 |
0 |
2 |
| first |
2 |
0 |
2 |
| ibm-db |
2 |
0 |
2 |
| libsass |
2 |
0 |
2 |
| retry |
2 |
0 |
2 |
| tabulate |
2 |
0 |
2 |
| toposort |
2 |
0 |
2 |
| gdb |
2 |
0 |
2 |
(updated as of 2023-11-02)
We can also list 3rd party stubs by how many module-level and class-level variables they have:
for d in stubs/*/; do echo "$d,$( grep -ERoi '(^| )[[:alnum:]]+?: Any$' $d | wc -l )"; done
| Package Name |
Var Any count |
| html5lib |
144 |
| ldap3 |
133 |
| Pygments |
131 |
| psutil |
82 |
| PyYAML |
77 |
| google-cloud-ndb |
55 |
| PyMySQL |
35 |
| psycopg2 |
33 |
| httplib2 |
32 |
| beautifulsoup4 |
27 |
| protobuf |
27 |
| aws-xray-sdk |
25 |
| passlib |
24 |
| oauthlib |
23 |
| mock |
16 |
| dateparser |
16 |
| fpdf2 |
12 |
| python-jose |
9 |
| paramiko |
9 |
| requests |
6 |
| geopandas |
5 |
| watchpoints |
3 |
| boltons |
2 |
| Markdown |
2 |
(updated as of 2025-04-19)
Thanks to typeshed-stats (#9386), I was able to make the following list of stubs majorly using
Any, indicating that they've likely not been switched over toIncompleteyet.Ordered by ratio of "explicit
Any/ explicitIncomplete+ 1" parameters and variables.Excludes stubs marked as obsolete and ratio <= 1 rounded down.
AnyIncomplete(updated as of 2023-11-02)
We can also list 3rd party stubs by how many module-level and class-level variables they have:
for d in stubs/*/; do echo "$d,$( grep -ERoi '(^| )[[:alnum:]]+?: Any$' $d | wc -l )"; done(updated as of 2025-04-19)