]> git.ipfire.org Git - thirdparty/psycopg.git/log
thirdparty/psycopg.git
20 months agofix(pool): make opening an async connection pool in the constructor a runtime warning
Daniele Varrazzo [Fri, 16 Feb 2024 13:02:17 +0000 (14:02 +0100)] 
fix(pool): make opening an async connection pool in the constructor a runtime warning

Deprecation warnings are ignored by default and easy to miss.

Close #737.

20 months agoci: skip refcount tests on scheduled jobs
Daniele Varrazzo [Tue, 13 Feb 2024 10:45:27 +0000 (11:45 +0100)] 
ci: skip refcount tests on scheduled jobs

20 months agofix: avoid to create reference loops in datetime adapters
Daniele Varrazzo [Wed, 7 Feb 2024 01:16:06 +0000 (01:16 +0000)] 
fix: avoid to create reference loops in datetime adapters

Setting the reference to a bound method in the state creates a reference
loop.

The issue is minimal because the gc will be able to break these loops
anyway and because it mostly happens with exotic or unsupported
date/interval styles.

20 months agodocs: fix typo in release notes
Daniele Varrazzo [Mon, 5 Feb 2024 16:34:36 +0000 (16:34 +0000)] 
docs: fix typo in release notes

20 months agochore: bump psycopg package version to 3.1.18
Daniele Varrazzo [Sun, 4 Feb 2024 17:42:54 +0000 (17:42 +0000)] 
chore: bump psycopg package version to 3.1.18

20 months agofix(c): drop spurious loop break in pipeline_communicate
Daniele Varrazzo [Fri, 4 Nov 2022 22:17:13 +0000 (23:17 +0100)] 
fix(c): drop spurious loop break in pipeline_communicate

This makes the Python and the C implementation more similar. The
difference was unexpected but apparently harmless. See #431

20 months agochore: update code to master
Daniele Varrazzo [Sun, 4 Feb 2024 14:36:54 +0000 (14:36 +0000)] 
chore: update code to master

21 months agochore: bump psycopg_pool package version to 3.2.2.dev1
Daniele Varrazzo [Sun, 7 Jan 2024 14:47:44 +0000 (15:47 +0100)] 
chore: bump psycopg_pool package version to 3.2.2.dev1

21 months agoci: revert upload action to v3
Daniele Varrazzo [Sun, 7 Jan 2024 11:49:41 +0000 (12:49 +0100)] 
ci: revert upload action to v3

v4 requires to have every uploaded artifact in a separate directory.

- https://github.com/actions/upload-artifact/issues/478
- https://github.com/actions/upload-artifact/blob/main/docs/MIGRATION.md

21 months agochore: bump psycopg_pool package version to 3.2.1 pool-3.2.1
Daniele Varrazzo [Sun, 7 Jan 2024 01:42:03 +0000 (02:42 +0100)] 
chore: bump psycopg_pool package version to 3.2.1

21 months agochore(c): add missing enum entries
Daniele Varrazzo [Sat, 6 Jan 2024 19:37:37 +0000 (20:37 +0100)] 
chore(c): add missing enum entries

21 months agodocs: add note about checking enums and docs on PostgreSQL update
Daniele Varrazzo [Sat, 6 Jan 2024 19:36:56 +0000 (20:36 +0100)] 
docs: add note about checking enums and docs on PostgreSQL update

21 months agoMerge branch 'fix-699' into maint-pool-3.2
Daniele Varrazzo [Sat, 6 Jan 2024 19:48:18 +0000 (20:48 +0100)] 
Merge branch 'fix-699' into maint-pool-3.2

21 months agorefactor: generate conninfo attempts from async counterpart
Daniele Varrazzo [Sat, 6 Jan 2024 17:06:54 +0000 (18:06 +0100)] 
refactor: generate conninfo attempts from async counterpart

21 months agofix: perform multiple attemps if a host name resolve to multiple hosts
Daniele Varrazzo [Sat, 6 Jan 2024 16:24:48 +0000 (17:24 +0100)] 
fix: perform multiple attemps if a host name resolve to multiple hosts

We now perform DNS resolution in Python both in the sync and async code.
Because the two code paths are now very similar, make sure they pass the
same tests.

Close #699.

21 months agorefactor(test): make resolution monkeypatching common fixtures
Daniele Varrazzo [Sat, 6 Jan 2024 16:10:58 +0000 (17:10 +0100)] 
refactor(test): make resolution monkeypatching common fixtures

21 months agorefactor: separate ConnectionInfo object from conninfo module
Daniele Varrazzo [Sat, 6 Jan 2024 14:50:14 +0000 (15:50 +0100)] 
refactor: separate ConnectionInfo object from conninfo module

It was there just because the name is similar, but its purpose is
entirely different.

21 months agochore: align to master
Nick Pope [Tue, 28 Nov 2023 12:46:59 +0000 (12:46 +0000)] 
chore: align to master

The pool branch is diverging unnecessarily from master because so far I
have only cherry picked the changes useful for the pool and compatible
with 3.2.x, but this is creating unnecessary differences and making
cherry-picking harder and harder.

From now on we should use the policy of cherry-picking everything unless
non compatible (not a new feature or a breaking change), similarly to
what we do on the maint-3.1 branch.

21 months agochore: upload github actions dependencies
Daniele Varrazzo [Tue, 2 Jan 2024 03:29:48 +0000 (04:29 +0100)] 
chore: upload github actions dependencies

21 months agoMerge branch 'fix-709' into maint-pool-3.2
Daniele Varrazzo [Sat, 6 Jan 2024 12:09:04 +0000 (13:09 +0100)] 
Merge branch 'fix-709' into maint-pool-3.2

21 months agorefactor(pool): rename ConnectionAttempt as AttemptWithBackoff 711/head
Daniele Varrazzo [Fri, 29 Dec 2023 23:49:28 +0000 (00:49 +0100)] 
refactor(pool): rename ConnectionAttempt as AttemptWithBackoff

This class implements the backoff + jitter policy and is now used to
repeat checks too.

21 months agofix(pool): use an exponential backoff to separate failing checks
Daniele Varrazzo [Fri, 29 Dec 2023 23:41:07 +0000 (00:41 +0100)] 
fix(pool): use an exponential backoff to separate failing checks

This is a consistent behaviour with with the exponential backoff used in
reconnection attempts, and actually we could reuse the same object
implementing the backoff + jitter.

See also #709

21 months agofix(pool): respect timeout on getconn() when the check function fails
Daniele Varrazzo [Fri, 29 Dec 2023 13:15:07 +0000 (14:15 +0100)] 
fix(pool): respect timeout on getconn() when the check function fails

Close #709.

21 months agoMerge branch 'fix-308-pool-3.2' into maint-pool-3.2
Daniele Varrazzo [Sat, 6 Jan 2024 12:02:19 +0000 (13:02 +0100)] 
Merge branch 'fix-308-pool-3.2' into maint-pool-3.2

21 months agorefactor(pool): avoid constructor overloading by using generic default
Daniele Varrazzo [Wed, 3 Jan 2024 01:32:28 +0000 (02:32 +0100)] 
refactor(pool): avoid constructor overloading by using generic default

21 months agorefactor: drop overloading of the Connection.connect() function
Daniele Varrazzo [Wed, 3 Jan 2024 01:14:46 +0000 (02:14 +0100)] 
refactor: drop overloading of the Connection.connect() function

The default for the Row TypeVar makes it redundant.

21 months agorefactor: use Self to represent the return from `BaseConnection._connect_gen()`
Daniele Varrazzo [Wed, 3 Jan 2024 00:59:30 +0000 (01:59 +0100)] 
refactor: use Self to represent the return from `BaseConnection._connect_gen()`

21 months agofix: define the Row TypeVar as defaulting to TupleRow
Daniele Varrazzo [Wed, 3 Jan 2024 00:44:22 +0000 (01:44 +0100)] 
fix: define the Row TypeVar as defaulting to TupleRow

This allows to return `Self` uniformly from the `Connection.connect()` class
method, which in turns allows to subclass the connection without the
need of redefining the complex signature.

Close #308

21 months agorefactor: use typing.Self
Daniele Varrazzo [Sat, 30 Dec 2023 00:30:39 +0000 (01:30 +0100)] 
refactor: use typing.Self

The object seems available for all the supported Python version and
should avoid problems with PyRight (see #708).

It is not a solution for #308 because we cannot use `Self[Row]`.

21 months agorefactor: use TypeVar from typing_extension
Daniele Varrazzo [Wed, 3 Jan 2024 00:33:35 +0000 (01:33 +0100)] 
refactor: use TypeVar from typing_extension

This includes the default parameter, which should fix the problem of the
awkward definition of Row defaulting to TupleRow.

21 months agorefactor: use typing.Self
Daniele Varrazzo [Sat, 30 Dec 2023 00:30:39 +0000 (01:30 +0100)] 
refactor: use typing.Self

The object seems available for all the supported Python version and
should avoid problems with PyRight (see #708).

It is not a solution for #308 because we cannot use `Self[Row]`.

21 months agochore: bump psycopg_pool package version to 3.2.1.dev1
Daniele Varrazzo [Fri, 29 Dec 2023 13:11:38 +0000 (14:11 +0100)] 
chore: bump psycopg_pool package version to 3.2.1.dev1

23 months agochore: fix mypy >= 1.7 warning in tests
Daniele Varrazzo [Sat, 11 Nov 2023 15:30:55 +0000 (15:30 +0000)] 
chore: fix mypy >= 1.7 warning in tests

23 months agoci: test psycopg pool package with released a psycopg version
Daniele Varrazzo [Sat, 11 Nov 2023 16:50:42 +0000 (16:50 +0000)] 
ci: test psycopg pool package with released a psycopg version

23 months agotest: allow to run pytest -m pool with psycopg 3.1 imported
Daniele Varrazzo [Sat, 11 Nov 2023 16:47:35 +0000 (16:47 +0000)] 
test: allow to run pytest -m pool with psycopg 3.1 imported

This allows to test psycopg pool 3.2 tests with psycopg 3.1 installed.

23 months agochore: bump psycopg_pool package version to 3.2.0 pool-3.2.0
Daniele Varrazzo [Sat, 11 Nov 2023 14:59:49 +0000 (14:59 +0000)] 
chore: bump psycopg_pool package version to 3.2.0

23 months agofix(bump_version): fix bumping minor version with dev releases
Daniele Varrazzo [Sat, 11 Nov 2023 14:59:09 +0000 (14:59 +0000)] 
fix(bump_version): fix bumping minor version with dev releases

23 months agochore(macos): build images with more recent Python versions
Daniele Varrazzo [Thu, 2 Nov 2023 09:25:18 +0000 (10:25 +0100)] 
chore(macos): build images with more recent Python versions

2 years agoMerge pull request #670 from psycopg/fix-667
Daniele Varrazzo [Tue, 24 Oct 2023 18:14:59 +0000 (19:14 +0100)] 
Merge pull request #670 from psycopg/fix-667

Handle gracefully EINTR on signals instead of raising InterruptedError

2 years agofix: retry automatically syscall in wait_c if it fails with EINTR 670/head
Daniele Varrazzo [Tue, 24 Oct 2023 09:19:36 +0000 (11:19 +0200)] 
fix: retry automatically syscall in wait_c if it fails with EINTR

Fix #667

2 years agotest: add test to generate an EINTR in wait_c
Daniele Varrazzo [Tue, 24 Oct 2023 08:50:40 +0000 (10:50 +0200)] 
test: add test to generate an EINTR in wait_c

2 years agoMark test_identify_closure as timing-sensitive
Martin Weinelt [Mon, 23 Oct 2023 22:54:18 +0000 (00:54 +0200)] 
Mark test_identify_closure as timing-sensitive

```
____________________________ test_identify_closure _____________________________

conn_cls = <class 'psycopg.Connection'>, dsn = 'host=127.0.0.1 user=psycopg'

    @pytest.mark.crdb_skip("pg_terminate_backend")
    @pytest.mark.slow
    def test_identify_closure(conn_cls, dsn):
        def closer():
            time.sleep(0.2)
            conn2.execute("select pg_terminate_backend(%s)", [conn.pgconn.backend_pid])

        conn = conn_cls.connect(dsn)
        conn2 = conn_cls.connect(dsn)
        try:
            t = threading.Thread(target=closer)
            t.start()
            t0 = time.time()
            try:
                with pytest.raises(psycopg.OperationalError):
                    conn.execute("select pg_sleep(1.0)")
                t1 = time.time()
>               assert 0.2 < t1 - t0 < 0.4
E               assert 0.2 < (1697715164.8614173 - 1697715164.6617775)

tests/test_concurrency.py:231: AssertionError
```

2 years agochore: use AnyIO 4.0+ in tests dependencies
Denis Laxalde [Wed, 18 Oct 2023 08:35:50 +0000 (10:35 +0200)] 
chore: use AnyIO 4.0+ in tests dependencies

We set the 'loop_factory' asyncio option for parametrizing the
anyio_backend() fixture as anyio 4.0 has replaced the 'policy' option by
'loop_factory'.

In tests/pool/test_pool_async_noasyncio.py, we previously used
the anyio_backend_options fixture to retrieve the loop policy; now we
build it directly. This could be improved by using the loop_factory, but
only from Python 3.11 with an asyncio.Runner().

2 years agorefactor(pool): more logical ordering for kwargs
Daniele Varrazzo [Sat, 14 Oct 2023 07:59:57 +0000 (09:59 +0200)] 
refactor(pool): more logical ordering for kwargs

- conn construction params (class, kwargs, the class affects the pool
  type annotations so first is better);
- sizing (documented as an important parameter for the pool);
- open?
- callbacks (in the order they are used);
- name;
- other details more unlikely to be touched.

The order is the same in docs and code.

2 years agoMerge branch 'pool-getconn-safe'
Daniele Varrazzo [Sat, 14 Oct 2023 07:45:52 +0000 (09:45 +0200)] 
Merge branch 'pool-getconn-safe'

2 years agodocs(pool): document check callback, drop previous recipes and rants 658/head
Daniele Varrazzo [Sat, 7 Oct 2023 02:16:43 +0000 (04:16 +0200)] 
docs(pool): document check callback, drop previous recipes and rants

2 years agotest(pool): add tests to verify check on getconn's behaviour
Daniele Varrazzo [Fri, 6 Oct 2023 16:31:52 +0000 (18:31 +0200)] 
test(pool): add tests to verify check on getconn's behaviour

2 years agofix(pool): clean up logging in getconn check
Daniele Varrazzo [Fri, 6 Oct 2023 16:30:18 +0000 (18:30 +0200)] 
fix(pool): clean up logging in getconn check

If a check callback is set, assume that failed checks on getconn are
just part of normal operative life: don't consider them warnings.

2 years agofeat(pool): add `check` connection parameter
Daniele Varrazzo [Fri, 6 Oct 2023 13:15:04 +0000 (15:15 +0200)] 
feat(pool): add `check` connection parameter

Allow to specify a callback to call on getconn and discard the
connection if not in working state.

2 years agofeat(pool): add `check_connection()` method
Daniele Varrazzo [Fri, 6 Oct 2023 13:13:39 +0000 (15:13 +0200)] 
feat(pool): add `check_connection()` method

The method is public, will be documented as available to use as check
parameter, but also used internally by the `check()` method.

2 years agorefactor(pool): introduce a loop in getconn to allow connection check
Daniele Varrazzo [Fri, 6 Oct 2023 11:00:41 +0000 (13:00 +0200)] 
refactor(pool): introduce a loop in getconn to allow connection check

2 years agoMerge branch 'pool-warn-implicit-open'
Daniele Varrazzo [Sat, 14 Oct 2023 07:40:00 +0000 (09:40 +0200)] 
Merge branch 'pool-warn-implicit-open'

2 years agodocs(pool): warn about future behaviour changes of open on init 659/head
Daniele Varrazzo [Fri, 13 Oct 2023 23:51:11 +0000 (01:51 +0200)] 
docs(pool): warn about future behaviour changes of open on init

2 years agofeat(pool): raise a warning if async pools are open in the constructor
Daniele Varrazzo [Sun, 8 Oct 2023 18:43:47 +0000 (20:43 +0200)] 
feat(pool): raise a warning if async pools are open in the constructor

2 years agofeat(pool) raise a warning if the pool is expected to be opened implicitly
Daniele Varrazzo [Sat, 7 Oct 2023 22:01:57 +0000 (00:01 +0200)] 
feat(pool) raise a warning if the pool is expected to be opened implicitly

2 years agorefactor: define conn_encoding on pgconn_encoding
Daniele Varrazzo [Wed, 11 Oct 2023 23:06:47 +0000 (01:06 +0200)] 
refactor: define conn_encoding on pgconn_encoding

Also more consistent use of the two functions throughout the codebase.

2 years agochore: move codespell configuration to toml file
Daniele Varrazzo [Fri, 13 Oct 2023 23:52:05 +0000 (01:52 +0200)] 
chore: move codespell configuration to toml file

Configuration tweaked to avoid files commonly found in dev environments.

2 years agostyle(pool): more explicit error message for pool open with no loop
Daniele Varrazzo [Sun, 8 Oct 2023 17:31:07 +0000 (19:31 +0200)] 
style(pool): more explicit error message for pool open with no loop

2 years agoMerge branch 'async-to-sync'
Daniele Varrazzo [Fri, 13 Oct 2023 22:52:36 +0000 (00:52 +0200)] 
Merge branch 'async-to-sync'

2 years agoMerge pull request #660 from dlax/async-to-sync 657/head
Daniele Varrazzo [Fri, 13 Oct 2023 22:49:51 +0000 (23:49 +0100)] 
Merge pull request #660 from dlax/async-to-sync

improvements to tools/async_to_sync.py

2 years agorefactor: allow to use podman container engine in async_to_sync.py 660/head
Denis Laxalde [Fri, 13 Oct 2023 07:40:09 +0000 (09:40 +0200)] 
refactor: allow to use podman container engine in async_to_sync.py

2 years agofeat(tools): warn about the Python version used in async-to-sync
Daniele Varrazzo [Fri, 13 Oct 2023 14:04:12 +0000 (16:04 +0200)] 
feat(tools): warn about the Python version used in async-to-sync

Notify the user that they may get spurious results.

2 years agofix(tools): remove mention of dropped shell script in async_to_sync.py
Denis Laxalde [Fri, 13 Oct 2023 07:36:28 +0000 (09:36 +0200)] 
fix(tools): remove mention of dropped shell script in async_to_sync.py

2 years agorefactor: use text mode for subprocess in async_to_sync.py
Denis Laxalde [Fri, 13 Oct 2023 06:51:54 +0000 (08:51 +0200)] 
refactor: use text mode for subprocess in async_to_sync.py

2 years agorefactor: replace 'git ls-files' + 'grep' by a single 'git grep'
Denis Laxalde [Fri, 13 Oct 2023 06:54:01 +0000 (08:54 +0200)] 
refactor: replace 'git ls-files' + 'grep' by a single 'git grep'

2 years agochore: use Python 3.11 to conver async to sync
Daniele Varrazzo [Fri, 13 Oct 2023 01:35:26 +0000 (03:35 +0200)] 
chore: use Python 3.11 to conver async to sync

2 years agochore: add option to run async_to_sync in a docker image
Daniele Varrazzo [Fri, 13 Oct 2023 01:22:04 +0000 (03:22 +0200)] 
chore: add option to run async_to_sync in a docker image

This allows to specify which Python version to use for the conversion
(even when it's not installed on the machine).

2 years agorefactor: drop 'convert_async_to_sync.sh' script
Daniele Varrazzo [Fri, 13 Oct 2023 00:19:03 +0000 (02:19 +0200)] 
refactor: drop 'convert_async_to_sync.sh' script

Do all in 'async_to_sync.py:' added --all and --check options.

2 years agotest: drop unneeded raise on pytest.skip()
Daniele Varrazzo [Wed, 11 Oct 2023 11:30:46 +0000 (13:30 +0200)] 
test: drop unneeded raise on pytest.skip()

2 years agorefactor(test): uniform the way sync/async-only tests are skipped
Daniele Varrazzo [Sun, 8 Oct 2023 13:55:31 +0000 (15:55 +0200)] 
refactor(test): uniform the way sync/async-only tests are skipped

Add @skip_sync, @skip_async markers to mark the functions to skip.

2 years agotest: add check to verify the completeness of convert_async_to_sync
Daniele Varrazzo [Sun, 8 Oct 2023 10:33:47 +0000 (12:33 +0200)] 
test: add check to verify the completeness of convert_async_to_sync

Verify that all the files commented as having been automatically
converted are actually included in the script converting them.

2 years agostyle: more care in the docstring mentioning sync/async versions of the code
Daniele Varrazzo [Sun, 8 Oct 2023 09:55:58 +0000 (11:55 +0200)] 
style: more care in the docstring mentioning sync/async versions of the code

2 years agorefactor(pool): define scheduler task as dataclass
Daniele Varrazzo [Sun, 8 Oct 2023 09:45:28 +0000 (11:45 +0200)] 
refactor(pool): define scheduler task as dataclass

2 years agorefactor(async_to_sync): create new object without listing all the attributes
Daniele Varrazzo [Sun, 8 Oct 2023 09:02:23 +0000 (11:02 +0200)] 
refactor(async_to_sync): create new object without listing all the attributes

2 years agostyle(pool): use `pass` instead of `return` for empty methods
Daniele Varrazzo [Sun, 8 Oct 2023 08:32:29 +0000 (10:32 +0200)] 
style(pool): use `pass` instead of `return` for empty methods

2 years agodocs: fix typos/grammar
Daniele Varrazzo [Sun, 8 Oct 2023 08:30:26 +0000 (09:30 +0100)] 
docs: fix typos/grammar

Co-authored-by: Daniel Fortunov <asqui@users.noreply.github.com>
2 years agorefactor(copy): generate sync code from async
Daniele Varrazzo [Fri, 6 Oct 2023 10:58:49 +0000 (12:58 +0200)] 
refactor(copy): generate sync code from async

2 years agorefactor(test): add acompat module
Daniele Varrazzo [Thu, 5 Oct 2023 23:58:54 +0000 (01:58 +0200)] 
refactor(test): add acompat module

2 years agofeat(tools): allow to specify the files to convert async to sync
Daniele Varrazzo [Fri, 6 Oct 2023 13:02:50 +0000 (15:02 +0200)] 
feat(tools): allow to specify the files to convert async to sync

2 years agofix: fix type annotation problems on Python 3.8, 3.9
Daniele Varrazzo [Thu, 5 Oct 2023 03:10:00 +0000 (05:10 +0200)] 
fix: fix type annotation problems on Python 3.8, 3.9

2 years agorefactor(pool): generate null pool module from async counterpart
Daniele Varrazzo [Thu, 5 Oct 2023 02:06:34 +0000 (04:06 +0200)] 
refactor(pool): generate null pool module from async counterpart

2 years agorefactor(pool): move null pool base to its own module
Daniele Varrazzo [Thu, 5 Oct 2023 01:58:57 +0000 (03:58 +0200)] 
refactor(pool): move null pool base to its own module

And some more light refactoring.

2 years agorefactor(pool): generate pool sync module from async counterpart
Daniele Varrazzo [Thu, 5 Oct 2023 01:40:28 +0000 (03:40 +0200)] 
refactor(pool): generate pool sync module from async counterpart

2 years agorefactor(pool): add Worker/AWorker type aliases
Daniele Varrazzo [Thu, 5 Oct 2023 00:57:08 +0000 (02:57 +0200)] 
refactor(pool): add Worker/AWorker type aliases

With these we don't have direct dependencies on the asyncio and
threading modules in the pool classes.

2 years agorefactor(pool): give sync attribute the same life cycle of the async one
Daniele Varrazzo [Thu, 5 Oct 2023 00:43:50 +0000 (02:43 +0200)] 
refactor(pool): give sync attribute the same life cycle of the async one

Create possibly async objects only after we are sure that a loop is
running.

2 years agorefactor(pool): use non-string typing annotations
Daniele Varrazzo [Thu, 5 Oct 2023 00:22:20 +0000 (02:22 +0200)] 
refactor(pool): use non-string typing annotations

2 years agorefactor(pool): add functions to get current thread/task name
Daniele Varrazzo [Thu, 5 Oct 2023 00:21:15 +0000 (02:21 +0200)] 
refactor(pool): add functions to get current thread/task name

The latter is only possible as we dropped support for Python 3.7.

2 years agorefactor(pool): add Queue/AQueue compatibility objects
Daniele Varrazzo [Wed, 4 Oct 2023 22:21:58 +0000 (00:21 +0200)] 
refactor(pool): add Queue/AQueue compatibility objects

2 years agorefactor(pool): add spawn/gather async compat functions
Daniele Varrazzo [Wed, 4 Oct 2023 22:01:24 +0000 (00:01 +0200)] 
refactor(pool): add spawn/gather async compat functions

2 years agorefactor(pool): add psycopg_pool._acompat to ease async/sync differences
Daniele Varrazzo [Wed, 4 Oct 2023 20:44:48 +0000 (22:44 +0200)] 
refactor(pool): add psycopg_pool._acompat to ease async/sync differences

2 years agorefactor(pool): add psycopg_pool.abc module
Daniele Varrazzo [Wed, 4 Oct 2023 20:02:58 +0000 (22:02 +0200)] 
refactor(pool): add psycopg_pool.abc module

2 years agochore: make ast-comments an ordinary dev dependency
Daniele Varrazzo [Wed, 4 Oct 2023 18:38:44 +0000 (20:38 +0200)] 
chore: make ast-comments an ordinary dev dependency

2 years agoci: pin ast-comments to work around bug, document other bug as submitted
Daniele Varrazzo [Mon, 2 Oct 2023 10:08:09 +0000 (12:08 +0200)] 
ci: pin ast-comments to work around bug, document other bug as submitted

2 years agorefactor(pool): light refactor to align async and sync pool
Daniele Varrazzo [Sun, 1 Oct 2023 01:59:37 +0000 (03:59 +0200)] 
refactor(pool): light refactor to align async and sync pool

2 years agorefactor(tests): generate null pool tests from async counterpart
Daniele Varrazzo [Tue, 12 Sep 2023 05:08:21 +0000 (07:08 +0200)] 
refactor(tests): generate null pool tests from async counterpart

2 years agorefactor(tests): generate most pool tests using parametric fixture
Daniele Varrazzo [Tue, 12 Sep 2023 04:48:10 +0000 (06:48 +0200)] 
refactor(tests): generate most pool tests using parametric fixture

2 years agorefactor(tests): rename cursor tests to keep them together
Daniele Varrazzo [Mon, 11 Sep 2023 22:19:22 +0000 (23:19 +0100)] 
refactor(tests): rename cursor tests to keep them together

Also rename test_default_cursor to just test_cursor as we renamed the
common tests in the previous commit.

2 years agorefactor(tests): rename test_cursor to test_cursor_common
Daniele Varrazzo [Mon, 11 Sep 2023 22:15:11 +0000 (23:15 +0100)] 
refactor(tests): rename test_cursor to test_cursor_common

2 years agorefactor(tests): generate test_pool from async counterpart
Daniele Varrazzo [Mon, 11 Sep 2023 21:57:44 +0000 (22:57 +0100)] 
refactor(tests): generate test_pool from async counterpart

2 years agorefactor(tests): generate test_sched from async counterpart
Daniele Varrazzo [Mon, 11 Sep 2023 17:50:44 +0000 (18:50 +0100)] 
refactor(tests): generate test_sched from async counterpart