Commit Graph

631 Commits

Author SHA1 Message Date
David Robertson e5594aac60 Annotations for psycopg2.ConnectionInfo (#7834)
* Annotations for psycopg2.ConnectionInfo

These annotations come from the documentation here:

https://www.psycopg.org/docs/extensions.html#psycopg2.extensions.ConnectionInfo
If there was doubt, I referred to the libpq documentation cited by
psycopg2's docs.

I wasn't completely sure about `dsn_parameters`. Psycopg2's docs list it
as an `dict`, and the example suggests it's a `dict[str, str]` at that.
From psycopg2's source I found

    https://github.com/psycopg/psycopg2/blob/1d3a89a0bba621dc1cc9b32db6d241bd2da85ad1/psycopg/conninfo_type.c#L183-L206

which is implemented here:

    https://github.com/psycopg/psycopg2/blob/1d3a89a0bba621dc1cc9b32db6d241bd2da85ad1/psycopg/utils.c#L251-L279

I'm no expert in CPython's API, but this looks to me like it's building
a `dict[str, str]`.

Additionally, the libpq docs

https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PQCONNINFO
https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PQCONNDEFAULTS

show that the underlying data just consists of strings.

Additionally, I'm pretty sure from this chunk of source

    https://github.com/psycopg/psycopg2/blob/1d3a89a0bba621dc1cc9b32db6d241bd2da85ad1/psycopg/conninfo_type.c#L581-L598

That `ConnectionInfo.__init__` takes one positional-only argument, which
must be a `psycopg2.connection`. But I don't think users are intended to
be constructing this type, so I've not added that annotation.

* Annotate `connection.info` and related attributes

* Make ConnectionInfo attributes properties

According to https://github.com/psycopg/psycopg2/blob/1d3a89a0bba621dc1cc9b32db6d241bd2da85ad1/psycopg/conninfo_type.c#L534-L563

* Mark connection attributes as readonly

according to https://github.com/psycopg/psycopg2/blob/8ef195f2ff187454cc709d7857235676bb4176ee/psycopg/connection_type.c#L1244

* Explain why some properties aren't `T | None`
2022-05-21 07:38:52 -07:00
Alex Waygood 76a4bd796b Simplify and correct many numeric unions (#7906)
Unblocks PyCQA/flake8-pyi#222
2022-05-21 15:25:00 +01:00
Atsu Kakitani d389b5f9cb Import SQLAlchemy types in Flask-SQLAlchemy (#7861) 2022-05-19 08:19:49 +02:00
L 4a08afcbc2 markdown: Annotate parseBoolValue() (#7875) 2022-05-18 20:20:23 -07:00
Mehdi ABAAKOUK f6c1383cae reds: commands from asyncio module must be async (#7820)
redis-py has introduced an asyncio module since 4.2 and almost all
commands should be async if the redis.asyncio.Redis is used instead of
redis.Redis.

This changes adds the types for all core commands.

Related to #7597
2022-05-18 19:50:01 -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
Eitan Mosenkis f2f72d6c52 Add return type for dateutil.rrule._rrulestr.__call__. (#7868) 2022-05-18 22:57:38 +01:00
L ada3615a24 markdown: Annotate code_escape(). (#7857) 2022-05-17 17:54:25 -07:00
Sebastian Rittau a05ee9740d Markdown: use I/O protocols (#7851) 2022-05-17 15:00:59 +02:00
L 81be86af6e markdown: Annotate Registry.get_index_for_name() (#7848) 2022-05-17 11:48:55 +02: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
L 487bef5a67 markdown: isBlockLevel() returns a bool value. (#7839) 2022-05-16 15:52:22 +02:00
Sam Bull 686cd6ef63 Add __version__/VERSION to redis (#7838) 2022-05-15 11:55:12 +01:00
L dbccdcb50e markdown: @deprecated argument of message is a str. (#7835) 2022-05-12 18:48:20 -07:00
L f8db698ece markdown: PY37 is a bool (#7831) 2022-05-11 19:46:50 -07:00
Jelle Zijlstra b00b4f3447 regex: accept buffers (#7680)
Similar to #7679

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Akuli <akuviljanen17@gmail.com>
2022-05-10 15:08:36 -07:00
Alex Waygood fed1f35c32 Remove explicit inheritance from object (#7819) 2022-05-10 16:24:53 +03:00
Sebastian Rittau b211bf31a3 Update testing_engine() annotations (#7818) 2022-05-10 12:46:01 +03:00
Shantanu 550454c9aa beautifulsoup4: small fixes and updates (#7816) 2022-05-10 09:17:40 +02:00
Alex Waygood ac30b96d14 Use str instead of Text (#7812) 2022-05-09 20:47:11 +01:00
Julian 032d937bdf #7805: Ensure all references to mode are Literals, not str. (#7807) 2022-05-08 16:51:27 +02:00
Alex Waygood 5c6178a821 Import generics from standard modules in all third-party stubs (#7791) 2022-05-07 10:35:50 +02:00
Shantanu e8b361983f bs4: update to 4.11 (#7785)
Co-authored-by: hauntsaninja <>
2022-05-06 11:54:50 -07:00
Ilya Konstantinov 0b5213a213 flask-cors.decorator: allow re.Pattern objects to origins and allow_headers parameters (#7782) 2022-05-06 19:34:51 +01:00
kasium 92c578546a Improve types of invoke/env.pyi (#7780) 2022-05-05 07:12:51 +01:00
Sebastian Rittau 460537c7f6 Add missing redis modules and classes (#7676)
This adds asyncio support and support for redis.typing.
2022-05-04 11:29:13 +02:00
Shantanu 4bcb1a95ab Upgrade paramiko (#7766) 2022-05-02 20:52:14 +02:00
Jovan Bebic f05bfe0315 Fix paramiko channel.setblocking() argument (#7758)
Add 0,1 as allowed arguments using `Literal[0,1]`
2022-04-30 15:15:36 -06: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
Sebastian Rittau 5535b7fc08 Update caldav stubs for 0.9 (#7734) 2022-04-28 17:56:43 +03: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
Alex Waygood 59c346d031 cryptography: make oid attributes readonly (#7731) 2022-04-28 00:58:49 -06:00
Jelle Zijlstra 1deb9cb806 jack: Fix MidiPort properties (#7730)
Fixes #7729 

https://github.com/spatialaudio/jackclient-python/blob/26b648a36143b1e3db6e6fc827ca927b0c93cbec/src/jack.py#L1950

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2022-04-27 22:28:17 -06:00
Alec Rosenbaum 63fb9af743 requests: Add None to a type alias (#7721)
Fixes #7720
2022-04-27 08:39:15 -06:00
Sebastian Rittau ff2feff7df dateutil.tz.tz: Replace IO with protocols (#7717) 2022-04-27 16:37:57 +03:00
Sebastian Rittau f7aa41245e Drop Python 2 support in third-party stubs (#7703) 2022-04-27 15:32:17 +03:00
Sebastian Rittau 2d468966f5 Add various missing generic arguments (#7702)
Co-authored-by: Akuli <akuviljanen17@gmail.com>
2022-04-27 15:25:35 +03: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
Sebastian Rittau fa4677424a Remove Python 2 support from simplejson (#7704) 2022-04-27 11:57:29 +02:00
Sebastian Rittau 60f0497a72 Drop support for Python 2 in termcolor (#7707) 2022-04-27 12:56:38 +03:00
Sebastian Rittau cfdff16e4e Drop Python 2 support from chardet (#7708) 2022-04-27 12:54:40 +03:00
Sebastian Rittau 03e1e3b4d3 Drop Python 2 support from python-gflags (#7709) 2022-04-27 12:54:12 +03:00
Sebastian Rittau 98aa6d75fe Drop Python 2 support from python-dateutil (#7715) 2022-04-27 12:52:46 +03:00
Sebastian Rittau 5edf5f0cc9 Remove Python 2 support from toml (#7713) 2022-04-27 12:52:28 +03:00
Sebastian Rittau 27af3dc6b1 Drop Python 2 support from click-spinner (#7710) 2022-04-27 12:49:27 +03:00
Sebastian Rittau 6245bc7432 Remove Python 2 support from entrypoints (#7711) 2022-04-27 12:47:50 +03:00
Sebastian Rittau e916fb5f1e Remove Python 2 support from atomicwrites (#7712) 2022-04-27 12:45:44 +03:00
Sebastian Rittau 891d46cbb4 Drop Python 2 support from polib (#7714) 2022-04-27 12:42:23 +03:00
Sebastian Rittau f39149d3a9 Drop Python 2 support from emoji (#7716) 2022-04-27 12:33:42 +03:00