Commit Graph

5156 Commits

Author SHA1 Message Date
Alex Waygood
f43b968ab9 Clean up asyncio.__init__ (#6497) 2021-12-05 16:53:26 +02:00
Shantanu
2a1ef3735d random: add VERSION, SystemRandom.getrandbits is not pos only (#6419)
Co-authored-by: Akuli <akuviljanen17@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-12-05 16:52:34 +02:00
Samuel T
2610c5ee37 Create simplejson.errors (#6492) 2021-12-05 12:32:37 +02:00
Alex Waygood
bb7a06c60b Add missing asyncio functions, part II (#6493) 2021-12-05 12:29:25 +02:00
Akuli
24afb531ff stubtest_stdlib: get rid of --ignore-missing-stub (#6491)
* get rid of --ignore-missing-stub

* update allowlists based on github actions logs, with script

import re

platforms = ["linux", "win32", "darwin"]
versions = ["py36", "py37", "py38", "py39", "py310"]

entries_by_pv = {}
for p in platforms:
    for v in versions:
        p_name = {"linux": "ubuntu", "darwin": "macos", "win32": "windows"}[p]
        v_name = "3." + v.replace("py3", "")
        if v_name == "3.9":
            v_name = "3.9.7"

        entries = set()
        with open(f"la/Check stdlib with stubtest ({p_name}-latest, {v_name})/6_Run stubtest.txt") as file:
            for line in file:
                m = re.search(r"error: (.*) is not present in stub$", line.strip())
                if m:
                    entries.add(m.group(1))
        entries_by_pv[p, v] = entries

def remove_intersection(sets):
    sets = list(sets)
    result = set(sets[0])
    for s in sets[1:]:
        result &= s
    for s in sets:
        for r in result:
            s.remove(r)
    return result

common_to_all = remove_intersection(entries_by_pv.values())

common_to_version = {}
for v in versions:
    common_to_version[v] = remove_intersection([
        entries
        for (p, v2), entries in entries_by_pv.items()
        if v == v2
    ])

common_to_platform = {}
for p in platforms:
    common_to_platform[p] = remove_intersection([
        entries
        for (p2, v), entries in entries_by_pv.items()
        if p == p2
    ])

def write(fname, entries):
    with open(f"tests/stubtest_allowlists/{fname}.txt", "a") as file:
        file.write("\n# Exists at runtime, but missing from stubs\n")
        for i in sorted(entries):
            file.write(i + "\n")

write("py3_common", common_to_all)
for v, entries in common_to_version.items():
    write(v, entries)
for p, entries in common_to_platform.items():
    write(p, entries)
for (p, v), entries in entries_by_pv.items():
    write(p + "-" + v, entries)

* Manually combine __main__ attributes into a single entry

* move and comment entries manually
2021-12-04 16:58:44 -08:00
Alex Waygood
f105c79219 Harmonise UserDict.__init__ with dict.__init__ (#6490)
Co-authored-by: Akuli <akuviljanen17@gmail.com>
2021-12-04 19:50:47 +02:00
Manfred Kaiser
56c45528b7 paramiko.Channel - mark arguments as also accepting bytes (#6276) 2021-12-04 17:31:27 +01:00
Alex Waygood
9e0ee447c6 Harmonise UserDict.fromkeys with dict.fromkeys (#6488) 2021-12-04 13:56:30 +01:00
Erik Soma
da895e3944 Correct print_exception for 3.10. (#6487) 2021-12-03 19:32:21 -08:00
Alex Waygood
a293f1e73f Add OrderedDict.fromkeys (#6485) 2021-12-03 22:06:51 +02:00
kasium
20df1808bf Fix minor issues in opentracing (#6482) 2021-12-03 07:24:58 -08:00
kasium
2d07556e09 Add stubs for flake8-builtins (#6483) 2021-12-03 14:44:49 +01:00
Alex Waygood
050a77d8e3 Make NewType a class in 3.10 (#6469) 2021-12-03 13:33:44 +01:00
kasium
7a24e71a9b Add stubs for flake8-simplify (#6480) 2021-12-03 13:25:29 +01:00
kasium
9dc75772d3 Annotate remaining opentracing fields, arguments, and return types (#6476) 2021-12-03 11:41:49 +01:00
Alex Waygood
1fa1270e00 Bump pyright version to 1.1.192 (#6478) 2021-12-03 09:08:35 +01:00
Jelle Zijlstra
178b6bb8f4 csv: Make _Writer.write positional-only (#6475)
At runtime it only uses positional parameters.

I think this works fortuitously in mypy and pyright because mypy ignores parameter names in protocols and pyright has a bug that allows passing positional-only to pos-or-keyword params (microsoft/pyright#2652) and the parameter to `io.TextIO.write` happens to be `__s`.
2021-12-02 13:27:21 -08:00
kasium
906d5f1faf Add opentracing stubs (#6473) 2021-12-02 20:55:35 +01:00
Akuli
3f281881c2 get rid of remaining references to pallets stubs (#6474) 2021-12-02 21:41:40 +02:00
Daniel Foerster
506be4fb0a Fix psycopg2 connection.cursor() stub (#6470)
Adds `scrollable=` argument missing since psycopg2 2.5 and prevents `Any` from being hinted when `cursor_factory=` is passed.
2021-12-02 17:50:25 +01:00
Alex Waygood
a2e4a62fac Annotate UserList.sort() .index() arguments (#6472) 2021-12-02 17:44:21 +01:00
Alex Waygood
7b24e9d89a Improve UserList comparison methods (#6471)
These functions will fail at runtime if `other` is not either a `list` or a `UserList`. The elements within `other` must also be of the same type as the elements within `self`, or the comparison will fail.
2021-12-02 16:19:50 +01:00
Joachim Jablon
ddcef53af4 Link from README to the release script (#6458)
And update language about type checkers

Co-authored-by: Akuli <akuviljanen17@gmail.com>
2021-12-02 06:17:16 -08:00
Sebastian Rittau
8542b3518a Remove stubs for pallets projects (#6465)
All pallets projects (Flask, Werkzeug, Jinja, Click, ItsDangerous, and
MarkupSafe) have now shipped their own stubs since May 2021. The
maintainer requested removal back then.

Closes: #5423
2021-12-01 09:34:34 -08:00
Akuli
ec0051a59b ci: fix stubtest_third_party while loop (#6468)
Co-authored-by: Sebastian Rittau <srittau@rittau.biz>
2021-12-01 19:32:33 +02:00
Akuli
50d29ef424 ci: Do not run stubtest_third_party for deleted stubs (#6467) 2021-12-01 18:15:17 +01:00
Akuli
4631b74919 Fix various issues in redis.client (#6464) 2021-12-01 17:09:48 +01:00
Akuli
ea3f962860 Move all definitions except environ from posix to os (#6442) 2021-12-01 17:07:33 +01:00
Akuli
bdf906e2bc stubtest_stdlib: fail if there are unused allowlist entries (#6424)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2021-12-01 12:10:27 +02:00
Akuli
deaa764915 redis: fix several stubtest warnings (#6378)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2021-12-01 12:00:07 +02:00
László Károlyi
7e22a9e34a Fix datetime.strftime (#6317)
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
2021-11-30 23:19:30 -08:00
Shantanu
d453b74ceb logging: fix various __init__ methods (#6417)
Co-authored-by: hauntsaninja <>
2021-11-30 23:18:35 -08:00
Akuli
b3e8073bac Create unittest._log stub and improve _AssertLogsContext (#6428)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2021-11-30 21:39:14 -08:00
Alex Waygood
6246e7856c Improve BinOp comparison funcs in operator (#6462) 2021-11-30 21:38:31 -08:00
Alex Waygood
1c88ceeee9 Make example in CONTRIBUTING the same as in the stub` (#6461)
Looks like I made an argument in `datetime.pyi` positional-only a while back, and didn't realise the class was given as an example in `CONTRIBUTING.md`.
2021-11-30 13:35:44 -08:00
Joachim Jablon
3aa444b62f Remove deprecated pre-commit script (#6455) 2021-11-30 11:05:07 -08:00
Alex Waygood
f2a7d66346 Any->object in operator.contains/operator.countOf (#6459)
Co-authored-by: Akuli <akuviljanen17@gmail.com>
2021-11-30 09:57:51 -08:00
Alex Waygood
c3753d3913 Use SupportsIndex in operator.index (#6460) 2021-11-30 09:38:34 -08:00
Alex Waygood
93cb52b929 Improve unary-operator functions in operator (#6452) 2021-11-30 07:38:35 -08:00
Alex Waygood
9ccfc587d8 operator.length_hint: Any -> object (#6456) 2021-11-30 17:12:29 +02:00
Alex Waygood
f3632f8da5 operator.eq: Any -> object (#6457) 2021-11-30 17:10:07 +02:00
Joachim Jablon
e96dde7618 psycopg2: use Error and Warning from _psycopg.pyi in errors.pyi (#6454) 2021-11-30 15:26:50 +02:00
Alex Waygood
1f62ff62e7 Any -> object in simple operator funcs (#6451) 2021-11-30 15:21:51 +02:00
Rebecca Chen
3b6a52b858 Remove braintree stubs from pytype_exclude_list (#6450)
ba348e819d
fixed the issue that caused pytype to choke on these stubs.
2021-11-29 18:36:58 -08:00
Akuli
c8c5519fa6 sqlite3: stubtest fixes (#6441) 2021-11-29 11:07:20 -08:00
Akuli
f29f0a5394 importlib: stubtest fixes for py310 (#6443) 2021-11-29 11:05:54 -08:00
Akuli
52559e83cf add comment about CodeType.replace to stubtest allowlists (#6447) 2021-11-29 09:01:00 -08:00
Alex Waygood
521dd430c6 Add zipimporter.find_spec() and zipimporter.invalidate_caches() (#6446)
Co-authored-by: Akuli <akuviljanen17@gmail.com>
2021-11-29 16:52:20 +02:00
Alex Waygood
aee90a0e82 Add CodeType.co_lines() and CodeType.co_linetable (#6445)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Akuli <akuviljanen17@gmail.com>
2021-11-29 16:49:30 +02:00
Alex Waygood
d5f9c95c26 Improve stub file for xml/dom/xmlbuilder.py (#6171)
Co-authored-by: Akuli <akuviljanen17@gmail.com>
2021-11-29 15:46:09 +02:00