Commit Graph

81 Commits

Author SHA1 Message Date
Samuel T
573ee94f35 All scripts/tests: always specify file encoding in calls to open() (#8882) 2022-10-11 22:29:36 +01:00
Alex Waygood
e173cbe7b6 Mark requests stubs as complete (#8858)
Co-authored-by: Kevin Kirsche <kevin.kirsche@one.verizon.com>
2022-10-06 15:31:02 -07:00
Alex Waygood
f9b1289226 requests: Add regression test for #8762 (#8835)
The final mypy_primer report for #8762 was an empty diff. Considering the number of issues we've had with our requests stubs over the last year, it feels like it makes sense to add a test case to make sure that it doesn't regress.
2022-10-03 16:11:44 -07:00
Rogdham
b3db49abbd requests: improve _Data type (#8762)
requests: improve _Data type

This allows to pass an Iterable[bytes] for streaming request data.
2022-09-21 16:35:09 -07:00
Alex Waygood
b53843ab46 Add infrastructure allowing for test cases for third-party stubs (#8700)
- Move the logic for running mypy on the test cases from `tests/mypy_test.py` to a separate script, `tests/regr_test.py`.
- Add the necessary logic in order to be able to have test cases for third-party stubs.
- Move logic common to `tests/mypy_test.py` and `tests/regr_test.py` into `tests/colors.py`, and rename `tests/colors.py` to `tests/utils.py`.
- Add a new check to `tests/check_consistent.py`, to enforce the use of `# pyright: reportUnnecessaryTypeIgnoreComment=true` comments in third-party test cases. These are essential if we want to have our tests against false-negatives work with pyright.
- Update the relevant documentation to account for the new test file.
- Add a new job to the `tests.yml` GitHub workflow, to run the new test in CI.
- Add a simple proof-of-concept test case for `requests`, as a regression test for #7998.

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Co-authored-by: Sebastian Rittau <srittau@rittau.biz>
2022-09-08 16:51:33 +01:00
Kevin Kirsche
8c51fab4e2 Support extras in stubtest_third_party.py (#8467) 2022-08-18 14:12:36 -07:00
Kevin Kirsche
3e88363b34 requests.adapters: use re-exports rather than assignments (#8485) 2022-08-05 12:46:07 +01:00
Kevin Kirsche
68f20a4a23 Add requests.help submodule (#8486) 2022-08-05 12:32:40 +01:00
Kevin Kirsche
46a3806312 Add requests.__version__; improve requests.__init__ (#8484)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2022-08-05 12:28:35 +01:00
Shantanu
402489b40a requests: fix stubtest (#8463) 2022-08-01 18:39:06 -07:00
Alex Waygood
fdeb216547 Remove or move several TypeAlias declarations (#8444) 2022-07-30 15:28:52 +01:00
Kevin Kirsche
33878a6ea4 requests: add type hints to requests.utils (#8395)
Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
2022-07-26 06:25:56 -07:00
Kevin Kirsche
432e55b039 Add missing re-exports and vars to requests.compat (#8396) 2022-07-25 21:56:05 +01:00
John Villalovos
e42c983740 requests: add annotation for parse_header_links (#8349)
In the requests package the function `utils.parse_header_links()`
takes a str as input and returns a list of dictionaries.

This can be seen in the unit tests that are used:
786255613b/tests/test_utils.py (L644-L664)
2022-07-20 21:02:29 -07:00
David Hotham
6873a78b6b requests: Annotate Session.merge_environment_settings (#8313)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2022-07-18 19:54:48 +01:00
Sebastian Rittau
a0f6fb5669 Turn requests.requests.packages into a module (#8281)
Remove obsolete class VendorAlias
2022-07-12 20:30:28 +02:00
Shantanu
4415e9cc0b [stubsabot] Bump requests to 2.28.* (#8152)
Co-authored-by: hauntsaninja <>
2022-06-25 12:01:22 +05:30
Alex Waygood
3fe1f5d6c4 requests, regex: use re-exports instead of assignments in a few places (#8127) 2022-06-21 08:20:13 -07:00
Tom Milligan
51f97dda15 requests: expand types for files (#7999) 2022-06-01 22:55:38 +03:00
Alex Waygood
fa636bc044 Third-party stubs: fix several fictitious type aliases (#7958) 2022-05-26 06:26:26 -07:00
Akuli
f77d0f80a8 requests: allow immutable headers (#7932) 2022-05-25 20:22:05 -07:00
Akuli
9a09db46f5 Fix requests.Session().hooks (#7871)
Fixes #7776

Mutating hooks, as in `session.hooks['response'] = ...`, should work. Reassigning it like `session.hooks = ...` is probably a bad idea, so it will always be a `dict`.
2022-05-18 19:31:34 -07:00
Alejandro Giacometti
87abd8a39f requests: Fix type of request headers (#7773)
Allow bytes values. In `Session` methods, `None` can be used to ignore the session's headers.
2022-05-16 23:33:46 +03:00
Akuli
e613fc483b Delete python 2 branches from third-party stubs (#7741)
Since #7703, we no longer have third-party stubs that support Python 2, so code like `if sys.version_info >= (3, 0)` can be simplified.
2022-04-29 20:53:01 +01:00
Milan Boers
f330e12f3e requests: allow non-mutable Mapping for files/hooks parameters (#7732) 2022-04-28 08:40:53 -06:00
Milan Boers
df06044ee8 requests: allow str and bytes for fileobj in files parameter (#7728)
* requests: allow str and bytes for fileobj in files parameter

* requests: Use SupportsRead instead of IO for files
2022-04-28 02:19:57 -06:00
Alec Rosenbaum
63fb9af743 requests: Add None to a type alias (#7721)
Fixes #7720
2022-04-27 08:39:15 -06:00
Milan Boers
ae09e4e866 Add more typing hints for requests (#7696)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Akuli <akuviljanen17@gmail.com>
2022-04-27 14:40:20 +03:00
Alex Waygood
b093c90a94 Use TypeAlias for type aliases where possible, part II (#7667) 2022-04-20 20:02:47 +01:00
Alex Waygood
653f2c6ba4 Third-party stubs: import from collections.abc where possible (#7637) 2022-04-16 14:52:57 +01:00
Alex Waygood
66bea8ca48 Use imports instead of TypeAliases in a couple places (#7634)
Fixes #7632
2022-04-16 01:38:59 -07:00
Alex Waygood
740193a8fc Use TypeAlias where possible for type aliases (#7630) 2022-04-15 18:01:00 -07:00
Alex Waygood
c0e6dd3f3f Use str instead of typing.Text (#7629) 2022-04-16 00:47:42 +02:00
Alex Waygood
ec27c00ca2 Third-party stubs: Improve several __exit__ methods (#7575) 2022-04-01 08:03:12 -07:00
Kalle Møller
9aa64fdc22 requests: Update adapters.pyi (#7544)
The cert can be
* A string / bytes which is a path to a certfile
* A tuple with two string / bytes, where the first is the certfile and the second is a keyfile
* None (optional)

The tuple could be anything indexable, but there are strict requirement to actualle have two items, don't know if there is something more generic

See https://github.com/psf/requests/blob/main/requests/adapters.py#L242-L248
2022-03-26 20:41:25 -07:00
Jelle Zijlstra
b7d129f727 PEP 604: Remove some more uses of Union/Optional (#7515)
The following patterns still break mypy:

1. `type[]` at top level fails
2. `tuple[T1, T2]` at top level fails (but `tuple[T1, ...]` is fine)
3. `T1 | Callable[..., T2 | T3]` fails, but only <=3.9

This PR cleans up usage of `Union` and `Optional` outside these patterns.
2022-03-19 08:23:00 -07:00
Alex Waygood
3ab250eec8 Use PEP 604 syntax wherever possible (#7493) 2022-03-16 16:01:33 +01:00
Alex Waygood
8134752ad8 requests stubs are not Python 2-compatible (#7483) 2022-03-13 13:06:34 +01:00
Alex Waygood
64af11c78f Correct several positional-only differences in third-party stubs (#7352) 2022-02-22 06:49:51 -08:00
Alex Waygood
1341a34525 Remove unused allowlist entries in babel and requests (#7233) 2022-02-15 16:26:13 -08:00
DataGhost
7bb6ce7083 Added missing import for JSONDecodeError (#7171)
Co-authored-by: DataGhost <git@dataghost.com>
2022-02-09 11:31:55 -08:00
UncleOwen
8631ed9e57 requests.Session: Accept hooks and lists of hooks (#7094) 2022-01-31 11:29:05 +01:00
Akuli
df0fe16456 requests: remove an unused allowlist entry (#6911) 2022-01-13 20:35:37 +01:00
Akuli
423ae7f8fd requests: Remove an unused allowlist entry (#6897) 2022-01-12 00:53:43 -08:00
Alex Waygood
96c9abb058 Always use _typeshed.Self, where applicable (#6880)
* Always use `_typeshed.Self`, where applicable

* Revert changes to `google-cloud-ndb` (ambiguous)

* Remove empty line added by script

* Revert changes to `stubs/python-dateutil/dateutil/relativedelta.pyi`

* Manually add a few more that the script missed

* Improve `filelock` annotation

Source code here: 79ec7b2826/src/filelock/_api.py (L207)

* Improve `opentracing/scope` annotation

Source code here: 3e1d357a34/opentracing/scope.py (L71)

* Improve `redis/client` stub

Source code here: 15f315a496/redis/client.py (L1217)

* Improve `redis/lock` annotation

Source code here: 15f315a496/redis/lock.py (L155)

* Improve `requests/models` annotation

Source code here: d718e75383/requests/models.py (L653)
2022-01-09 19:16:19 -08:00
Alex Waygood
3351f0c0b9 Remove unused requests allowlist entry (#6882) 2022-01-10 00:18:23 +01:00
Alex Waygood
a40d79a4e6 Use lowercase type everywhere (#6853) 2022-01-08 16:09:29 +01:00
Sebastian Rittau
f8501d33c7 Use types-urllib3 for requests (#6859) 2022-01-08 16:25:50 +02:00
Sebastian Rittau
e77a66aced Update pyright (#6840) 2022-01-07 18:58:15 +02:00
Ambrose Chua
032e6ee90c requests: Add JSONDecodeError (#6838) 2022-01-06 19:34:22 -08:00