Re: [PATCH] Support older Pythons in oauth_server.py
Jelte Fennema <postgres@jeltef.nl>
From: Jelte Fennema-Nio <postgres@jeltef.nl>
To: Jacob Champion <jacob.champion@enterprisedb.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Daniel Gustafsson <daniel@yesql.se>, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2025-04-22T22:17:07Z
Lists: pgsql-hackers
On Tue, 22 Apr 2025 at 21:26, Jacob Champion
<jacob.champion@enterprisedb.com> wrote:
> - str.removeprefix/suffix() (3.9)
The way you replaced this does not have the same behaviour in the case
where the prefix/suffix is not part of the string. removeprefix/suffix
will not remove any characters in that case, but your code will always
remove the number of characters that the suffix/prefix is long. Maybe
your other checks and definition of the OAuth spec ensure that these
prefixes/suffixes are present when you remove them, but the code is
not the same in the general case (you'd need to add a hasprefix/suffix
check before removing the characters.
+ # Strip off the magic path segment. (The more readable
+ # str.removeprefix()/removesuffix() aren't available until Py3.9.)
if self._alt_issuer:
# The /alternate issuer uses IETF-style .well-known URIs.
if self.path.startswith("/.well-known/"):
- self.path = self.path.removesuffix("/alternate")
+ self.path = self.path[: -len("/alternate")]
else:
- self.path = self.path.removeprefix("/alternate")
+ self.path = self.path[len("/alternate") :]
elif self._parameterized:
- self.path = self.path.removeprefix("/param")
+ self.path = self.path[len("/param") :]
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
plpython: Remove obsolete test expected file
- 1a857348e47d 18.0 landed
-
Bump the minimum supported Python version to 3.6.8
- 45363fca6372 18.0 landed
-
oauth: Support Python 3.6 in tests
- 005ccae0f2d6 18.0 landed