Skip to content

Add raw query support with PostgreSQL native placeholders#560

Merged
dvarrazzo merged 5 commits intopsycopg:masterfrom
joelonsql:raw_query_support
Aug 15, 2023
Merged

Add raw query support with PostgreSQL native placeholders#560
dvarrazzo merged 5 commits intopsycopg:masterfrom
joelonsql:raw_query_support

Conversation

@joelonsql
Copy link
Contributor

This commit introduces support for raw queries with PostgreSQL's native placeholders ($1, $2, etc.) in psycopg3. By setting the use_raw_query attribute to True in a custom cursor class, users can enable the use of raw queries with native placeholders.

The code demonstrates how to create a custom RawQueryCursor class that sets the use_raw_query attribute to True. This custom cursor class can be set as the cursor_factory when connecting to the database, allowing users to choose between PostgreSQL's native placeholders or the standard %s placeholder in their queries. The code also demonstrates how both styles of placeholders can coexist. Test cases are included to verify the correct behavior of the new feature.

Modifications include changes to the PostgresQuery class, BaseCursor class, and the addition of a new test file test_use_raw_query.py. The documentation has been updated as well to reflect the new feature.

@dvarrazzo
Copy link
Member

Hello,

I have been thinking about providing such feature sometimes.

I am not convinced about the interface, with the need to create a subclass. I would have said that we should just provide a class, but then they would need to be at least 4 different other ones (server and client cursor, sync and async), so I don't know about that.

It's also worth noticing that execute() cannot support a mapping anymore, so, to be pedantic, the execute[many]() signatures change, taking just a sequence.

Other option to evaluate:

  • pass raw_queries=True to the Cursor constructor. This way cursor_factory might be a closure.
  • pass raw_queries to execute()
  • have raw_queries a settable cursor attribute.

Implementation details: maybe there should be a PostgresRawQuery object, subclassing PostgresQuery, for the internal processing.

@dvarrazzo
Copy link
Member

(this is not a proper code review, more throwing there some discussion hints)

@joelonsql
Copy link
Contributor Author

Hello,

Hello dvarrazo, nice to e-meet and thanks for all your work, very much appreciated.

I have been thinking about providing such feature sometimes.

Glad to hear you also see some potential value!

I am not convinced about the interface, with the need to create a subclass. I would have said that we should just provide a class, but then they would need to be at least 4 different other ones (server and client cursor, sync and async), so I don't know about that.

It's also worth noticing that execute() cannot support a mapping anymore, so, to be pedantic, the execute[many]() signatures change, taking just a sequence.

Right... I understand and agree.

Other option to evaluate:

  • pass raw_queries=True to the Cursor constructor. This way cursor_factory might be a closure.
  • pass raw_queries to execute()
  • have raw_queries a settable cursor attribute.

Thanks for some great ideas!

I've pushed a new version with changes.
I skipped the pass raw_queriestoexecute()` since I think it should be sufficient to control it per cursor, but maybe there is some interesting use case where granularity on the execute() would be desirable?

I also added the option of passing it via connect() i.e. connect(DSN, raw_queries=True), for convenience. This is what I personally would prefer, since I want to use PostgreSQL placeholders throughout my entire code base, to ensure the same queries are compatible between different programming languages. However, maybe it's redundant, and the cursor_factory method is enough. I would be happy with either one of them. Do you see any particular pros/cons over one or the other?

Implementation details: maybe there should be a PostgresRawQuery object, subclassing PostgresQuery, for the internal processing.

That sounds like a good idea. Not implemented yet though.

@joelonsql
Copy link
Contributor Author

I see mypy complains on type signatures due to the passing a closure as cursor_factory:

psycopg/psycopg/cursor.py:453: error: "BaseCursor[ConnectionType, Row]" has no attribute "_raw_queries"  [attr-defined]
tests/test_use_raw_query.py:14: error: No overload variant matches argument types "Any", "Callable[[Any, DefaultNamedArg(Any, 'row_factory')], Any]"  [call-overload]
tests/test_use_raw_query.py:14: note: Possible overload variants:
tests/test_use_raw_query.py:14: note:     def [Row] connect(cls, conninfo: str = ..., *, autocommit: bool = ..., row_factory: RowFactory[Row], prepare_threshold: Optional[int] = ..., cursor_factory: Optional[Type[Cursor[Row]]] = ..., context: Optional[AdaptContext] = ..., raw_queries: bool = ..., **kwargs: Union[None, int, str]) -> Connection[Row]
tests/test_use_raw_query.py:14: note:     def [Row] connect(cls, conninfo: str = ..., *, autocommit: bool = ..., prepare_threshold: Optional[int] = ..., cursor_factory: Optional[Type[Cursor[Any]]] = ..., context: Optional[AdaptContext] = ..., raw_queries: bool = ..., **kwargs: Union[None, int, str]) -> Connection[Tuple[Any, ...]]

I guess the fix would be something like a Union[] to also accept a Callable[], something like this, in connection.py:

-    cursor_factory: Type[Cursor[Row]]
+    cursor_factory: Union[Type[Cursor[Row]], Callable[[Any, RowFactory[Row]], Cursor[Row]]]

Seems like there are quite a lot of such places that needs to be fixed. I wonder if it perhaps isn't worth the added complexity of a Union[] type, and might be simpler/cleaner to just go for the raw_queries=True input param to connect() and possibly also cursor(). Toughts?


.. versionadded:: 3.1

Setting `raw_queries` to `!True` during connection allows users to use
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that raw_query should be at most a cursor property, not so much a connection property. The cursors are in charge of making queries and return results, the connections are in charge of keeping connection and transaction state.

We don't have concepts such as server-side vs. client-side querying, server- vs. client- side binding, binary parameters etc. in the connection. So I think raw_query should be at most at conn.cursor() level, not higher than that.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your feedback! I understand your perspective on classifying raw_query as a cursor property. However, I think raw_query has a relational context with both cursors and connections - you might want to enable it for all or just one cursor in a connection, so I think from a relational point of view, it makes sense to talk about "raw_query" for a connection.

My main need is a simple way to enable raw_query for all queries in a connection without altering all cursor() or execute() calls.

The changes to _queries.py shouldn't be affected by the interface design, perhaps that could be reviewed first, to see if it's a viable approach.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The use case of having all the cursors the same way should be covered by the cursor_factory property.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for guidance! I like the cursor_factory approach. Pushed a new commit with implementation and updated docs. Btw, sorry for all the mypy/black noise, I didn't have them installed locally, but now I'm checking they pass before pushing to the branch.

Copy link
Contributor

@dlax dlax left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure about the user-facing interface, i.e. the raw_queries property on Cursor, because:

  1. the term "raw queries" does not feel familiar to me,
  2. this would not scale if/when someone will want another parameter-style, e.g. ?, :name or {}

Therefore, how about a param_style property with values from an enum?

class ParamStyle(enum.Enum):
    percent = enum.auto()  # psycopg style
    numeric_dollar = enum.auto()  # postgresql "native" style

(The "param style" term comes from https://peps.python.org/pep-0249/#paramstyle.)

""".split()

def __init__(self, transformer: "Transformer"):
def __init__(self, transformer: "Transformer", raw_queries: Optional[bool] = False):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be:

Suggested change
def __init__(self, transformer: "Transformer", raw_queries: Optional[bool] = False):
def __init__(self, transformer: "Transformer", raw_queries: bool = False):

?

I mean, how is the None value different from False?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I agree, better to fix all users of PostgresQuery so they all pass raw_queries explicitly, perhaps then also the default can be skipped there, to only have one place where the default (= False) is specified.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in d767b96

@dvarrazzo
Copy link
Member

@dlax unfortunately the dbapi doesn't make provision for placeholders $1 so it's hard to give them a name that makes sense for the specs.

@joelonsql adding an attribute to the cursor doesn't go in the right direction. You should use the client-side-binding cursors as an example, because they solve exactly the same problem that you have to solve (changing the way the Python query and arguments are manipulated) and they do in the OOP way the codebase is organised, not if'ing every step.

I also predict that your implementation will be much smaller because what you are doing doesn't have to interact with prepared queries and pipeline mode in a way different than its base class. So, in short, your cursor will have only to replace _convert_query(). You will need a different ClientQuery subclass, whose only difference will be in _query2pg(), of which you will need your own implementation... which will have to do nothing, because the query is already in postgres format.

If any, the _queries module could be refactored:

  • _query2pg should become a class or static method of PostgresQuery
  • _query2pg_client should become the _query2pg of PostgresClientQuery
  • maybe PostgresClientQuery should be moved into the client_cursor module? But it should be clear that it's an internal class not to depend on, so it should be called _PostgresClientQuery, or even better _ClientPostgresQuery.

At this point you have the blueprint of your code: you can make a RawCursorMixin class, only different from the parent class because it uses a RawPostgresQuery, which is only different from the parent class because it has a no-op _query2pg(). You can then make a RawCursor and an AsyncRawCursor by using the mixin on the two available classes.

The way clients would use them should be similar to the how client-binding cursors are documented to be used:

  • Using the cursor factory: conn = psycopg.connect(DSN, cursor_factory=RawCursor)
  • Instantiating a cursor: cur = psycopg.RawCursor(conn)

The ClientCursor classes are exposed in the psycopg module. Maybe that wasn't a good idea and we could have left them in a psycopg.client_cursor module. I'm tempted to start pushing this paradigm, changing the docs in that direction, and in that case the raw cursor would be exposed from psycopg.raw_cursor module.

@dlax
Copy link
Contributor

dlax commented May 10, 2023 via email

@joelonsql
Copy link
Contributor Author

@dvarrazzo That's a great idea, that completely eliminates the added complexity to cursor.py, which is now completely unchanged. New commit pushed.

Comment on lines 149 to 161
@staticmethod
def query2pg(
query: bytes, encoding: str, vars: Params
) -> Tuple[bytes, Optional[List[PyFormat]], Optional[List[str]], List[QueryPart]]:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has now lost the @lru_cache, which is very important.

The need to have the cache was the reason why the function doesn't take the vars. They are unused in this method, but they make it impossible to cache.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry I should have mentioned I left that out because I couldn't figure out the unhashability of list error, but now I've fixed it, which is a better solution anyway, since passing the number of parameters is all we need. See new commit.

# so that function signatures are consistent with the documentation.
__all__ = [
"AsyncClientCursor",
"AsyncRawCursor",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please keep this list sorted

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

Raw Query Cursors
------------------

.. versionadded:: 3.1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It will be 3.2

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

on PostgreSQL's placeholder functionality, such as when dealing with a very
complex query containing %s inside strings, dollar-quoted strings or elsewhere.

There are two ways to use raw query cursors:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should also document that the raw cursor only takes positional arguments.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch, that's very important to point out. Fixed in pushed commit.

"""
Don't convert Python raw query since it's already in a format Postgres understands.
"""
return query, [PyFormat.AUTO] * len(vars), None, []
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see: if you don't have vars here you can't work out the want_formats vector.

What you can do is to return None here, and augment dump() to set the formats if None (or complain if it's not None, but they are a different length).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Smart! Fixed in pushed commit.

@dvarrazzo
Copy link
Member

Thank you @joelonsql, that looks much better! I've left you a few comments.

There will be the need for many more tests. Pretty much copying the whole tests/test_cursor.py (and async equivalent) and adapt it to these cursors wherever it makes sense.

@joelonsql
Copy link
Contributor Author

Thank you @joelonsql, that looks much better! I've left you a few comments.

Thanks, glad to hear!

There will be the need for many more tests. Pretty much copying the whole tests/test_cursor.py (and async equivalent) and adapt it to these cursors wherever it makes sense.

Roger! Would you like only tests that make use of placeholders, or all of them, even those without use of placeholders?
If the latter, then maybe those without placeholders could be extracted to a separate test, that then test the same tests with RawCursor and a normal cursor, since they should work unmodified, maybe using @pytest.mark.parametrize. Thoughts?

@dvarrazzo
Copy link
Member

dvarrazzo commented May 10, 2023

I would like also tests of the cursor functionality that don't involve the placeholder, because I don't have guarantees that there aren't regressions with e.g. prepared statements or the many other features interacting with the cursor.

For instance, as I'm writing this, and thinking about things happened in the past, #484 is a bug that will come and bite on the raw cursors too. In that case, we were smart enough to add a test so we would have noticed if you copied all the tests for raw cursors too.

https://github.com/psycopg/psycopg/blob/4d0337afd5b9992ed3d5caa3f33f7ec1a6d1670d/tests/test_client_cursor.py#L861C5-L863

The fix for that problem was wrong, or at least it didn't consider that a cursor would have come, in the future, for which _get_info_query() would have been wrong. The right fix should be (untested, likely circular import problem):

diff --git a/psycopg/psycopg/_typeinfo.py b/psycopg/psycopg/_typeinfo.py
index f3386617..dda14bb4 100644
--- a/psycopg/psycopg/_typeinfo.py
+++ b/psycopg/psycopg/_typeinfo.py
@@ -16,6 +16,8 @@ from . import errors as e
 from .abc import AdaptContext, Query
 from .rows import dict_row
 from ._encodings import conn_encoding
+from .cursor import Cursor
+from .cursor_async import AsyncCursor
 
 if TYPE_CHECKING:
     from .connection import BaseConnection, Connection
@@ -96,7 +98,7 @@ class TypeInfo:
             with conn.transaction():
                 if conn_encoding(conn) == "ascii":
                     conn.execute("set local client_encoding to utf8")
-                with conn.cursor(row_factory=dict_row) as cur:
+                with Cursor(conn, row_factory=dict_row) as cur:
                     cur.execute(cls._get_info_query(conn), {"name": name})
                     recs = cur.fetchall()
         except e.UndefinedObject:
@@ -112,7 +114,7 @@ class TypeInfo:
             async with conn.transaction():
                 if conn_encoding(conn) == "ascii":
                     await conn.execute("set local client_encoding to utf8")
-                async with conn.cursor(row_factory=dict_row) as cur:
+                async with AsyncCursor(conn, row_factory=dict_row) as cur:
                     await cur.execute(cls._get_info_query(conn), {"name": name})
                     recs = await cur.fetchall()
         except e.UndefinedObject:

and the same care should be taken for every other use of Connection.cursor() in psycopg codebase.

Yes, there's a lot of duplication, that I see for instance diffing test_cursor with test_client_cursor. Maybe it would be possible to reduce it with a parametrized fixture rather than with pytest.mark: the client cursor has this private fixture redefinition:

@pytest.fixture
def conn(conn):
    conn.cursor_factory = psycopg.ClientCursor
    return conn

If, instead, conn was parametrized, generating three connections, each with a different cursor_factory (Cursor, ClientCursor, RawCursor) then most tests could have a common definition and only class-specific tests would be on their own.

@joelonsql
Copy link
Contributor Author

As a start, I'm working on porting the tests with placeholders from test_cursor.py.

I cannot wrap my head around this one:

def test_query_params_execute(conn):
    cur = conn.cursor()
    assert cur._query is None

    cur.execute("select %t, %s::text", [1, None])
    assert cur._query is not None
    assert cur._query.query == b"select $1, $2::text"
    assert cur._query.params == [b"1", None]

So %t is a "text placeholder"? I assume that means it will threat the param value as text, even if it's some other non-text type? So in this case it will implicitly cast the integer 1 to the text string "1"?

Is it relevant to port these %t tests to the raw queries tests?
If so, then I suppose $1::text would be most equivalent to %t, since then we can pass e.g. the int 1, to get text when the 1 is casted to "1" by Postgres.
But .params will of course be different. When I run the test, it looks like the int 1 becomes bytearray(b'\x00\x01'), which seems odd. Why would it be two bytes?

def test_query_params_execute(conn):
    with RawCursor(conn) as cur:
        assert cur._query is None

        cur.execute("select $1::text, $2::text", [1, None])
        assert cur._query is not None
        assert cur._query.query == b"select $1::text, $2::text"
        assert cur._query.params == [bytearray(b'\x00\x01'), None]

        cur.execute("select 1")
        assert cur._query.query == b"select 1"
        assert not cur._query.params

        with pytest.raises(DataError):
            cur.execute("select $1::int", ["wat"])

        assert cur._query.query == b"select $1::int"
        assert cur._query.params == [b"wat"]

@joelonsql
Copy link
Contributor Author

I've now added all the tests with placeholders from test_cursor.py.

mypy is complaining though, but I'm not sure if it's a false alarm, or if it's really a problem:

tests/test_raw_queries.py:82: error: Item "None" of "Optional[PGresult]" has no attribute "get_value"  [union-attr]
tests/test_raw_queries.py:83: error: Item "None" of "Optional[PGresult]" has no attribute "get_value"  [union-attr]
tests/test_raw_queries.py:84: error: Item "None" of "Optional[PGresult]" has no attribute "get_value"  [union-attr]

Line 82-84 seen below:

        assert cur.pgresult.get_value(0, 0) == b"1"
        assert cur.pgresult.get_value(0, 1) == b"foo"
        assert cur.pgresult.get_value(0, 2) is None

@dvarrazzo
Copy link
Member

Is it relevant to port these %t tests to the raw queries tests?

"text" here doesn't refer to the text data type. It refers to the parameter format - see documentation. Normal psycopg queries support placeholders %t, %b to force an argument to be passed as text or as binary. Using %s, psycopg will try to make the best choice (usually binary is more performing, but for some data types there are problems, so text is preferred).

Using the raw query I don't see the possibility to give the user a choice of format. We could use auto (as you are doing) or text (which is always present). My preference is auto, because it would keep the behaviours of raw and normal cursor more similar and so far we had no report that our "auto" choices are wrong.

When I run the test, it looks like the int 1 becomes bytearray(b'\x00\x01'), which seems odd. Why would it be two bytes?

It's the binary representation of 1 as 16 bits.

assert cur.pgresult.get_value(0, 0) == b"1"

It is complaining that cur.pgresult might be None. So you can add an assert cur.pgresult before the other lines.

@joelonsql
Copy link
Contributor Author

Using the raw query I don't see the possibility to give the user a choice of format. We could use auto (as you are doing) or text (which is always present). My preference is auto, because it would keep the behaviours of raw and normal cursor more similar and so far we had no report that our "auto" choices are wrong.

SGTM.

When I run the test, it looks like the int 1 becomes bytearray(b'\x00\x01'), which seems odd. Why would it be two bytes?

It's the binary representation of 1 as 16 bits.

But why 16 bits? The int 1 conveniently fit in just one byte (8 bits), I would assume it to be encoded as b'\x01'. Why are 2 bytes needed?

assert cur.pgresult.get_value(0, 0) == b"1"
It is complaining that cur.pgresult might be None. So you can add an assert cur.pgresult before the other lines.

OK, I see, that silenced mypy, thanks. But why isn't assert cur.pgresult needed also in test_cursor.py that has the exact same test? See below:

def test_execute_sequence(conn):
    cur = conn.cursor()
    rv = cur.execute("select %s::int, %s::text, %s::text", [1, "foo", None])
    assert rv is cur
    assert len(cur._results) == 1
    assert cur.pgresult.get_value(0, 0) == b"1"
    assert cur.pgresult.get_value(0, 1) == b"foo"
    assert cur.pgresult.get_value(0, 2) is None
    assert cur.nextset() is None

@dvarrazzo
Copy link
Member

But why 16 bits? The int 1 conveniently fit in just one byte (8 bits), I would assume it to be encoded as b'\x01'. Why are 2 bytes needed?

It's not our decision, it is what the database expects.

OK, I see, that silenced mypy, thanks. But why isn't assert cur.pgresult needed also in test_cursor.py that has the exact same test? See below:

No idea. You should investigate that.

@joelonsql
Copy link
Contributor Author

But why 16 bits? The int 1 conveniently fit in just one byte (8 bits), I would assume it to be encoded as b'\x01'. Why are 2 bytes needed?

It's not our decision, it is what the database expects.

Ah, right. Now I get it, thanks.

OK, I see, that silenced mypy, thanks. But why isn't assert cur.pgresult needed also in test_cursor.py that has the exact same test? See below:

No idea. You should investigate that.

Feels like a mypy limitation. I don't think it's necessary to investigate further, we understand the idea of the error reported, and how to fix it. I just think it's not "smart enough" to realise the assert on the line before (assert cur.fetchone() == (1, None)) effectively ensures that cur.pgresult cannot be None, so the extra assert cur.pgresult is unnecessary, so this wouldn't happen in production code anyway.

@joelonsql
Copy link
Contributor Author

@dvarrazzo I've pushed a new commit which parametrizes the existing test_cursor.py to avoid code duplication. Here is the approach I went for:

@pytest.mark.parametrize("cursor_factory, query", [
    (None, "select %s::int, %s::text, %s::text"),
    (psycopg.RawCursor, "select $1::int, $2::text, $3::text"),
])
def test_execute_sequence(conn, cursor_factory, query):
    if cursor_factory:
        conn.cursor_factory=cursor_factory
    cur = conn.cursor()
    rv = cur.execute(query, [1, "foo", None])
    assert rv is cur
    assert len(cur._results) == 1
    assert cur.pgresult.get_value(0, 0) == b"1"
    assert cur.pgresult.get_value(0, 1) == b"foo"
    assert cur.pgresult.get_value(0, 2) is None
    assert cur.nextset() is None

I wanted the existing test to be functionally unmodified, hence the if cursor_factory: instead of setting cursor_factory to psycopg.Cursor or psycopg.RawCursor, since we don't currently explicitly set cursor_factory, so I felt it was important to continue to not do that, by letting it use the default cursor.

Maybe would have been cleaner to pass cursor_factory via the connect() constructor, but that would be more invasive, since it would require changing them to take (dsn) instead of (conn) as input param.

I hope you'll like this approach! But, if you see an even better way, I'm of course eager to know how it should be done instead!

Thanks for guidance.

@joelonsql
Copy link
Contributor Author

@dvarrazzo Just to confirm, I know the async equivalent test remains to be fixed. Just wanted your feedback before proceeding.

@joelonsql
Copy link
Contributor Author

I went ahead and made test_cursor_async.py parametrized as well.

@dvarrazzo
Copy link
Member

@dvarrazzo Just to confirm, I know the async equivalent test remains to be fixed. Just wanted your feedback before proceeding.

Hello, thank you for this. I'll take a look today. At first glance, it's not parametrized the way I expected. I'll try to massage the cursor+client-cursor together and then see if the raw cursor flows well in the same pattern, or if instead your approach works better.

Cheers!

@dvarrazzo
Copy link
Member

@joelonsql I have started to refactor cursor tests in the tests-refactoring branch. Most tests actually use the same code now.

I think your tests could also use the same codebase, although many will need the query rewritten. Maybe we can use a support function to rewrite the placeholders, so that ph("select %s, %s") would be no-op for Cursor and BaseCursor but would return "select $1, $2" for RawCursor.

@joelonsql
Copy link
Contributor Author

@joelonsql I have started to refactor cursor tests in the tests-refactoring branch. Most tests actually use the same code now.

Looks good!

I think your tests could also use the same codebase, although many will need the query rewritten. Maybe we can use a support function to rewrite the placeholders, so that ph("select %s, %s") would be no-op for Cursor and BaseCursor but would return "select $1, $2" for RawCursor.

I like the ph() idea. I guess it would probably just call the default _query2pg() method behind the scenes, and turn a %s,%s,%s-query into a $1,$2,$3-query. This wouldn't allow us to test more complex raw queries, but that's OK since we can have a separate much smaller test_raw_cursor.py test that cover complex cases.

Once you've implemented the ph() idea, I can then add a very advanced complex test_raw_cursor.py test, unless you want me to look at the ph() idea as well?

@dvarrazzo
Copy link
Member

Implementing ph() using _query2pg() seems ok. I would possibly first finish the refactoring banch I'm making before try to apply it on yours.

@dvarrazzo
Copy link
Member

I have worked a bit on this feature, after making the tests less repetitive (first I unified the Cursor and ClientCursor tests into the same module, then added RawCursor to the same module as well). Fixed some issue, cleaned up docs...

I think it's ready to merge now. Thank you very much!

@dvarrazzo dvarrazzo merged commit 92ea275 into psycopg:master Aug 15, 2023
github-merge-queue bot referenced this pull request in microsoft/semantic-kernel Oct 4, 2023
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.1.10 to
3.1.12.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Future releases</h2>
<p>Psycopg 3.2 (unreleased)
^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(🎫<code>[#560](https://github.com/psycopg/psycopg/issues/560)</code>).</li>
<li>Add support for libpq functions to close prepared statements and
portals
introduced in libpq v17
(:ticket:<code>[#603](https://github.com/psycopg/psycopg/issues/603)</code>).</li>
<li>Disable receiving more than one result on the same cursor in
pipeline mode,
to iterate through <code>~Cursor.nextset()</code>. The behaviour was
different than
in non-pipeline mode and not totally reliable
(:ticket:<code>[#604](https://github.com/psycopg/psycopg/issues/604)</code>).
The <code>Cursor</code> now only preserves the results set of the last
<code>~Cursor.execute()</code>, consistently with non-pipeline
mode.</li>
</ul>
<p>.. __: <a
href="https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types">https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types</a></p>
<h2>Current release</h2>
<p>Psycopg 3.1.12
^^^^^^^^^^^^^^</p>
<ul>
<li>Fix possible hanging if a connection is closed while querying
(:ticket:<code>[#608](https://github.com/psycopg/psycopg/issues/608)</code>).</li>
<li>Fix memory leak when <code>~register_*()</code> functions are called
repeatedly

(:ticket:<code>[#647](https://github.com/psycopg/psycopg/issues/647)</code>).</li>
</ul>
<p>Psycopg 3.1.11
^^^^^^^^^^^^^^</p>
<ul>
<li>Avoid caching the parsing results of large queries to avoid
excessive memory
usage
(:ticket:<code>[#628](https://github.com/psycopg/psycopg/issues/628)</code>).</li>
<li>Fix integer overflow in C/binary extension with OID &gt; 2^31
(:ticket:<code>[#630](https://github.com/psycopg/psycopg/issues/630)</code>).</li>
<li>Fix loading of intervals with days and months or years
(:ticket:<code>[#643](https://github.com/psycopg/psycopg/issues/643)</code>).</li>
<li>Work around excessive CPU usage on Windows (reported in
:ticket:<code>[#645](https://github.com/psycopg/psycopg/issues/645)</code>).</li>
<li>Fix building on Solaris and derivatives
(:ticket:<code>[#632](https://github.com/psycopg/psycopg/issues/632)</code>).</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/5498bb85c62cbe71da16731e9f25e8727a098c80"><code>5498bb8</code></a>
chore: bump psycopg package version to 3.1.12</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/b4b8ceb32da7f182ba0e3e0e81d692ce604b15cb"><code>b4b8ceb</code></a>
Merge branch 'fix-608' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/ae43e63400dc7366dde1e26d689cff69238c7d2c"><code>ae43e63</code></a>
fix: use poll() instead of epoll() for waiting</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/8b564e8f2539e6accaa853ec80636ab0d2d53de1"><code>8b564e8</code></a>
fix: don't hang forever if async connection is closed while
querying</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/b3e0be9869257cfa9602608caee4ebe96148f63f"><code>b3e0be9</code></a>
fix: don't raise spurious errors on cancel if the connection is
closed</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/125f93c852cf9a0c4158fe45f162b3b420568a8e"><code>125f93c</code></a>
ci(scaleway_m1): add list command and jq pretty output</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/87dc783af3e744fb6dc411794f9efb627b9a7d1e"><code>87dc783</code></a>
chore(crdb): test 23.1 in CI</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/dbddfc5d3f567cb291b6f98868a97de9ec40d153"><code>dbddfc5</code></a>
Merge branch 'fix-647' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/4137dedad1e2e9078562bbb1ad5fff1b7ef640ed"><code>4137ded</code></a>
fix: cache all dynamically generated adapter types</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d7eea4989766ea92b0d7d51559ff11779ff3b872"><code>d7eea49</code></a>
fix: cache dynamic adapters created in register_array()</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.1.10...3.1.12">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg&package-manager=pip&previous-version=3.1.10&new-version=3.1.12)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mark Wallace <127216156+markwallace-microsoft@users.noreply.github.com>
github-merge-queue bot referenced this pull request in microsoft/semantic-kernel Oct 4, 2023
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.1.10 to
3.1.12.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Future releases</h2>
<p>Psycopg 3.2 (unreleased)
^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(🎫<code>[#560](https://github.com/psycopg/psycopg/issues/560)</code>).</li>
<li>Add support for libpq functions to close prepared statements and
portals
introduced in libpq v17
(:ticket:<code>[#603](https://github.com/psycopg/psycopg/issues/603)</code>).</li>
<li>Disable receiving more than one result on the same cursor in
pipeline mode,
to iterate through <code>~Cursor.nextset()</code>. The behaviour was
different than
in non-pipeline mode and not totally reliable
(:ticket:<code>[#604](https://github.com/psycopg/psycopg/issues/604)</code>).
The <code>Cursor</code> now only preserves the results set of the last
<code>~Cursor.execute()</code>, consistently with non-pipeline
mode.</li>
</ul>
<p>.. __: <a
href="https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types">https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types</a></p>
<h2>Current release</h2>
<p>Psycopg 3.1.12
^^^^^^^^^^^^^^</p>
<ul>
<li>Fix possible hanging if a connection is closed while querying
(:ticket:<code>[#608](https://github.com/psycopg/psycopg/issues/608)</code>).</li>
<li>Fix memory leak when <code>~register_*()</code> functions are called
repeatedly

(:ticket:<code>[#647](https://github.com/psycopg/psycopg/issues/647)</code>).</li>
</ul>
<p>Psycopg 3.1.11
^^^^^^^^^^^^^^</p>
<ul>
<li>Avoid caching the parsing results of large queries to avoid
excessive memory
usage
(:ticket:<code>[#628](https://github.com/psycopg/psycopg/issues/628)</code>).</li>
<li>Fix integer overflow in C/binary extension with OID &gt; 2^31
(:ticket:<code>[#630](https://github.com/psycopg/psycopg/issues/630)</code>).</li>
<li>Fix loading of intervals with days and months or years
(:ticket:<code>[#643](https://github.com/psycopg/psycopg/issues/643)</code>).</li>
<li>Work around excessive CPU usage on Windows (reported in
:ticket:<code>[#645](https://github.com/psycopg/psycopg/issues/645)</code>).</li>
<li>Fix building on Solaris and derivatives
(:ticket:<code>[#632](https://github.com/psycopg/psycopg/issues/632)</code>).</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/5498bb85c62cbe71da16731e9f25e8727a098c80"><code>5498bb8</code></a>
chore: bump psycopg package version to 3.1.12</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/b4b8ceb32da7f182ba0e3e0e81d692ce604b15cb"><code>b4b8ceb</code></a>
Merge branch 'fix-608' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/ae43e63400dc7366dde1e26d689cff69238c7d2c"><code>ae43e63</code></a>
fix: use poll() instead of epoll() for waiting</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/8b564e8f2539e6accaa853ec80636ab0d2d53de1"><code>8b564e8</code></a>
fix: don't hang forever if async connection is closed while
querying</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/b3e0be9869257cfa9602608caee4ebe96148f63f"><code>b3e0be9</code></a>
fix: don't raise spurious errors on cancel if the connection is
closed</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/125f93c852cf9a0c4158fe45f162b3b420568a8e"><code>125f93c</code></a>
ci(scaleway_m1): add list command and jq pretty output</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/87dc783af3e744fb6dc411794f9efb627b9a7d1e"><code>87dc783</code></a>
chore(crdb): test 23.1 in CI</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/dbddfc5d3f567cb291b6f98868a97de9ec40d153"><code>dbddfc5</code></a>
Merge branch 'fix-647' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/4137dedad1e2e9078562bbb1ad5fff1b7ef640ed"><code>4137ded</code></a>
fix: cache all dynamically generated adapter types</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d7eea4989766ea92b0d7d51559ff11779ff3b872"><code>d7eea49</code></a>
fix: cache dynamic adapters created in register_array()</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.1.10...3.1.12">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg&package-manager=pip&previous-version=3.1.10&new-version=3.1.12)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mark Wallace <127216156+markwallace-microsoft@users.noreply.github.com>
SOE-YoungS referenced this pull request in SOE-YoungS/semantic-kernel Nov 1, 2023
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.1.10 to
3.1.12.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Future releases</h2>
<p>Psycopg 3.2 (unreleased)
^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[microsoft#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(🎫<code>[microsoft#560](https://github.com/psycopg/psycopg/issues/560)</code>).</li>
<li>Add support for libpq functions to close prepared statements and
portals
introduced in libpq v17
(:ticket:<code>[microsoft#603](https://github.com/psycopg/psycopg/issues/603)</code>).</li>
<li>Disable receiving more than one result on the same cursor in
pipeline mode,
to iterate through <code>~Cursor.nextset()</code>. The behaviour was
different than
in non-pipeline mode and not totally reliable
(:ticket:<code>[microsoft#604](https://github.com/psycopg/psycopg/issues/604)</code>).
The <code>Cursor</code> now only preserves the results set of the last
<code>~Cursor.execute()</code>, consistently with non-pipeline
mode.</li>
</ul>
<p>.. __: <a
href="https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types">https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types</a></p>
<h2>Current release</h2>
<p>Psycopg 3.1.12
^^^^^^^^^^^^^^</p>
<ul>
<li>Fix possible hanging if a connection is closed while querying
(:ticket:<code>[microsoft#608](https://github.com/psycopg/psycopg/issues/608)</code>).</li>
<li>Fix memory leak when <code>~register_*()</code> functions are called
repeatedly

(:ticket:<code>[microsoft#647](https://github.com/psycopg/psycopg/issues/647)</code>).</li>
</ul>
<p>Psycopg 3.1.11
^^^^^^^^^^^^^^</p>
<ul>
<li>Avoid caching the parsing results of large queries to avoid
excessive memory
usage
(:ticket:<code>[microsoft#628](https://github.com/psycopg/psycopg/issues/628)</code>).</li>
<li>Fix integer overflow in C/binary extension with OID &gt; 2^31
(:ticket:<code>[microsoft#630](https://github.com/psycopg/psycopg/issues/630)</code>).</li>
<li>Fix loading of intervals with days and months or years
(:ticket:<code>[microsoft#643](https://github.com/psycopg/psycopg/issues/643)</code>).</li>
<li>Work around excessive CPU usage on Windows (reported in
:ticket:<code>[microsoft#645](https://github.com/psycopg/psycopg/issues/645)</code>).</li>
<li>Fix building on Solaris and derivatives
(:ticket:<code>[microsoft#632](https://github.com/psycopg/psycopg/issues/632)</code>).</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/5498bb85c62cbe71da16731e9f25e8727a098c80"><code>5498bb8</code></a>
chore: bump psycopg package version to 3.1.12</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/b4b8ceb32da7f182ba0e3e0e81d692ce604b15cb"><code>b4b8ceb</code></a>
Merge branch 'fix-608' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/ae43e63400dc7366dde1e26d689cff69238c7d2c"><code>ae43e63</code></a>
fix: use poll() instead of epoll() for waiting</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/8b564e8f2539e6accaa853ec80636ab0d2d53de1"><code>8b564e8</code></a>
fix: don't hang forever if async connection is closed while
querying</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/b3e0be9869257cfa9602608caee4ebe96148f63f"><code>b3e0be9</code></a>
fix: don't raise spurious errors on cancel if the connection is
closed</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/125f93c852cf9a0c4158fe45f162b3b420568a8e"><code>125f93c</code></a>
ci(scaleway_m1): add list command and jq pretty output</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/87dc783af3e744fb6dc411794f9efb627b9a7d1e"><code>87dc783</code></a>
chore(crdb): test 23.1 in CI</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/dbddfc5d3f567cb291b6f98868a97de9ec40d153"><code>dbddfc5</code></a>
Merge branch 'fix-647' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/4137dedad1e2e9078562bbb1ad5fff1b7ef640ed"><code>4137ded</code></a>
fix: cache all dynamically generated adapter types</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d7eea4989766ea92b0d7d51559ff11779ff3b872"><code>d7eea49</code></a>
fix: cache dynamic adapters created in register_array()</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.1.10...3.1.12">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg&package-manager=pip&previous-version=3.1.10&new-version=3.1.12)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mark Wallace <127216156+markwallace-microsoft@users.noreply.github.com>
github-merge-queue bot referenced this pull request in microsoft/semantic-kernel Feb 20, 2024
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.1.15 to
3.1.18.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Future releases</h2>
<p>Psycopg 3.2 (unreleased)
^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(:ticket:<code>[#560](https://github.com/psycopg/psycopg/issues/560)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Add <code>~Connection.set_autocommit()</code> on sync connections,
and similar
transaction control methods available on the async connections.</li>
<li>Add support for libpq functions to close prepared statements and
portals
introduced in libpq v17
(:ticket:<code>[#603](https://github.com/psycopg/psycopg/issues/603)</code>).</li>
<li>The <code>!context</code> parameter of <code>sql</code> objects
<code>~sql.Composable.as_string()</code> and
<code>~sql.Composable.as_bytes()</code> methods is now optional
(:ticket:<code>[#716](https://github.com/psycopg/psycopg/issues/716)</code>).</li>
<li>Disable receiving more than one result on the same cursor in
pipeline mode,
to iterate through <code>~Cursor.nextset()</code>. The behaviour was
different than
in non-pipeline mode and not totally reliable
(:ticket:<code>[#604](https://github.com/psycopg/psycopg/issues/604)</code>).
The <code>Cursor</code> now only preserves the results set of the last
<code>~Cursor.execute()</code>, consistently with non-pipeline
mode.</li>
</ul>
<p>.. __: <a
href="https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types">https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types</a></p>
<h2>Current release</h2>
<p>Psycopg 3.1.18
^^^^^^^^^^^^^^</p>
<ul>
<li>Fix possible deadlock on pipeline exit
(:ticket:<code>[#685](https://github.com/psycopg/psycopg/issues/685)</code>).</li>
<li>Fix overflow loading large intervals in C module
(:ticket:<code>[#719](https://github.com/psycopg/psycopg/issues/719)</code>).</li>
<li>Fix compatibility with musl libc distributions affected by
<code>CPython issue
[#65821](https://github.com/psycopg/psycopg/issues/65821)</code>__
(:ticket:<code>[#725](https://github.com/psycopg/psycopg/issues/725)</code>).</li>
</ul>
<p>.. __: <a
href="https://redirect.github.com/python/cpython/issues/65821">python/cpython#65821</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/8585a23fcd7bcf75193adbc10d3005752ba8f15f"><code>8585a23</code></a>
chore: bump psycopg package version to 3.1.18</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/ab646b70c82aafe6004064a40a3ba358142999a3"><code>ab646b7</code></a>
fix(c): drop spurious loop break in pipeline_communicate</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/bebfe97f934c9136e4db52709ac0fb4dd9cae64d"><code>bebfe97</code></a>
chore: bump cibuildwheel version</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/89394a6f36d42d308a8e672e9b5deef8e76254ae"><code>89394a6</code></a>
chore: bump checkout action to v4</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/ed579e51ca9b44af148e55d345e312f58ce12a6f"><code>ed579e5</code></a>
docs: fix tickets format</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d4a4e8e1447de3446f614a29a8274ef7c4d03d64"><code>d4a4e8e</code></a>
Merge branch 'musl-ctypes' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/8bc51e6812cfaedebdd7afff7c86be301d5fbf66"><code>8bc51e6</code></a>
docs: mention musl-ctypes workaround in news file</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/afb040a800b2667a07dc441e8cdb94e55a0dcf65"><code>afb040a</code></a>
fix: add <code>libc.so</code> fallback for musl systems to the ctypes
impl</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/06ef0d92109a63fa1a7630804a3a26af0e0a39c9"><code>06ef0d9</code></a>
test: drop ineffective marker on fixture</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/b955118e523c84f5f702d93fd74288ce51ff61db"><code>b955118</code></a>
Merge branch 'fix-interval-overflow' into maint-3.1</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.1.15...3.1.18">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg&package-manager=pip&previous-version=3.1.15&new-version=3.1.18)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eduard van Valkenburg <eavanvalkenburg@users.noreply.github.com>
Co-authored-by: Evan Mattson <35585003+moonbox3@users.noreply.github.com>
julien4215 referenced this pull request in aeecleclair/Hyperion May 17, 2024
Bumps the patch-dependencies group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [bcrypt](https://github.com/pyca/bcrypt) | `4.1.2` | `4.1.3` |
| [icalendar](https://github.com/collective/icalendar) | `5.0.11` |
`5.0.12` |
| [pymupdf](https://github.com/pymupdf/pymupdf) | `1.24.2` | `1.24.3` |
| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.1.18` | `3.1.19`
|
| [psycopg[binary]](https://github.com/psycopg/psycopg) | `3.1.18` |
`3.1.19` |

Updates `bcrypt` from 4.1.2 to 4.1.3
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pyca/bcrypt/commit/35e5a6f5a5131bef22f04dcc9bf401b6eab79642"><code>35e5a6f</code></a>
Bump version for 4.1.3 release (<a
href="https://redirect.github.com/pyca/bcrypt/issues/791">#791</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/d99d1e568d41c7248269bfd37295f65c74fb12bd"><code>d99d1e5</code></a>
Bump autocfg from 1.2.0 to 1.3.0 in /src/_bcrypt (<a
href="https://redirect.github.com/pyca/bcrypt/issues/790">#790</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/0775d47c9a1436706932b1bf8911735881aec8e2"><code>0775d47</code></a>
allow testing with pytest 8.2.0 (<a
href="https://redirect.github.com/pyca/bcrypt/issues/786">#786</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/97d09ac5c190de343af145b61d0b4356950281c0"><code>97d09ac</code></a>
Bump base64 from 0.22.0 to 0.22.1 in /src/_bcrypt (<a
href="https://redirect.github.com/pyca/bcrypt/issues/787">#787</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/ee4a9a8dd1b23d33da931022f2acbf156316f2fb"><code>ee4a9a8</code></a>
use ubuntu rolling in arm64 CI (<a
href="https://redirect.github.com/pyca/bcrypt/issues/784">#784</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/7d2474faa546a1a9daae5cac282977d34fe8aedd"><code>7d2474f</code></a>
Bump libc from 0.2.153 to 0.2.154 in /src/_bcrypt (<a
href="https://redirect.github.com/pyca/bcrypt/issues/783">#783</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/7a252dde4d84dedfc9d8e04308234fea18c6fa45"><code>7a252dd</code></a>
Try blocking pytest 8.2.0 (<a
href="https://redirect.github.com/pyca/bcrypt/issues/785">#785</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/297a915720a64c15274cd927a2b6f0fef2e28772"><code>297a915</code></a>
Remove brew install rust from macOS CI (<a
href="https://redirect.github.com/pyca/bcrypt/issues/782">#782</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/6b3f99eff2447cc7cf9b0cd7bffb3e31871c3648"><code>6b3f99e</code></a>
Bump parking_lot_core from 0.9.9 to 0.9.10 in /src/_bcrypt (<a
href="https://redirect.github.com/pyca/bcrypt/issues/778">#778</a>)</li>
<li><a
href="https://github.com/pyca/bcrypt/commit/c88b31007dfada537b9594540a4e12d49e08eca0"><code>c88b310</code></a>
Bump parking_lot from 0.12.1 to 0.12.2 in /src/_bcrypt (<a
href="https://redirect.github.com/pyca/bcrypt/issues/780">#780</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pyca/bcrypt/compare/4.1.2...4.1.3">compare
view</a></li>
</ul>
</details>
<br />

Updates `icalendar` from 5.0.11 to 5.0.12
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/collective/icalendar/blob/master/CHANGES.rst">icalendar's
changelog</a>.</em></p>
<blockquote>
<h2>5.0.12 (2024-03-19)</h2>
<p>Minor changes:</p>
<ul>
<li>Analyse code coverage of test files</li>
<li>Added corpus to fuzzing directory</li>
<li>Added exclusion of fuzzing corpus in MANIFEST.in</li>
<li>Augmented fuzzer to optionally convert multiple calendars from a
source string</li>
<li>Add script to convert OSS FUZZ test cases to Python/pytest test
cases</li>
<li>Added additional exception handling of defined errors to fuzzer, to
allow fuzzer to explore deeper</li>
<li>Added more instrumentation to fuzz-harness</li>
<li>Rename &quot;contributor&quot; to &quot;collaborator&quot; in
documentation</li>
<li>Correct the outdated &quot;icalendar view myfile.ics&quot; command
in documentation. <a
href="https://redirect.github.com/collective/icalendar/issues/588">#588</a></li>
<li>Update GitHub Actions steps versions</li>
<li>Keep GitHub Actions up to date with GitHub's Dependabot</li>
</ul>
<p>Breaking changes:</p>
<ul>
<li>...</li>
</ul>
<p>New features:</p>
<ul>
<li>...</li>
</ul>
<p>Bug fixes:</p>
<ul>
<li>...</li>
<li>Fixed index error in cal.py when attempting to pop from an empty
stack</li>
<li>Fixed type error in prop.py when attempting to join strings into a
byte-string</li>
<li>Caught Wrong Date Format in ical_fuzzer to resolve fuzzing coverage
blocker</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/collective/icalendar/commit/72966e7610416cf718f6ad9575db4dab4c2d7d96"><code>72966e7</code></a>
try to set a body text of the release</li>
<li><a
href="https://github.com/collective/icalendar/commit/38fcd16a78c835ed0fb268ba5ba4302c28be2f27"><code>38fcd16</code></a>
modify release</li>
<li><a
href="https://github.com/collective/icalendar/commit/679ecab15fdd104ded84f6775c3f13cc895a99e5"><code>679ecab</code></a>
use different release action</li>
<li><a
href="https://github.com/collective/icalendar/commit/216452c616c983549ce5bd88be6f3f3cb14a7c9d"><code>216452c</code></a>
use github.token</li>
<li><a
href="https://github.com/collective/icalendar/commit/72c0d6daecf552f90d9a1bdca78d23c06e906b3f"><code>72c0d6d</code></a>
try other tag release method</li>
<li><a
href="https://github.com/collective/icalendar/commit/5551ad90619e9d06d76e12555212efdea85733a3"><code>5551ad9</code></a>
version 5.0.12</li>
<li><a
href="https://github.com/collective/icalendar/commit/f41772059a67007a5e394df23887bb294d6fbe83"><code>f417720</code></a>
Merge pull request <a
href="https://redirect.github.com/collective/icalendar/issues/602">#602</a>
from niccokunzmann/refactor-test-6</li>
<li><a
href="https://github.com/collective/icalendar/commit/b51fef6e9ad74c7990d872ded333db9ffa87f47c"><code>b51fef6</code></a>
Merge pull request <a
href="https://redirect.github.com/collective/icalendar/issues/599">#599</a>
from niccokunzmann/refactor-test-3</li>
<li><a
href="https://github.com/collective/icalendar/commit/fb0baf40648522336a6997119429baf08dcdf8da"><code>fb0baf4</code></a>
Merge pull request <a
href="https://redirect.github.com/collective/icalendar/issues/598">#598</a>
from niccokunzmann/refactor-test-2</li>
<li><a
href="https://github.com/collective/icalendar/commit/00a2d56f2e36413a035a498c8822471d96cca480"><code>00a2d56</code></a>
Merge pull request <a
href="https://redirect.github.com/collective/icalendar/issues/597">#597</a>
from niccokunzmann/refactor-test-1</li>
<li>Additional commits viewable in <a
href="https://github.com/collective/icalendar/compare/v5.0.11...v5.0.12">compare
view</a></li>
</ul>
</details>
<br />

Updates `pymupdf` from 1.24.2 to 1.24.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pymupdf/pymupdf/releases">pymupdf's
releases</a>.</em></p>
<blockquote>
<h2>PyMuPDF-1.24.3 released</h2>
<p>PyMuPDF-1.24.3 has been released.</p>
<p>Wheels for Windows, Linux and MacOS, and the sdist, are available on
pypi.org and can be installed in the usual way, for example:</p>
<pre><code>python -m pip install --upgrade pymupdf
</code></pre>
<p>[Linux-aarch64 wheels will be built and uploaded later.]</p>
<p><strong>Changes in version 1.24.3 (2024-05-09)</strong></p>
<ul>
<li>
<p>The Python module is now called <code>pymupdf</code>.
<code>fitz</code> is still supported for
backwards compatibility.</p>
</li>
<li>
<p>Use MuPDF-1.24.2.</p>
</li>
<li>
<p>Fixed issues:</p>
<ul>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3357">#3357</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3376">#3376</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3379">#3379</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3381">#3381</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3402">#3402</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3414">#3414</a></li>
<li><strong>Fixed</strong> <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3430">#3430</a></li>
</ul>
</li>
<li>
<p>Other:</p>
<ul>
<li>
<p>New/modified methods:</p>
<ul>
<li><code>Page.remove_rotation()</code>: new, set page rotation to zero
while keeping appearance.</li>
</ul>
</li>
<li>
<p>Fixed some problems when checking for PDF properties.</p>
</li>
<li>
<p>Fixed pip builds from sdist
(see discussion <a
href="https://redirect.github.com/pymupdf/pymupdf/issues/3360">#3360</a>).</p>
</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pymupdf/PyMuPDF/blob/main/changes.txt">pymupdf's
changelog</a>.</em></p>
<blockquote>
<h1>Change Log</h1>
<p><strong>Changes in version 1.24.3 (2024-05-09)</strong></p>
<ul>
<li>
<p>The Python module is now called <code>pymupdf</code>.
<code>fitz</code> is still supported for
backwards compatibility.</p>
</li>
<li>
<p>Use MuPDF-1.24.2.</p>
</li>
<li>
<p>Fixed issues:</p>
<ul>
<li><strong>Fixed</strong> <code>3357
&lt;https://github.com/pymupdf/PyMuPDF/issues/3357&gt;</code>_:
PyMuPDF==1.24.0 will hanging when using
page.get_text(&quot;text&quot;)</li>
<li><strong>Fixed</strong> <code>3376
&lt;https://github.com/pymupdf/PyMuPDF/issues/3376&gt;</code>_:
Redacting results are not as expected in 1.24.x.</li>
<li><strong>Fixed</strong> <code>3379
&lt;https://github.com/pymupdf/PyMuPDF/issues/3379&gt;</code>_:
Documentation mismatch for get_text_blocks return value order.</li>
<li><strong>Fixed</strong> <code>3381
&lt;https://github.com/pymupdf/PyMuPDF/issues/3381&gt;</code>_: Contents
stream contains floats in scientific notation</li>
<li><strong>Fixed</strong> <code>3402
&lt;https://github.com/pymupdf/PyMuPDF/issues/3402&gt;</code>_: Cannot
add Widgets containing inter-field-calculation JavaScript</li>
<li><strong>Fixed</strong> <code>3414
&lt;https://github.com/pymupdf/PyMuPDF/issues/3414&gt;</code>_: missing
attribute set_dpi()</li>
<li><strong>Fixed</strong> <code>3430
&lt;https://github.com/pymupdf/PyMuPDF/issues/3430&gt;</code>_:
page.get_text() cause process freeze with certain pdf on v1.24.2</li>
</ul>
</li>
<li>
<p>Other:</p>
<ul>
<li>
<p>New/modified methods:</p>
<ul>
<li><code>Page.remove_rotation()</code>: new, set page rotation to zero
while keeping appearance.</li>
</ul>
</li>
<li>
<p>Fixed some problems when checking for PDF properties.</p>
</li>
<li>
<p>Fixed pip builds from sdist
(see discussion <code>3360
&lt;https://github.com/pymupdf/PyMuPDF/discussions/3360&gt;</code>_:
Alpine linux docker build failing &quot;No matching distribution found
for pymupdfb==1.24.1&quot;).</p>
</li>
</ul>
</li>
</ul>
<p><strong>Changes in version 1.24.2 (2024-04-17)</strong></p>
<ul>
<li>
<p>Removed obsolete classic implementation from releases
(previously available as module <code>fitz_old</code>).</p>
</li>
<li>
<p>Fixed issues:</p>
<ul>
<li><strong>Fixed</strong> <code>3331
&lt;https://github.com/pymupdf/PyMuPDF/issues/3331&gt;</code>_:
Document.pages() is incorrectly type-hinted</li>
<li><strong>Fixed</strong> <code>3354
&lt;https://github.com/pymupdf/PyMuPDF/issues/3354&gt;</code>_:
PyMuPDF==1.24.1: AttributeError: property 'metadata' of 'Document'
object has no setter</li>
</ul>
</li>
<li>
<p>Other:</p>
<ul>
<li>
<p>New/modified methods:</p>
<ul>
<li><code>Document.bake()</code>: new, make annotations / fields
permanent content.</li>
<li><code>Page.cluster_drawings()</code>: new, identifies drawing
items</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/5bcc16e6ee52877965df2fb0ad60b518e860b97d"><code>5bcc16e</code></a>
Updated release date for 1.24.3.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/762be9ebeaac1e9174e9f41a6a561b12262e4792"><code>762be9e</code></a>
scripts/gh_release.py: avoid problems when building macos-arm64
wheels.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/2d68701a16f58ab7c4c2c03cdd84485a2a33bc11"><code>2d68701</code></a>
.github/workflows/build_wheels.yml: use macos-13 and macos-14.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/b18d200407df544b75e6bb0d55fa6fdb56a2ed63"><code>b18d200</code></a>
Update changelog, version numbers and release dates for release
1.24.3.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/89f9b442c30141a51e9aec4e958487a7f8f3a802"><code>89f9b44</code></a>
tests/test_annots.py:test_1645(): fix confusing lack of indentation in
fn call.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/f8456bad93b872076f28f9c066a37981018a3522"><code>f8456ba</code></a>
tests/: update test_1645() to match recent mupdf master.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/2ceb2e1fec0b0e0564674b11aa399fb49ecc9e51"><code>2ceb2e1</code></a>
tests/: updated to match fixes in MuPDF-1.24.2.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/64159ac5d94dd2ce01bc783c526614e3c19d9791"><code>64159ac</code></a>
Add an additional check to test_q_count().</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/00d54f2770f7cfd0ebd0ea2fbb08825de5e01d9d"><code>00d54f2</code></a>
.github/workflows/build_wheels.yml: use scripts/gh_release.py to build
sdists.</li>
<li><a
href="https://github.com/pymupdf/PyMuPDF/commit/a4f7d6a8ec1aa8541d5dee42c8e26dd289a56bde"><code>a4f7d6a</code></a>
scripts/gh_release.py: Also build PyMuPDFb sdist.</li>
<li>Additional commits viewable in <a
href="https://github.com/pymupdf/pymupdf/compare/1.24.2...1.24.3">compare
view</a></li>
</ul>
</details>
<br />

Updates `psycopg[c]` from 3.1.18 to 3.1.19
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg[c]'s
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Future releases</h2>
<p>Psycopg 3.2 (unreleased)
^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(:ticket:<code>[#560](https://github.com/psycopg/psycopg/issues/560)</code>).</li>
<li>Add <code>psycopg.capabilities</code> object to :ref:<code>inspect
the libpq capabilities &lt;capabilities&gt;</code>
(🎫<code>[#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Prepared statements are now :ref:<code>compatible with PgBouncer
&lt;pgbouncer&gt;</code>.

(🎫<code>[#589](https://github.com/psycopg/psycopg/issues/589)</code>).</li>
<li>Add <code>~Connection.set_autocommit()</code> on sync connections,
and similar
transaction control methods available on the async connections.</li>
<li>Add support for libpq functions to close prepared statements and
portals
introduced in libpq v17
(:ticket:<code>[#603](https://github.com/psycopg/psycopg/issues/603)</code>).</li>
<li>Add support for libpq encrypted and non-blocking query cancellation
functions introduced in libpq v17
(:ticket:<code>[#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
<li>The <code>!context</code> parameter of <code>sql</code> objects
<code>~sql.Composable.as_string()</code> and
<code>~sql.Composable.as_bytes()</code> methods is now optional
(:ticket:<code>[#716](https://github.com/psycopg/psycopg/issues/716)</code>).</li>
<li>Disable receiving more than one result on the same cursor in
pipeline mode,
to iterate through <code>~Cursor.nextset()</code>. The behaviour was
different than
in non-pipeline mode and not totally reliable
(:ticket:<code>[#604](https://github.com/psycopg/psycopg/issues/604)</code>).
The <code>Cursor</code> now only preserves the results set of the last
<code>~Cursor.execute()</code>, consistently with non-pipeline
mode.</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
If possible, use such method internally upon
<code>KeyboardInterrupt</code> and <code>Copy</code>
termination
(:ticket:<code>[#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
<li>Add support for libpq function to retrieve results in chunks
introduced in
libpq v17
(:ticket:<code>[#793](https://github.com/psycopg/psycopg/issues/793)</code>).</li>
</ul>
<p>.. __: <a
href="https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types">https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types</a></p>
<h2>Current release</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/780068d53685ab85c3fbb273596f562e6eeba297"><code>780068d</code></a>
chore: bump psycopg package version to 3.1.19</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/040489c648d5f3fb12342a55c02911e02f21aa6b"><code>040489c</code></a>
chore(crdb): upgrade types to v23.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/163f3665b11eab10d7de6d917162b660d4229774"><code>163f366</code></a>
ci(macos): test and build macOS packages on M1 runners</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/01d5dabde6a3d5250b33e6d53fea7789afdb6125"><code>01d5dab</code></a>
Merge branch 'fix-745' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/28fc73e5730d594d7340dbd2a686ce01894ba8e5"><code>28fc73e</code></a>
perf(copy): only flush at every row on copy on macOS</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/963c5f8a1b169eccee05fbf0b9738308df86706e"><code>963c5f8</code></a>
Improve performance of copy</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/c9486b3a9f22b1003705c59a0c6cc5248f6a2ec7"><code>c9486b3</code></a>
test(copy): add minimal copy benchmark framework</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/33989450c64dc2da93697183a8f4a61242b2bebd"><code>3398945</code></a>
Merge branch 'fix-734' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/cfc0782032f8fa86096a7b9f7fd83b6870ec7fe5"><code>cfc0782</code></a>
fix(c): solve undefined behaviour caused by unaligned access</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/611738ff3626e7f0d35d66c934653220a7248bbe"><code>611738f</code></a>
ci: add test to check for misaligned memory access</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.1.18...3.1.19">compare
view</a></li>
</ul>
</details>
<br />

Updates `psycopg[binary]` from 3.1.18 to 3.1.19
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg[binary]'s
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Future releases</h2>
<p>Psycopg 3.2 (unreleased)
^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(:ticket:<code>[#560](https://github.com/psycopg/psycopg/issues/560)</code>).</li>
<li>Add <code>psycopg.capabilities</code> object to :ref:<code>inspect
the libpq capabilities &lt;capabilities&gt;</code>
(🎫<code>[#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Prepared statements are now :ref:<code>compatible with PgBouncer
&lt;pgbouncer&gt;</code>.

(🎫<code>[#589](https://github.com/psycopg/psycopg/issues/589)</code>).</li>
<li>Add <code>~Connection.set_autocommit()</code> on sync connections,
and similar
transaction control methods available on the async connections.</li>
<li>Add support for libpq functions to close prepared statements and
portals
introduced in libpq v17
(:ticket:<code>[#603](https://github.com/psycopg/psycopg/issues/603)</code>).</li>
<li>Add support for libpq encrypted and non-blocking query cancellation
functions introduced in libpq v17
(:ticket:<code>[#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
<li>The <code>!context</code> parameter of <code>sql</code> objects
<code>~sql.Composable.as_string()</code> and
<code>~sql.Composable.as_bytes()</code> methods is now optional
(:ticket:<code>[#716](https://github.com/psycopg/psycopg/issues/716)</code>).</li>
<li>Disable receiving more than one result on the same cursor in
pipeline mode,
to iterate through <code>~Cursor.nextset()</code>. The behaviour was
different than
in non-pipeline mode and not totally reliable
(:ticket:<code>[#604](https://github.com/psycopg/psycopg/issues/604)</code>).
The <code>Cursor</code> now only preserves the results set of the last
<code>~Cursor.execute()</code>, consistently with non-pipeline
mode.</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
If possible, use such method internally upon
<code>KeyboardInterrupt</code> and <code>Copy</code>
termination
(:ticket:<code>[#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
<li>Add support for libpq function to retrieve results in chunks
introduced in
libpq v17
(:ticket:<code>[#793](https://github.com/psycopg/psycopg/issues/793)</code>).</li>
</ul>
<p>.. __: <a
href="https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types">https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types</a></p>
<h2>Current release</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/780068d53685ab85c3fbb273596f562e6eeba297"><code>780068d</code></a>
chore: bump psycopg package version to 3.1.19</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/040489c648d5f3fb12342a55c02911e02f21aa6b"><code>040489c</code></a>
chore(crdb): upgrade types to v23.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/163f3665b11eab10d7de6d917162b660d4229774"><code>163f366</code></a>
ci(macos): test and build macOS packages on M1 runners</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/01d5dabde6a3d5250b33e6d53fea7789afdb6125"><code>01d5dab</code></a>
Merge branch 'fix-745' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/28fc73e5730d594d7340dbd2a686ce01894ba8e5"><code>28fc73e</code></a>
perf(copy): only flush at every row on copy on macOS</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/963c5f8a1b169eccee05fbf0b9738308df86706e"><code>963c5f8</code></a>
Improve performance of copy</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/c9486b3a9f22b1003705c59a0c6cc5248f6a2ec7"><code>c9486b3</code></a>
test(copy): add minimal copy benchmark framework</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/33989450c64dc2da93697183a8f4a61242b2bebd"><code>3398945</code></a>
Merge branch 'fix-734' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/cfc0782032f8fa86096a7b9f7fd83b6870ec7fe5"><code>cfc0782</code></a>
fix(c): solve undefined behaviour caused by unaligned access</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/611738ff3626e7f0d35d66c934653220a7248bbe"><code>611738f</code></a>
ci: add test to check for misaligned memory access</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.1.18...3.1.19">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
github-merge-queue bot pushed a commit to microsoft/semantic-kernel that referenced this pull request Jul 2, 2024
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.1.19 to
3.2.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Current release</h2>
<p>Psycopg 3.2.1
^^^^^^^^^^^^^</p>
<ul>
<li>Fix packaging metadata breaking <code>[c]</code>,
<code>[binary]</code> dependencies

(:ticket:<code>[#853](https://github.com/psycopg/psycopg/issues/853)</code>).</li>
</ul>
<h2>Psycopg 3.2</h2>
<p>.. rubric:: New top-level features</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Allow dumpers to return <code>!None</code>, to be converted to NULL
(:ticket:<code>[#377](https://github.com/psycopg/psycopg/issues/377)</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(🎟️<code>[#560](psycopg/psycopg#560),
[#839](https://github.com/psycopg/psycopg/issues/839)</code>).</li>
<li>Add <code>capabilities</code> object to :ref:<code>inspect the libpq
capabilities &lt;capabilities&gt;</code>
(🎫<code>[#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
when using libpq v17. Use such method internally to implement
<code>!KeyboardInterrupt</code> and <code>~cursor.copy</code>
termination
(:ticket:<code>[#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
<li>The <code>!context</code> parameter of <code>sql</code> objects
<code>~sql.Composable.as_string()</code> and
<code>~sql.Composable.as_bytes()</code> methods is now optional
(:ticket:<code>[#716](https://github.com/psycopg/psycopg/issues/716)</code>).</li>
<li>Add <code>~Connection.set_autocommit()</code> on sync connections,
and similar
transaction control methods available on the async connections.</li>
<li>Add a <code>size</code> parameter to <code>~Cursor.stream()</code>
to enable results retrieval in
chunks instead of row-by-row
(:ticket:<code>[#794](https://github.com/psycopg/psycopg/issues/794)</code>).</li>
</ul>
<p>.. rubric:: New libpq wrapper features</p>
<ul>
<li>Add support for libpq functions to close prepared statements and
portals
introduced in libpq v17
(:ticket:<code>[#603](https://github.com/psycopg/psycopg/issues/603)</code>).</li>
<li>Add support for libpq encrypted and non-blocking query cancellation
functions introduced in libpq v17
(:ticket:<code>[#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/bb47d3944d1c65d9baf83808696aba1b2dfed9af"><code>bb47d39</code></a>
chore: bump psycopg package version to 3.2.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/55490a2d6b8344e3b49f6004c8e7afdc6d40c5fb"><code>55490a2</code></a>
fix: fix versions in packaging metadata</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/1cbc42a6759823e18d273e739cc64d7f994f53b2"><code>1cbc42a</code></a>
docs: fix title level of major releases</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/06a6e5e213577fca0fa1c6ca62def8fa5803663a"><code>06a6e5e</code></a>
docs: mention dropping Python 3.7 in psycopg 3.2 release</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/ea3735dccc5dfd20eb4ba5c4a3c52ec76d9aa6d0"><code>ea3735d</code></a>
docs: better organization of the 3.2 release notes</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/896eee2363d0bc25cc31ccf4189b295bb61deb40"><code>896eee2</code></a>
chore: bump psycopg package version to 3.2.0</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/2e2f4d7dd31cac67b790c293de70133373173ebb"><code>2e2f4d7</code></a>
chore: bump psycopg package version to 3.1.20</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/7369d3bb0280851832a395d6b3084de7b520e3a0"><code>7369d3b</code></a>
Merge pull request <a
href="https://redirect.github.com/psycopg/psycopg/issues/846">#846</a>
from eli-schwartz/tomllib</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/6672c708f1813978461aff6e5e240a96773ff873"><code>6672c70</code></a>
style: shorter line in pyproject.toml</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/a517bb4579d2b8caa4ddc1e81294d6026c8974d6"><code>a517bb4</code></a>
build: avoid installing tomli on recent python</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.1.19...3.2.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg&package-manager=pip&previous-version=3.1.19&new-version=3.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
armanddidierjean pushed a commit to aeecleclair/Hyperion that referenced this pull request Aug 6, 2024
Bumps [psycopg[binary]](https://github.com/psycopg/psycopg) from 3.1.19
to 3.2.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg[binary]'s
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Future releases</h2>
<p>Psycopg 3.2.2 (unreleased)
^^^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Drop <code>!TypeDef</code> specifications as string from public
modules, as they cannot
be composed by users as <code>!typing</code> objects previously could
(:ticket:<code>[#860](https://github.com/psycopg/psycopg/issues/860)</code>).</li>
</ul>
<h2>Current release</h2>
<p>Psycopg 3.2.1
^^^^^^^^^^^^^</p>
<ul>
<li>Fix packaging metadata breaking <code>[c]</code>,
<code>[binary]</code> dependencies

(:ticket:<code>[#853](https://github.com/psycopg/psycopg/issues/853)</code>).</li>
</ul>
<h2>Psycopg 3.2</h2>
<p>.. rubric:: New top-level features</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Allow dumpers to return <code>!None</code>, to be converted to NULL
(:ticket:<code>[#377](https://github.com/psycopg/psycopg/issues/377)</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(🎟️<code>[#560](psycopg/psycopg#560),
[#839](https://github.com/psycopg/psycopg/issues/839)</code>).</li>
<li>Add <code>capabilities</code> object to :ref:<code>inspect the libpq
capabilities &lt;capabilities&gt;</code>
(🎫<code>[#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
when using libpq v17. Use such method internally to implement
<code>!KeyboardInterrupt</code> and <code>~cursor.copy</code>
termination
(:ticket:<code>[#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
<li>The <code>!context</code> parameter of <code>sql</code> objects
<code>~sql.Composable.as_string()</code> and
<code>~sql.Composable.as_bytes()</code> methods is now optional
(:ticket:<code>[#716](https://github.com/psycopg/psycopg/issues/716)</code>).</li>
<li>Add <code>~Connection.set_autocommit()</code> on sync connections,
and similar</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/bb47d3944d1c65d9baf83808696aba1b2dfed9af"><code>bb47d39</code></a>
chore: bump psycopg package version to 3.2.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/55490a2d6b8344e3b49f6004c8e7afdc6d40c5fb"><code>55490a2</code></a>
fix: fix versions in packaging metadata</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/1cbc42a6759823e18d273e739cc64d7f994f53b2"><code>1cbc42a</code></a>
docs: fix title level of major releases</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/06a6e5e213577fca0fa1c6ca62def8fa5803663a"><code>06a6e5e</code></a>
docs: mention dropping Python 3.7 in psycopg 3.2 release</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/ea3735dccc5dfd20eb4ba5c4a3c52ec76d9aa6d0"><code>ea3735d</code></a>
docs: better organization of the 3.2 release notes</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/896eee2363d0bc25cc31ccf4189b295bb61deb40"><code>896eee2</code></a>
chore: bump psycopg package version to 3.2.0</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/2e2f4d7dd31cac67b790c293de70133373173ebb"><code>2e2f4d7</code></a>
chore: bump psycopg package version to 3.1.20</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/7369d3bb0280851832a395d6b3084de7b520e3a0"><code>7369d3b</code></a>
Merge pull request <a
href="https://redirect.github.com/psycopg/psycopg/issues/846">#846</a>
from eli-schwartz/tomllib</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/6672c708f1813978461aff6e5e240a96773ff873"><code>6672c70</code></a>
style: shorter line in pyproject.toml</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/a517bb4579d2b8caa4ddc1e81294d6026c8974d6"><code>a517bb4</code></a>
build: avoid installing tomli on recent python</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.1.19...3.2.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg[binary]&package-manager=pip&previous-version=3.1.19&new-version=3.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ikarius pushed a commit to gip-inclusion/dora-back that referenced this pull request Aug 13, 2024
Bumps [psycopg[binary]](https://github.com/psycopg/psycopg) from 3.1.19
to 3.2.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg[binary]'s
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Future releases</h2>
<p>Psycopg 3.2.2 (unreleased)
^^^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Drop <code>!TypeDef</code> specifications as string from public
modules, as they cannot
be composed by users as <code>!typing</code> objects previously could
(:ticket:<code>[#860](https://github.com/psycopg/psycopg/issues/860)</code>).</li>
</ul>
<h2>Current release</h2>
<p>Psycopg 3.2.1
^^^^^^^^^^^^^</p>
<ul>
<li>Fix packaging metadata breaking <code>[c]</code>,
<code>[binary]</code> dependencies

(:ticket:<code>[#853](https://github.com/psycopg/psycopg/issues/853)</code>).</li>
</ul>
<h2>Psycopg 3.2</h2>
<p>.. rubric:: New top-level features</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Allow dumpers to return <code>!None</code>, to be converted to NULL
(:ticket:<code>[#377](https://github.com/psycopg/psycopg/issues/377)</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(🎟️<code>[#560](psycopg/psycopg#560),
[#839](https://github.com/psycopg/psycopg/issues/839)</code>).</li>
<li>Add <code>capabilities</code> object to :ref:<code>inspect the libpq
capabilities &lt;capabilities&gt;</code>
(🎫<code>[#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
when using libpq v17. Use such method internally to implement
<code>!KeyboardInterrupt</code> and <code>~cursor.copy</code>
termination
(:ticket:<code>[#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
<li>The <code>!context</code> parameter of <code>sql</code> objects
<code>~sql.Composable.as_string()</code> and
<code>~sql.Composable.as_bytes()</code> methods is now optional
(:ticket:<code>[#716](https://github.com/psycopg/psycopg/issues/716)</code>).</li>
<li>Add <code>~Connection.set_autocommit()</code> on sync connections,
and similar</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/bb47d3944d1c65d9baf83808696aba1b2dfed9af"><code>bb47d39</code></a>
chore: bump psycopg package version to 3.2.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/55490a2d6b8344e3b49f6004c8e7afdc6d40c5fb"><code>55490a2</code></a>
fix: fix versions in packaging metadata</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/1cbc42a6759823e18d273e739cc64d7f994f53b2"><code>1cbc42a</code></a>
docs: fix title level of major releases</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/06a6e5e213577fca0fa1c6ca62def8fa5803663a"><code>06a6e5e</code></a>
docs: mention dropping Python 3.7 in psycopg 3.2 release</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/ea3735dccc5dfd20eb4ba5c4a3c52ec76d9aa6d0"><code>ea3735d</code></a>
docs: better organization of the 3.2 release notes</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/896eee2363d0bc25cc31ccf4189b295bb61deb40"><code>896eee2</code></a>
chore: bump psycopg package version to 3.2.0</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/2e2f4d7dd31cac67b790c293de70133373173ebb"><code>2e2f4d7</code></a>
chore: bump psycopg package version to 3.1.20</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/7369d3bb0280851832a395d6b3084de7b520e3a0"><code>7369d3b</code></a>
Merge pull request <a
href="https://redirect.github.com/psycopg/psycopg/issues/846">#846</a>
from eli-schwartz/tomllib</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/6672c708f1813978461aff6e5e240a96773ff873"><code>6672c70</code></a>
style: shorter line in pyproject.toml</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/a517bb4579d2b8caa4ddc1e81294d6026c8974d6"><code>a517bb4</code></a>
build: avoid installing tomli on recent python</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.1.19...3.2.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg[binary]&package-manager=pip&previous-version=3.1.19&new-version=3.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
LudoCorporateShark referenced this pull request in LudoCorporateShark/semantic-kernel Aug 25, 2024
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.1.15 to
3.1.18.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Future releases</h2>
<p>Psycopg 3.2 (unreleased)
^^^^^^^^^^^^^^^^^^^^^^^^</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[microsoft#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(:ticket:<code>[microsoft#560](https://github.com/psycopg/psycopg/issues/560)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[microsoft#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Add <code>~Connection.set_autocommit()</code> on sync connections,
and similar
transaction control methods available on the async connections.</li>
<li>Add support for libpq functions to close prepared statements and
portals
introduced in libpq v17
(:ticket:<code>[microsoft#603](https://github.com/psycopg/psycopg/issues/603)</code>).</li>
<li>The <code>!context</code> parameter of <code>sql</code> objects
<code>~sql.Composable.as_string()</code> and
<code>~sql.Composable.as_bytes()</code> methods is now optional
(:ticket:<code>[microsoft#716](https://github.com/psycopg/psycopg/issues/716)</code>).</li>
<li>Disable receiving more than one result on the same cursor in
pipeline mode,
to iterate through <code>~Cursor.nextset()</code>. The behaviour was
different than
in non-pipeline mode and not totally reliable
(:ticket:<code>[microsoft#604](https://github.com/psycopg/psycopg/issues/604)</code>).
The <code>Cursor</code> now only preserves the results set of the last
<code>~Cursor.execute()</code>, consistently with non-pipeline
mode.</li>
</ul>
<p>.. __: <a
href="https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types">https://numpy.org/doc/stable/reference/arrays.scalars.html#built-in-scalar-types</a></p>
<h2>Current release</h2>
<p>Psycopg 3.1.18
^^^^^^^^^^^^^^</p>
<ul>
<li>Fix possible deadlock on pipeline exit
(:ticket:<code>[microsoft#685](https://github.com/psycopg/psycopg/issues/685)</code>).</li>
<li>Fix overflow loading large intervals in C module
(:ticket:<code>[microsoft#719](https://github.com/psycopg/psycopg/issues/719)</code>).</li>
<li>Fix compatibility with musl libc distributions affected by
<code>CPython issue
[#65821](https://github.com/psycopg/psycopg/issues/65821)</code>__
(:ticket:<code>[microsoft#725](https://github.com/psycopg/psycopg/issues/725)</code>).</li>
</ul>
<p>.. __: <a
href="https://redirect.github.com/python/cpython/issues/65821">python/cpython#65821</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/8585a23fcd7bcf75193adbc10d3005752ba8f15f"><code>8585a23</code></a>
chore: bump psycopg package version to 3.1.18</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/ab646b70c82aafe6004064a40a3ba358142999a3"><code>ab646b7</code></a>
fix(c): drop spurious loop break in pipeline_communicate</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/bebfe97f934c9136e4db52709ac0fb4dd9cae64d"><code>bebfe97</code></a>
chore: bump cibuildwheel version</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/89394a6f36d42d308a8e672e9b5deef8e76254ae"><code>89394a6</code></a>
chore: bump checkout action to v4</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/ed579e51ca9b44af148e55d345e312f58ce12a6f"><code>ed579e5</code></a>
docs: fix tickets format</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d4a4e8e1447de3446f614a29a8274ef7c4d03d64"><code>d4a4e8e</code></a>
Merge branch 'musl-ctypes' into maint-3.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/8bc51e6812cfaedebdd7afff7c86be301d5fbf66"><code>8bc51e6</code></a>
docs: mention musl-ctypes workaround in news file</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/afb040a800b2667a07dc441e8cdb94e55a0dcf65"><code>afb040a</code></a>
fix: add <code>libc.so</code> fallback for musl systems to the ctypes
impl</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/06ef0d92109a63fa1a7630804a3a26af0e0a39c9"><code>06ef0d9</code></a>
test: drop ineffective marker on fixture</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/b955118e523c84f5f702d93fd74288ce51ff61db"><code>b955118</code></a>
Merge branch 'fix-interval-overflow' into maint-3.1</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.1.15...3.1.18">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg&package-manager=pip&previous-version=3.1.15&new-version=3.1.18)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eduard van Valkenburg <eavanvalkenburg@users.noreply.github.com>
Co-authored-by: Evan Mattson <35585003+moonbox3@users.noreply.github.com>
LudoCorporateShark pushed a commit to LudoCorporateShark/semantic-kernel that referenced this pull request Aug 25, 2024
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.1.19 to
3.2.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Current release</h2>
<p>Psycopg 3.2.1
^^^^^^^^^^^^^</p>
<ul>
<li>Fix packaging metadata breaking <code>[c]</code>,
<code>[binary]</code> dependencies

(:ticket:<code>[microsoft#853](https://github.com/psycopg/psycopg/issues/853)</code>).</li>
</ul>
<h2>Psycopg 3.2</h2>
<p>.. rubric:: New top-level features</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[microsoft#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Allow dumpers to return <code>!None</code>, to be converted to NULL
(:ticket:<code>[microsoft#377](https://github.com/psycopg/psycopg/issues/377)</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(🎟️<code>[microsoft#560](psycopg/psycopg#560),
[microsoft#839](https://github.com/psycopg/psycopg/issues/839)</code>).</li>
<li>Add <code>capabilities</code> object to :ref:<code>inspect the libpq
capabilities &lt;capabilities&gt;</code>
(🎫<code>[microsoft#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[microsoft#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
when using libpq v17. Use such method internally to implement
<code>!KeyboardInterrupt</code> and <code>~cursor.copy</code>
termination
(:ticket:<code>[microsoft#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
<li>The <code>!context</code> parameter of <code>sql</code> objects
<code>~sql.Composable.as_string()</code> and
<code>~sql.Composable.as_bytes()</code> methods is now optional
(:ticket:<code>[microsoft#716](https://github.com/psycopg/psycopg/issues/716)</code>).</li>
<li>Add <code>~Connection.set_autocommit()</code> on sync connections,
and similar
transaction control methods available on the async connections.</li>
<li>Add a <code>size</code> parameter to <code>~Cursor.stream()</code>
to enable results retrieval in
chunks instead of row-by-row
(:ticket:<code>[microsoft#794](https://github.com/psycopg/psycopg/issues/794)</code>).</li>
</ul>
<p>.. rubric:: New libpq wrapper features</p>
<ul>
<li>Add support for libpq functions to close prepared statements and
portals
introduced in libpq v17
(:ticket:<code>[microsoft#603](https://github.com/psycopg/psycopg/issues/603)</code>).</li>
<li>Add support for libpq encrypted and non-blocking query cancellation
functions introduced in libpq v17
(:ticket:<code>[microsoft#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/bb47d3944d1c65d9baf83808696aba1b2dfed9af"><code>bb47d39</code></a>
chore: bump psycopg package version to 3.2.1</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/55490a2d6b8344e3b49f6004c8e7afdc6d40c5fb"><code>55490a2</code></a>
fix: fix versions in packaging metadata</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/1cbc42a6759823e18d273e739cc64d7f994f53b2"><code>1cbc42a</code></a>
docs: fix title level of major releases</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/06a6e5e213577fca0fa1c6ca62def8fa5803663a"><code>06a6e5e</code></a>
docs: mention dropping Python 3.7 in psycopg 3.2 release</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/ea3735dccc5dfd20eb4ba5c4a3c52ec76d9aa6d0"><code>ea3735d</code></a>
docs: better organization of the 3.2 release notes</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/896eee2363d0bc25cc31ccf4189b295bb61deb40"><code>896eee2</code></a>
chore: bump psycopg package version to 3.2.0</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/2e2f4d7dd31cac67b790c293de70133373173ebb"><code>2e2f4d7</code></a>
chore: bump psycopg package version to 3.1.20</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/7369d3bb0280851832a395d6b3084de7b520e3a0"><code>7369d3b</code></a>
Merge pull request <a
href="https://redirect.github.com/psycopg/psycopg/issues/846">#846</a>
from eli-schwartz/tomllib</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/6672c708f1813978461aff6e5e240a96773ff873"><code>6672c70</code></a>
style: shorter line in pyproject.toml</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/a517bb4579d2b8caa4ddc1e81294d6026c8974d6"><code>a517bb4</code></a>
build: avoid installing tomli on recent python</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.1.19...3.2.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg&package-manager=pip&previous-version=3.1.19&new-version=3.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ikarius added a commit to gip-inclusion/dora-back that referenced this pull request Sep 16, 2024
Bumps [psycopg[binary]](https://github.com/psycopg/psycopg) from 3.2.1
to 3.2.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg[binary]'s
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Current release</h2>
<p>Psycopg 3.2.2
^^^^^^^^^^^^^</p>
<ul>
<li>Drop <code>!TypeDef</code> specifications as string from public
modules, as they cannot
be composed by users as <code>!typing</code> objects previously could
(:ticket:<code>[#860](https://github.com/psycopg/psycopg/issues/860)</code>).</li>
<li>Release Python 3.13 binary packages.</li>
</ul>
<p>Psycopg 3.2.1
^^^^^^^^^^^^^</p>
<ul>
<li>Fix packaging metadata breaking <code>[c]</code>,
<code>[binary]</code> dependencies

(:ticket:<code>[#853](https://github.com/psycopg/psycopg/issues/853)</code>).</li>
</ul>
<h2>Psycopg 3.2</h2>
<p>.. rubric:: New top-level features</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Allow dumpers to return <code>!None</code>, to be converted to NULL
(:ticket:<code>[#377](https://github.com/psycopg/psycopg/issues/377)</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(🎟️<code>[#560](psycopg/psycopg#560),
[#839](https://github.com/psycopg/psycopg/issues/839)</code>).</li>
<li>Add <code>capabilities</code> object to :ref:<code>inspect the libpq
capabilities &lt;capabilities&gt;</code>
(🎫<code>[#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
when using libpq v17. Use such method internally to implement
<code>!KeyboardInterrupt</code> and <code>~cursor.copy</code>
termination
(:ticket:<code>[#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
<li>The <code>!context</code> parameter of <code>sql</code> objects
<code>~sql.Composable.as_string()</code> and
<code>~sql.Composable.as_bytes()</code> methods is now optional
(:ticket:<code>[#716](https://github.com/psycopg/psycopg/issues/716)</code>).</li>
<li>Add <code>~Connection.set_autocommit()</code> on sync connections,
and similar
transaction control methods available on the async connections.</li>
<li>Add a <code>size</code> parameter to <code>~Cursor.stream()</code>
to enable results retrieval in</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/d027a8737300a2e6bb2335666ca1c8eee43529f4"><code>d027a87</code></a>
chore: bump psycopg package version to 3.2.2</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/026c1239029ba12ac13c077e3d8dadcbe616c88e"><code>026c123</code></a>
Merge pull request <a
href="https://redirect.github.com/psycopg/psycopg/issues/890">#890</a>
from edgarrmondragon/build-cp313-wheels</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/86d777241518c7f17012b809f7d3d54cecaaaf31"><code>86d7772</code></a>
docs: add update instructions for new major Python releases</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/8089851fd5544f985effa2e47140774ec5dc034a"><code>8089851</code></a>
docs: add Python 3.13 support news entries</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/cf3bc888f2793edaef1dab50f304f4684bf9a764"><code>cf3bc88</code></a>
docs: mention Python 3.13 supported in install docs</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/9b9781192e9e20550763cfc4d6b70f183ee0b71a"><code>9b97811</code></a>
chore: add Python 3.13 to trove classifiers</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/6e2018819ab8a83a4a3afedfed6f8a7d98ea0cb0"><code>6e20188</code></a>
ci: build Python 3.13 wheels</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/a5b67ba942c418d4e306c121c1bf827884e9c36d"><code>a5b67ba</code></a>
docs: replace fastapi events with lifespan</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d13137aacb82fed79459a9dd487846a2ec972571"><code>d13137a</code></a>
chore(deps): bump pypa/cibuildwheel in the actions group</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/6f7dcc434cf7c2523ebfec0cac2a21a4da23b92b"><code>6f7dcc4</code></a>
Fix typo in cursor table</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.2.1...3.2.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg[binary]&package-manager=pip&previous-version=3.2.1&new-version=3.2.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Frédéric Vergez <fred@ikarius.com>
lwitkowski pushed a commit to lwitkowski/aero-offers that referenced this pull request Sep 17, 2024
Bumps the python-packages group in /backend with 3 updates:
[sqlalchemy](https://github.com/sqlalchemy/sqlalchemy),
[psycopg](https://github.com/psycopg/psycopg) and
[pytest](https://github.com/pytest-dev/pytest).

Updates `sqlalchemy` from 2.0.34 to 2.0.35
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sqlalchemy/sqlalchemy/releases">sqlalchemy's
releases</a>.</em></p>
<blockquote>
<h1>2.0.35</h1>
<p>Released: September 16, 2024</p>
<h2>orm</h2>
<ul>
<li>
<p><strong>[orm] [bug] [typing]</strong> Fixed issue where it was not
possible to use <code>typing.Literal</code> with
<code>Mapped[]</code> on Python 3.8 and 3.9. Pull request courtesy
Frazer McLean.</p>
<p>References: <a
href="https://www.sqlalchemy.org/trac/ticket/11820">#11820</a></p>
</li>
<li>
<p><strong>[orm] [bug]</strong> Fixed issue in ORM evaluator where two
datatypes being evaluated with the
SQL concatenator operator would not be checked for
<code>UnevaluatableError</code> based on their datatype; this missed the
case
of <code>_postgresql.JSONB</code> values being used in a concatenate
operation
which is supported by PostgreSQL as well as how SQLAlchemy renders the
SQL
for this operation, but does not work at the Python level. By
implementing
<code>UnevaluatableError</code> for this combination, ORM update
statements
will now fall back to &quot;expire&quot; when a concatenated JSON value
used in a SET
clause is to be synchronized to a Python object.</p>
<p>References: <a
href="https://www.sqlalchemy.org/trac/ticket/11849">#11849</a></p>
</li>
<li>
<p><strong>[orm] [bug]</strong> An warning is emitted if
<code>_orm.joinedload()</code> or
<code>_orm.subqueryload()</code> are used as a top level option against
a
statement that is not a SELECT statement, such as with an
<code>insert().returning()</code>. There are no JOINs in INSERT
statements nor is
there a &quot;subquery&quot; that can be repurposed for subquery eager
loading, and
for UPDATE/DELETE joinedload does not support these either, so it is
never
appropriate for this use to pass silently.</p>
<p>References: <a
href="https://www.sqlalchemy.org/trac/ticket/11853">#11853</a></p>
</li>
<li>
<p><strong>[orm] [bug]</strong> Fixed issue where using loader options
such as <code>_orm.selectinload()</code>
with additional criteria in combination with ORM DML such as
<code>_sql.insert()</code> with RETURNING would not correctly set up
internal
contexts required for caching to work correctly, leading to incorrect
results.</p>
<p>References: <a
href="https://www.sqlalchemy.org/trac/ticket/11855">#11855</a></p>
</li>
</ul>
<h2>mysql</h2>
<ul>
<li><strong>[mysql] [bug]</strong> Fixed issue in mariadbconnector
dialect where query string arguments that
weren't checked integer or boolean arguments would be ignored, such as
string arguments like <code>unix_socket</code>, etc. As part of this
change, the
argument parsing for particular elements such as
<code>client_flags</code>,
<code>compress</code>, <code>local_infile</code> has been made more
consistent across all</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/sqlalchemy/sqlalchemy/commits">compare
view</a></li>
</ul>
</details>
<br />

Updates `psycopg` from 3.2.1 to 3.2.2
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Current release</h2>
<p>Psycopg 3.2.2
^^^^^^^^^^^^^</p>
<ul>
<li>Drop <code>!TypeDef</code> specifications as string from public
modules, as they cannot
be composed by users as <code>!typing</code> objects previously could
(:ticket:<code>[#860](https://github.com/psycopg/psycopg/issues/860)</code>).</li>
<li>Release Python 3.13 binary packages.</li>
</ul>
<p>Psycopg 3.2.1
^^^^^^^^^^^^^</p>
<ul>
<li>Fix packaging metadata breaking <code>[c]</code>,
<code>[binary]</code> dependencies

(:ticket:<code>[#853](https://github.com/psycopg/psycopg/issues/853)</code>).</li>
</ul>
<h2>Psycopg 3.2</h2>
<p>.. rubric:: New top-level features</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Allow dumpers to return <code>!None</code>, to be converted to NULL
(:ticket:<code>[#377](https://github.com/psycopg/psycopg/issues/377)</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(🎟️<code>[#560](psycopg/psycopg#560),
[#839](https://github.com/psycopg/psycopg/issues/839)</code>).</li>
<li>Add <code>capabilities</code> object to :ref:<code>inspect the libpq
capabilities &lt;capabilities&gt;</code>
(🎫<code>[#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
when using libpq v17. Use such method internally to implement
<code>!KeyboardInterrupt</code> and <code>~cursor.copy</code>
termination
(:ticket:<code>[#754](https://github.com/psycopg/psycopg/issues/754)</code>).</li>
<li>The <code>!context</code> parameter of <code>sql</code> objects
<code>~sql.Composable.as_string()</code> and
<code>~sql.Composable.as_bytes()</code> methods is now optional
(:ticket:<code>[#716](https://github.com/psycopg/psycopg/issues/716)</code>).</li>
<li>Add <code>~Connection.set_autocommit()</code> on sync connections,
and similar
transaction control methods available on the async connections.</li>
<li>Add a <code>size</code> parameter to <code>~Cursor.stream()</code>
to enable results retrieval in</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/d027a8737300a2e6bb2335666ca1c8eee43529f4"><code>d027a87</code></a>
chore: bump psycopg package version to 3.2.2</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/026c1239029ba12ac13c077e3d8dadcbe616c88e"><code>026c123</code></a>
Merge pull request <a
href="https://redirect.github.com/psycopg/psycopg/issues/890">#890</a>
from edgarrmondragon/build-cp313-wheels</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/86d777241518c7f17012b809f7d3d54cecaaaf31"><code>86d7772</code></a>
docs: add update instructions for new major Python releases</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/8089851fd5544f985effa2e47140774ec5dc034a"><code>8089851</code></a>
docs: add Python 3.13 support news entries</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/cf3bc888f2793edaef1dab50f304f4684bf9a764"><code>cf3bc88</code></a>
docs: mention Python 3.13 supported in install docs</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/9b9781192e9e20550763cfc4d6b70f183ee0b71a"><code>9b97811</code></a>
chore: add Python 3.13 to trove classifiers</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/6e2018819ab8a83a4a3afedfed6f8a7d98ea0cb0"><code>6e20188</code></a>
ci: build Python 3.13 wheels</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/a5b67ba942c418d4e306c121c1bf827884e9c36d"><code>a5b67ba</code></a>
docs: replace fastapi events with lifespan</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d13137aacb82fed79459a9dd487846a2ec972571"><code>d13137a</code></a>
chore(deps): bump pypa/cibuildwheel in the actions group</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/6f7dcc434cf7c2523ebfec0cac2a21a4da23b92b"><code>6f7dcc4</code></a>
Fix typo in cursor table</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.2.1...3.2.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `pytest` from 8.3.2 to 8.3.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest/releases">pytest's
releases</a>.</em></p>
<blockquote>
<h2>8.3.3</h2>
<h1>pytest 8.3.3 (2024-09-09)</h1>
<h2>Bug fixes</h2>
<ul>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12446">#12446</a>:
Avoid calling <code>@Property</code> (and other instance descriptors)
during fixture discovery -- by <code>asottile</code>{.interpreted-text
role=&quot;user&quot;}</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12659">#12659</a>:
Fixed the issue of not displaying assertion failure differences when
using the parameter <code>--import-mode=importlib</code> in
pytest&gt;=8.1.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12667">#12667</a>:
Fixed a regression where type change in
[ExceptionInfo.errisinstance]{.title-ref} caused [mypy]{.title-ref} to
fail.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12744">#12744</a>:
Fixed typing compatibility with Python 3.9 or less -- replaced
[typing.Self]{.title-ref} with [typing_extensions.Self]{.title-ref} --
by <code>Avasam</code>{.interpreted-text role=&quot;user&quot;}</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12745">#12745</a>:
Fixed an issue with backslashes being incorrectly converted in nodeid
paths on Windows, ensuring consistent path handling across
environments.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/6682">#6682</a>:
Fixed bug where the verbosity levels where not being respected when
printing the &quot;msg&quot; part of failed assertion (as in
<code>assert condition, msg</code>).</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/9422">#9422</a>:
Fix bug where disabling the terminal plugin via <code>-p
no:terminal</code> would cause crashes related to missing the
<code>verbose</code> option.</p>
<p>-- by <code>GTowers1</code>{.interpreted-text
role=&quot;user&quot;}</p>
</li>
</ul>
<h2>Improved documentation</h2>
<ul>
<li><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12663">#12663</a>:
Clarify that the [pytest_deselected]{.title-ref} hook should be called
from [pytest_collection_modifyitems]{.title-ref} hook implementations
when items are deselected.</li>
<li><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12678">#12678</a>:
Remove erroneous quotes from [tmp_path_retention_policy]{.title-ref}
example in docs.</li>
</ul>
<h2>Miscellaneous internal changes</h2>
<ul>
<li><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12769">#12769</a>:
Fix typos discovered by codespell and add codespell to pre-commit
hooks.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest/commit/d0f136fe64f9374f18a04562305b178fb380d1ec"><code>d0f136f</code></a>
build(deps): Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1 (<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12790">#12790</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/972f307c7861ae498e705d3d12e003fa4b035ac0"><code>972f307</code></a>
Prepare release version 8.3.3</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/0dabdcfe4de99147a07bd577804b60818ea25bc4"><code>0dabdcf</code></a>
Include co-authors in release announcement (<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12795">#12795</a>)
(<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12797">#12797</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/a9910a413a691e1b216e2235a9cbec0921117702"><code>a9910a4</code></a>
Do not discover properties when iterating fixtures (<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12781">#12781</a>)
(<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12788">#12788</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/0f10b6b0d8138d3539de75cb7b2e33167b6fc882"><code>0f10b6b</code></a>
Fix issue with slashes being turned into backslashes on Windows (<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12760">#12760</a>)
(<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12">#12</a>...</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/300d13d2231db85186729c2091ea33480cb39c1a"><code>300d13d</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/12785">#12785</a>
from pytest-dev/patchback/backports/8.3.x/57cccf7f4...</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/e5d32c73abcf4fa1362b15aaf660074de8f710d4"><code>e5d32c7</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/12784">#12784</a>
from svenevs/fix/docs-example-parametrize-minor-typo</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/bc913d194ec009699194b016ca619d5ae7f22c91"><code>bc913d1</code></a>
Streamline checks for verbose option (<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12706">#12706</a>)
(<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12778">#12778</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/01cfcc9f2dda817b25511772593012fd93e092d0"><code>01cfcc9</code></a>
Fix typos and introduce codespell pre-commit hook (<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12769">#12769</a>)
(<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12774">#12774</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/4873394d53635ef62d1915d23972ed4281a784eb"><code>4873394</code></a>
doc: Remove past training (<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12772">#12772</a>)
(<a
href="https://redirect.github.com/pytest-dev/pytest/issues/12773">#12773</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest/compare/8.3.2...8.3.3">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ilhanbae pushed a commit to Incredihire/Survey that referenced this pull request Sep 30, 2024
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.2.1 to 3.2.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Current release</h2>
<p>Psycopg 3.2.3
^^^^^^^^^^^^^</p>
<ul>
<li>Release binary packages including PostgreSQL 17 libpq
(:ticket:<code>[#852](https://github.com/psycopg/psycopg/issues/852)</code>).</li>
</ul>
<p>Psycopg 3.2.2
^^^^^^^^^^^^^</p>
<ul>
<li>Drop <code>!TypeDef</code> specifications as string from public
modules, as they cannot
be composed by users as <code>!typing</code> objects previously could
(:ticket:<code>[#860](https://github.com/psycopg/psycopg/issues/860)</code>).</li>
<li>Release Python 3.13 binary packages.</li>
</ul>
<p>Psycopg 3.2.1
^^^^^^^^^^^^^</p>
<ul>
<li>Fix packaging metadata breaking <code>[c]</code>,
<code>[binary]</code> dependencies

(:ticket:<code>[#853](https://github.com/psycopg/psycopg/issues/853)</code>).</li>
</ul>
<h2>Psycopg 3.2</h2>
<p>.. rubric:: New top-level features</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Allow dumpers to return <code>!None</code>, to be converted to NULL
(:ticket:<code>[#377](https://github.com/psycopg/psycopg/issues/377)</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(🎟️<code>[#560](psycopg/psycopg#560),
[#839](https://github.com/psycopg/psycopg/issues/839)</code>).</li>
<li>Add <code>capabilities</code> object to :ref:<code>inspect the libpq
capabilities &lt;capabilities&gt;</code>
(🎫<code>[#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
when using libpq v17. Use such method internally to implement</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/ce8f07321b8d0f0d95043596cbbbb6fd1e5831e7"><code>ce8f073</code></a>
chore: bump psycopg package version to 3.2.3</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/9af9267bdbe9075a7eacf5d3997512513a762022"><code>9af9267</code></a>
Merge pull request <a
href="https://redirect.github.com/psycopg/psycopg/issues/917">#917</a>
from psycopg/pg17</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/9c9369bea40ed20cf54241d9e04693fc2426a9ff"><code>9c9369b</code></a>
docs: mention PostgreSQL 17 in binary packages in the news file</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d0b1a3ab0a53b8bc34ba52edbe0340fcc5b0db1f"><code>d0b1a3a</code></a>
ci: install flex to build libpq</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/17e8d85f695947ef3421ff4c596100124fa2c8c1"><code>17e8d85</code></a>
ci(macos): fix dylib path for postgres 17 from brew</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d06613299aee124be6e673b238bbe747bad25978"><code>d066132</code></a>
ci(macos): update brew to install PostgreSQL 17</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/2cc362e4dc662413f32d9e289afa0493fb2aada2"><code>2cc362e</code></a>
ci: bump to PostgreSQL 17 in binary packages</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/810bfcf09c452e378adc23a2795736dea8395cfa"><code>810bfcf</code></a>
chore: add PostgreSQL 17 TRANSACTION_TIMEOUT error</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/2a0242163b144153a6c7b9af08c47c9f3fd790f4"><code>2a02421</code></a>
ci: Add PostgreSQL 17 to CI test grid, remove PostgreSQL 11</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/bea783d394ab5ad1f9f795af22a77370fad28ab6"><code>bea783d</code></a>
fix(windows): resolve absolute path to libpq</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.2.1...3.2.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg&package-manager=pip&previous-version=3.2.1&new-version=3.2.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
lwitkowski pushed a commit to lwitkowski/aero-offers that referenced this pull request Oct 1, 2024
Bumps the python-packages group in /backend with 2 updates:
[pylint](https://github.com/pylint-dev/pylint) and
[psycopg](https://github.com/psycopg/psycopg).

Updates `pylint` from 3.3.0 to 3.3.1
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pylint-dev/pylint/commit/76bce72bc57cc8089e439cc9d22fed5806341ed4"><code>76bce72</code></a>
Bump pylint to 3.3.1, update changelog (<a
href="https://redirect.github.com/pylint-dev/pylint/issues/9954">#9954</a>)</li>
<li><a
href="https://github.com/pylint-dev/pylint/commit/55ee81651aa98d644e046a0f02f20576ecb3a6dc"><code>55ee816</code></a>
Bump astroid to 3.3.4 (<a
href="https://redirect.github.com/pylint-dev/pylint/issues/9951">#9951</a>)
(<a
href="https://redirect.github.com/pylint-dev/pylint/issues/9952">#9952</a>)</li>
<li>See full diff in <a
href="https://github.com/pylint-dev/pylint/compare/v3.3.0...v3.3.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `psycopg` from 3.2.2 to 3.2.3
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Current release</h2>
<p>Psycopg 3.2.3
^^^^^^^^^^^^^</p>
<ul>
<li>Release binary packages including PostgreSQL 17 libpq
(:ticket:<code>[#852](https://github.com/psycopg/psycopg/issues/852)</code>).</li>
</ul>
<p>Psycopg 3.2.2
^^^^^^^^^^^^^</p>
<ul>
<li>Drop <code>!TypeDef</code> specifications as string from public
modules, as they cannot
be composed by users as <code>!typing</code> objects previously could
(:ticket:<code>[#860](https://github.com/psycopg/psycopg/issues/860)</code>).</li>
<li>Release Python 3.13 binary packages.</li>
</ul>
<p>Psycopg 3.2.1
^^^^^^^^^^^^^</p>
<ul>
<li>Fix packaging metadata breaking <code>[c]</code>,
<code>[binary]</code> dependencies

(:ticket:<code>[#853](https://github.com/psycopg/psycopg/issues/853)</code>).</li>
</ul>
<h2>Psycopg 3.2</h2>
<p>.. rubric:: New top-level features</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Allow dumpers to return <code>!None</code>, to be converted to NULL
(:ticket:<code>[#377](https://github.com/psycopg/psycopg/issues/377)</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(🎟️<code>[#560](psycopg/psycopg#560),
[#839](https://github.com/psycopg/psycopg/issues/839)</code>).</li>
<li>Add <code>capabilities</code> object to :ref:<code>inspect the libpq
capabilities &lt;capabilities&gt;</code>
(🎫<code>[#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
when using libpq v17. Use such method internally to implement</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/ce8f07321b8d0f0d95043596cbbbb6fd1e5831e7"><code>ce8f073</code></a>
chore: bump psycopg package version to 3.2.3</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/9af9267bdbe9075a7eacf5d3997512513a762022"><code>9af9267</code></a>
Merge pull request <a
href="https://redirect.github.com/psycopg/psycopg/issues/917">#917</a>
from psycopg/pg17</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/9c9369bea40ed20cf54241d9e04693fc2426a9ff"><code>9c9369b</code></a>
docs: mention PostgreSQL 17 in binary packages in the news file</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d0b1a3ab0a53b8bc34ba52edbe0340fcc5b0db1f"><code>d0b1a3a</code></a>
ci: install flex to build libpq</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/17e8d85f695947ef3421ff4c596100124fa2c8c1"><code>17e8d85</code></a>
ci(macos): fix dylib path for postgres 17 from brew</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d06613299aee124be6e673b238bbe747bad25978"><code>d066132</code></a>
ci(macos): update brew to install PostgreSQL 17</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/2cc362e4dc662413f32d9e289afa0493fb2aada2"><code>2cc362e</code></a>
ci: bump to PostgreSQL 17 in binary packages</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/810bfcf09c452e378adc23a2795736dea8395cfa"><code>810bfcf</code></a>
chore: add PostgreSQL 17 TRANSACTION_TIMEOUT error</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/2a0242163b144153a6c7b9af08c47c9f3fd790f4"><code>2a02421</code></a>
ci: Add PostgreSQL 17 to CI test grid, remove PostgreSQL 11</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/bea783d394ab5ad1f9f795af22a77370fad28ab6"><code>bea783d</code></a>
fix(windows): resolve absolute path to libpq</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.2.2...3.2.3">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
yohanboniface added a commit to umap-project/umap that referenced this pull request Oct 2, 2024
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.2.2 to 3.2.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Current release</h2>
<p>Psycopg 3.2.3
^^^^^^^^^^^^^</p>
<ul>
<li>Release binary packages including PostgreSQL 17 libpq
(:ticket:<code>[#852](https://github.com/psycopg/psycopg/issues/852)</code>).</li>
</ul>
<p>Psycopg 3.2.2
^^^^^^^^^^^^^</p>
<ul>
<li>Drop <code>!TypeDef</code> specifications as string from public
modules, as they cannot
be composed by users as <code>!typing</code> objects previously could
(:ticket:<code>[#860](https://github.com/psycopg/psycopg/issues/860)</code>).</li>
<li>Release Python 3.13 binary packages.</li>
</ul>
<p>Psycopg 3.2.1
^^^^^^^^^^^^^</p>
<ul>
<li>Fix packaging metadata breaking <code>[c]</code>,
<code>[binary]</code> dependencies

(:ticket:<code>[#853](https://github.com/psycopg/psycopg/issues/853)</code>).</li>
</ul>
<h2>Psycopg 3.2</h2>
<p>.. rubric:: New top-level features</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Allow dumpers to return <code>!None</code>, to be converted to NULL
(:ticket:<code>[#377](https://github.com/psycopg/psycopg/issues/377)</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(🎟️<code>[#560](psycopg/psycopg#560),
[#839](https://github.com/psycopg/psycopg/issues/839)</code>).</li>
<li>Add <code>capabilities</code> object to :ref:<code>inspect the libpq
capabilities &lt;capabilities&gt;</code>
(🎫<code>[#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
when using libpq v17. Use such method internally to implement</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/ce8f07321b8d0f0d95043596cbbbb6fd1e5831e7"><code>ce8f073</code></a>
chore: bump psycopg package version to 3.2.3</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/9af9267bdbe9075a7eacf5d3997512513a762022"><code>9af9267</code></a>
Merge pull request <a
href="https://redirect.github.com/psycopg/psycopg/issues/917">#917</a>
from psycopg/pg17</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/9c9369bea40ed20cf54241d9e04693fc2426a9ff"><code>9c9369b</code></a>
docs: mention PostgreSQL 17 in binary packages in the news file</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d0b1a3ab0a53b8bc34ba52edbe0340fcc5b0db1f"><code>d0b1a3a</code></a>
ci: install flex to build libpq</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/17e8d85f695947ef3421ff4c596100124fa2c8c1"><code>17e8d85</code></a>
ci(macos): fix dylib path for postgres 17 from brew</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d06613299aee124be6e673b238bbe747bad25978"><code>d066132</code></a>
ci(macos): update brew to install PostgreSQL 17</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/2cc362e4dc662413f32d9e289afa0493fb2aada2"><code>2cc362e</code></a>
ci: bump to PostgreSQL 17 in binary packages</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/810bfcf09c452e378adc23a2795736dea8395cfa"><code>810bfcf</code></a>
chore: add PostgreSQL 17 TRANSACTION_TIMEOUT error</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/2a0242163b144153a6c7b9af08c47c9f3fd790f4"><code>2a02421</code></a>
ci: Add PostgreSQL 17 to CI test grid, remove PostgreSQL 11</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/bea783d394ab5ad1f9f795af22a77370fad28ab6"><code>bea783d</code></a>
fix(windows): resolve absolute path to libpq</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.2.2...3.2.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg&package-manager=pip&previous-version=3.2.2&new-version=3.2.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
ikarius pushed a commit to gip-inclusion/dora-back that referenced this pull request Oct 3, 2024
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.2.2 to 3.2.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Current release</h2>
<p>Psycopg 3.2.3
^^^^^^^^^^^^^</p>
<ul>
<li>Release binary packages including PostgreSQL 17 libpq
(:ticket:<code>[#852](https://github.com/psycopg/psycopg/issues/852)</code>).</li>
</ul>
<p>Psycopg 3.2.2
^^^^^^^^^^^^^</p>
<ul>
<li>Drop <code>!TypeDef</code> specifications as string from public
modules, as they cannot
be composed by users as <code>!typing</code> objects previously could
(:ticket:<code>[#860](https://github.com/psycopg/psycopg/issues/860)</code>).</li>
<li>Release Python 3.13 binary packages.</li>
</ul>
<p>Psycopg 3.2.1
^^^^^^^^^^^^^</p>
<ul>
<li>Fix packaging metadata breaking <code>[c]</code>,
<code>[binary]</code> dependencies

(:ticket:<code>[#853](https://github.com/psycopg/psycopg/issues/853)</code>).</li>
</ul>
<h2>Psycopg 3.2</h2>
<p>.. rubric:: New top-level features</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Allow dumpers to return <code>!None</code>, to be converted to NULL
(:ticket:<code>[#377](https://github.com/psycopg/psycopg/issues/377)</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(🎟️<code>[#560](psycopg/psycopg#560),
[#839](https://github.com/psycopg/psycopg/issues/839)</code>).</li>
<li>Add <code>capabilities</code> object to :ref:<code>inspect the libpq
capabilities &lt;capabilities&gt;</code>
(🎫<code>[#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
when using libpq v17. Use such method internally to implement</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/ce8f07321b8d0f0d95043596cbbbb6fd1e5831e7"><code>ce8f073</code></a>
chore: bump psycopg package version to 3.2.3</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/9af9267bdbe9075a7eacf5d3997512513a762022"><code>9af9267</code></a>
Merge pull request <a
href="https://redirect.github.com/psycopg/psycopg/issues/917">#917</a>
from psycopg/pg17</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/9c9369bea40ed20cf54241d9e04693fc2426a9ff"><code>9c9369b</code></a>
docs: mention PostgreSQL 17 in binary packages in the news file</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d0b1a3ab0a53b8bc34ba52edbe0340fcc5b0db1f"><code>d0b1a3a</code></a>
ci: install flex to build libpq</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/17e8d85f695947ef3421ff4c596100124fa2c8c1"><code>17e8d85</code></a>
ci(macos): fix dylib path for postgres 17 from brew</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d06613299aee124be6e673b238bbe747bad25978"><code>d066132</code></a>
ci(macos): update brew to install PostgreSQL 17</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/2cc362e4dc662413f32d9e289afa0493fb2aada2"><code>2cc362e</code></a>
ci: bump to PostgreSQL 17 in binary packages</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/810bfcf09c452e378adc23a2795736dea8395cfa"><code>810bfcf</code></a>
chore: add PostgreSQL 17 TRANSACTION_TIMEOUT error</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/2a0242163b144153a6c7b9af08c47c9f3fd790f4"><code>2a02421</code></a>
ci: Add PostgreSQL 17 to CI test grid, remove PostgreSQL 11</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/bea783d394ab5ad1f9f795af22a77370fad28ab6"><code>bea783d</code></a>
fix(windows): resolve absolute path to libpq</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.2.2...3.2.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg&package-manager=pip&previous-version=3.2.2&new-version=3.2.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
daverigby pushed a commit to pinecone-io/VSB that referenced this pull request Oct 17, 2024
Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.2.1 to 3.2.3.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psycopg/psycopg/blob/master/docs/news.rst">psycopg's
changelog</a>.</em></p>
<blockquote>
<p>.. currentmodule:: psycopg</p>
<p>.. index::
single: Release notes
single: News</p>
<h1><code>psycopg</code> release notes</h1>
<h2>Current release</h2>
<p>Psycopg 3.2.3
^^^^^^^^^^^^^</p>
<ul>
<li>Release binary packages including PostgreSQL 17 libpq
(:ticket:<code>[#852](https://github.com/psycopg/psycopg/issues/852)</code>).</li>
</ul>
<p>Psycopg 3.2.2
^^^^^^^^^^^^^</p>
<ul>
<li>Drop <code>!TypeDef</code> specifications as string from public
modules, as they cannot
be composed by users as <code>!typing</code> objects previously could
(:ticket:<code>[#860](https://github.com/psycopg/psycopg/issues/860)</code>).</li>
<li>Release Python 3.13 binary packages.</li>
</ul>
<p>Psycopg 3.2.1
^^^^^^^^^^^^^</p>
<ul>
<li>Fix packaging metadata breaking <code>[c]</code>,
<code>[binary]</code> dependencies

(:ticket:<code>[#853](https://github.com/psycopg/psycopg/issues/853)</code>).</li>
</ul>
<h2>Psycopg 3.2</h2>
<p>.. rubric:: New top-level features</p>
<ul>
<li>Add support for integer, floating point, boolean <code>NumPy scalar
types</code>__

(:ticket:<code>[#332](https://github.com/psycopg/psycopg/issues/332)</code>).</li>
<li>Add <code>!timeout</code> and <code>!stop_after</code> parameters to
<code>Connection.notifies()</code>
(:ticket:<code>340</code>).</li>
<li>Allow dumpers to return <code>!None</code>, to be converted to NULL
(:ticket:<code>[#377](https://github.com/psycopg/psycopg/issues/377)</code>).</li>
<li>Add :ref:<code>raw-query-cursors</code> to execute queries using
placeholders in
PostgreSQL format (<code>$1</code>, <code>$2</code>...)
(🎟️<code>[#560](psycopg/psycopg#560),
[#839](https://github.com/psycopg/psycopg/issues/839)</code>).</li>
<li>Add <code>capabilities</code> object to :ref:<code>inspect the libpq
capabilities &lt;capabilities&gt;</code>
(🎫<code>[#772](https://github.com/psycopg/psycopg/issues/772)</code>).</li>
<li>Add <code>~rows.scalar_row</code> to return scalar values from a
query
(:ticket:<code>[#723](https://github.com/psycopg/psycopg/issues/723)</code>).</li>
<li>Add <code>~Connection.cancel_safe()</code> for encrypted and
non-blocking cancellation
when using libpq v17. Use such method internally to implement</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psycopg/psycopg/commit/ce8f07321b8d0f0d95043596cbbbb6fd1e5831e7"><code>ce8f073</code></a>
chore: bump psycopg package version to 3.2.3</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/9af9267bdbe9075a7eacf5d3997512513a762022"><code>9af9267</code></a>
Merge pull request <a
href="https://redirect.github.com/psycopg/psycopg/issues/917">#917</a>
from psycopg/pg17</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/9c9369bea40ed20cf54241d9e04693fc2426a9ff"><code>9c9369b</code></a>
docs: mention PostgreSQL 17 in binary packages in the news file</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d0b1a3ab0a53b8bc34ba52edbe0340fcc5b0db1f"><code>d0b1a3a</code></a>
ci: install flex to build libpq</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/17e8d85f695947ef3421ff4c596100124fa2c8c1"><code>17e8d85</code></a>
ci(macos): fix dylib path for postgres 17 from brew</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/d06613299aee124be6e673b238bbe747bad25978"><code>d066132</code></a>
ci(macos): update brew to install PostgreSQL 17</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/2cc362e4dc662413f32d9e289afa0493fb2aada2"><code>2cc362e</code></a>
ci: bump to PostgreSQL 17 in binary packages</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/810bfcf09c452e378adc23a2795736dea8395cfa"><code>810bfcf</code></a>
chore: add PostgreSQL 17 TRANSACTION_TIMEOUT error</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/2a0242163b144153a6c7b9af08c47c9f3fd790f4"><code>2a02421</code></a>
ci: Add PostgreSQL 17 to CI test grid, remove PostgreSQL 11</li>
<li><a
href="https://github.com/psycopg/psycopg/commit/bea783d394ab5ad1f9f795af22a77370fad28ab6"><code>bea783d</code></a>
fix(windows): resolve absolute path to libpq</li>
<li>Additional commits viewable in <a
href="https://github.com/psycopg/psycopg/compare/3.2.1...3.2.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=psycopg&package-manager=pip&previous-version=3.2.1&new-version=3.2.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ryantqiu pushed a commit to snorkel-marlin-repos/psycopg_psycopg_pr_560_49fdc1c3-1342-42f5-8751-b7351624c24a that referenced this pull request Oct 1, 2025
ryantqiu added a commit to snorkel-marlin-repos/psycopg_psycopg_pr_560_49fdc1c3-1342-42f5-8751-b7351624c24a that referenced this pull request Oct 1, 2025
ryantqiu pushed a commit to snorkel-marlin-repos/psycopg_psycopg_pr_560_7a10db29-795e-47c5-bc77-2aa83269d67c that referenced this pull request Oct 2, 2025
ryantqiu added a commit to snorkel-marlin-repos/psycopg_psycopg_pr_560_7a10db29-795e-47c5-bc77-2aa83269d67c that referenced this pull request Oct 2, 2025
snorkelopstesting1-a11y pushed a commit to snorkel-marlin-repos/psycopg_psycopg_pr_560_2ed0a034-9119-4a19-a906-03da530b3828 that referenced this pull request Oct 2, 2025
snorkelopstesting1-a11y added a commit to snorkel-marlin-repos/psycopg_psycopg_pr_560_2ed0a034-9119-4a19-a906-03da530b3828 that referenced this pull request Oct 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants