]>
git.ipfire.org Git - thirdparty/psycopg.git/log
Denis Laxalde [Tue, 2 Nov 2021 09:26:22 +0000 (10:26 +0100)]
Adjust test_pgconn::test_info() for mypy
Resolves the following error:
error: Item "None" of "Optional[bytes]" has no attribute "decode"
Denis Laxalde [Tue, 2 Nov 2021 09:18:06 +0000 (10:18 +0100)]
Rename a variable in test_conninfo_parse()
To silent a 'incompatible types in assignment' mypy error.
Denis Laxalde [Tue, 2 Nov 2021 09:18:06 +0000 (10:18 +0100)]
Rename a variable in tests/pq/test_copy.py
To silent a 'incompatible types in assignment' mypy error.
Denis Laxalde [Tue, 2 Nov 2021 09:07:47 +0000 (10:07 +0100)]
Adjust test_pq::test_build_version() for mypy
pq.__build_version__ might be None.
Denis Laxalde [Tue, 2 Mar 2021 11:25:10 +0000 (12:25 +0100)]
Rename a variable in test_conninfo_parse() to silent a mypy error
Daniele Varrazzo [Wed, 3 Nov 2021 15:52:39 +0000 (16:52 +0100)]
Merge branch 'mypy-tests/types'
Denis Laxalde [Thu, 28 Oct 2021 09:35:04 +0000 (11:35 +0200)]
Let mypy check tests/types code
We configure mypy to check untyped defs in tests/ directory, but only
let it check tests/types files at the moment.
Denis Laxalde [Thu, 28 Oct 2021 08:42:49 +0000 (10:42 +0200)]
Rename a variable in test_composite.py::test_register_scope()
To make mypy happy.
Denis Laxalde [Thu, 28 Oct 2021 08:55:21 +0000 (10:55 +0200)]
Add a couple of "# type: ignore" in datetime tests
Mypy cannot check map() calls on split-strings.
Denis Laxalde [Thu, 28 Oct 2021 08:42:49 +0000 (10:42 +0200)]
Rename a variable in test_array.py::test_all_chars()
To make mypy happy.
Denis Laxalde [Thu, 28 Oct 2021 08:24:44 +0000 (10:24 +0200)]
Make test_multirange.py mypy-clean
Either ignoring errors (often intended) or adding type hints/ignore as
in previous commit.
Denis Laxalde [Thu, 28 Oct 2021 08:40:28 +0000 (10:40 +0200)]
Make test_range.py mypy-clean
This consists in adding the type variable to Range type when it makes
sense or to let mypy ignore the 'var-annotated' error for ranges
declared as empty, and where we do not use the underlying value.
In test_in(), we add an extra check to verify that mypy warns about
types incompatibility.
Denis Laxalde [Thu, 28 Oct 2021 07:59:11 +0000 (09:59 +0200)]
Ignore typing errors in test_no_info_error() tests
Denis Laxalde [Thu, 28 Oct 2021 07:57:31 +0000 (09:57 +0200)]
Pass a dummy oid in test_hstore::test_parse_{ok,bad}
HstoreLoader() wants an integer value as first parameter 'oid'. In these
tests, the value does not matter but at least pass the expected type.
Daniele Varrazzo [Thu, 28 Oct 2021 15:33:00 +0000 (17:33 +0200)]
Make __version__ importable, although not included in __all__
Daniele Varrazzo [Thu, 28 Oct 2021 15:30:40 +0000 (17:30 +0200)]
Make the mypy fixture available to the whole test suite
Also make mypy tests automatically slow.
See #130 for other cases where a mypy fixture would be useful.
Daniele Varrazzo [Sat, 30 Oct 2021 16:30:17 +0000 (18:30 +0200)]
Harmless refactoring to server-side cursors
It's cool that mypy finds the common base of the two expressions in the
ternary operator.
Daniele Varrazzo [Sat, 30 Oct 2021 15:26:54 +0000 (17:26 +0200)]
Shorten server-side cursor execute() tracebacks
Daniele Varrazzo [Sat, 30 Oct 2021 15:24:07 +0000 (17:24 +0200)]
Merge remote-tracking branch 'sureshdsk/issue-125'
Daniele Varrazzo [Sat, 30 Oct 2021 15:22:55 +0000 (17:22 +0200)]
Ignore .venv dir in any subdir
Suresh Kumar [Sat, 30 Oct 2021 15:13:21 +0000 (20:43 +0530)]
added async server cursor close tests for fetchone, fetchmany, fetchall
Suresh Kumar [Sat, 30 Oct 2021 15:08:27 +0000 (20:38 +0530)]
fixed cursor close check + updated news
Suresh Kumar [Sat, 30 Oct 2021 14:39:56 +0000 (20:09 +0530)]
added issue-125 fix to news
Daniele Varrazzo [Sat, 30 Oct 2021 14:36:57 +0000 (16:36 +0200)]
Fix Sphinx setup version specification
Also specify other dependencies using the ~= operator.
Suresh Kumar [Sat, 30 Oct 2021 14:28:27 +0000 (19:58 +0530)]
added async cursor close tests for fetchone, fetchmany, fetchall
Suresh Kumar [Sat, 30 Oct 2021 14:16:33 +0000 (19:46 +0530)]
fixed cursor close check + added tests for fetchone, fetchmany, fetchall
Suresh Kumar [Sat, 23 Oct 2021 14:45:36 +0000 (20:15 +0530)]
fix: check if cursor is closed
Daniele Varrazzo [Thu, 28 Oct 2021 23:36:03 +0000 (01:36 +0200)]
Fix test range comparison with empty ranges
Daniele Varrazzo [Thu, 28 Oct 2021 23:08:12 +0000 (01:08 +0200)]
Mark slow every test taking more than 0.1s to run
Daniele Varrazzo [Thu, 28 Oct 2021 22:51:11 +0000 (00:51 +0200)]
Better workaround for bad datetime comparison Python bug
The problem doesn't just happen far away in the future. 2255 is enough.
See https://bugs.python.org/issue45347#msg405284
Compare timestamps by checking if their delta is 0, convert ranges bounds
to utc.
Fun fact: pytest --randomly-seed=
293472621 triggers both the multirange
array bug and this.
Daniele Varrazzo [Thu, 28 Oct 2021 22:49:57 +0000 (00:49 +0200)]
Avoid error in multirange arrays random testing
Don't create arrays with first element empty if dumping in binary. It is
known to not work (see xfail in multirange tests).
Daniele Varrazzo [Thu, 28 Oct 2021 21:20:32 +0000 (23:20 +0200)]
Retry a brittle test
Daniele Varrazzo [Thu, 28 Oct 2021 16:11:16 +0000 (18:11 +0200)]
Make ServerCursorHelper.format private
Reduce duplicate code, remove a race condition (the format set outside
the lock section), make _declare_gen() interface more similar to
_execute_gen().
Daniele Varrazzo [Thu, 28 Oct 2021 15:55:37 +0000 (17:55 +0200)]
refactor: compose DECLARE in the helper common path
...instead of in the separate sync/async branches.
Daniele Varrazzo [Thu, 28 Oct 2021 11:34:45 +0000 (13:34 +0200)]
Clean up imports/exports in psycopg package
Drop file-level F401 ignore and declare explicitly what is exported.
Something reordered to keep together package-level types registration,
to use a somewhat alphabetical order to group of things.
Daniele Varrazzo [Tue, 26 Oct 2021 15:56:14 +0000 (16:56 +0100)]
Rename test file dropping the 3 from psycopg
Denis Laxalde [Thu, 28 Oct 2021 08:13:39 +0000 (10:13 +0200)]
Raise a TypeError when slice-setting a Multirange with a non-iterable value
The type declaration is:
def __setitem__(index: slice, value: Iterable[Range[T]]) -> None:
...
so passing a non-iterable value should not be allowed. However, the
method implementation makes a special-case for non-iterable values with
a slice.
In accordance with MutableSequence behavior, e.g.:
>>> x = [1, 2, 3]
>>> x[1:3] = 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only assign an iterable
it seems more correct to raise a TypeError.
Denis Laxalde [Thu, 28 Oct 2021 09:31:25 +0000 (11:31 +0200)]
Re-export DB-API type constructors and singletons
Following https://www.python.org/dev/peps/pep-0249/#type-objects-and-constructors
Daniele Varrazzo [Tue, 26 Oct 2021 12:16:01 +0000 (13:16 +0100)]
Fix formatting in news page
Daniele Varrazzo [Tue, 26 Oct 2021 12:14:59 +0000 (13:14 +0100)]
Fix type hint for `Connection.notifies()`
Close #128.
Daniele Varrazzo [Tue, 26 Oct 2021 12:11:59 +0000 (13:11 +0100)]
Fix type hint for `sql.SQL.join()`
Close #127.
Daniele Varrazzo [Mon, 25 Oct 2021 08:59:09 +0000 (09:59 +0100)]
Remove the pgresult structure from the cursor on close
This is what the dbapi demands and helps with make the cursor
unavailable after close.
Daniele Varrazzo [Mon, 25 Oct 2021 10:14:40 +0000 (11:14 +0100)]
Bump sphinx to 4.2 to build docs
Version 4.1 has problems with Python 3.10
Daniele Varrazzo [Mon, 25 Oct 2021 09:15:06 +0000 (10:15 +0100)]
Install shapely requirements to validate docs
If it works the same change will be applied to the psycopg-website
repos.
Close #123
Daniele Varrazzo [Thu, 21 Oct 2021 11:47:44 +0000 (12:47 +0100)]
Extend docs about connection context
Highlight the difference from normal connection (implicit rollback vs.
explicit commit) after conversation on the mailing list about the
inconsistency between the operations.
Daniele Varrazzo [Wed, 20 Oct 2021 11:16:42 +0000 (13:16 +0200)]
Fix wrong error message on unknown PostgreSQL encoding
Reported in #122.
Daniele Varrazzo [Wed, 20 Oct 2021 11:20:07 +0000 (13:20 +0200)]
Bump version number to next dev release
Ramiro Morales [Sun, 17 Oct 2021 01:04:35 +0000 (22:04 -0300)]
Fix var name in transactions doc examples
Daniele Varrazzo [Sat, 16 Oct 2021 10:16:56 +0000 (12:16 +0200)]
Highlight meaningful lines in transaction examples
Daniele Varrazzo [Sat, 16 Oct 2021 10:04:54 +0000 (12:04 +0200)]
Fix docs wording after Daniel Fortunov's suggestion
Daniel Fortunov [Fri, 15 Oct 2021 21:22:26 +0000 (22:22 +0100)]
Tweak "Multiple statements in the same query" docs
Minor wording and typographical tweaks in follow-up to
650e215b
Daniele Varrazzo [Fri, 15 Oct 2021 11:53:59 +0000 (13:53 +0200)]
Add documentation about multiple statements execution
Close #109.
Daniele Varrazzo [Fri, 15 Oct 2021 10:47:43 +0000 (12:47 +0200)]
Improve transactions documentation
close #110
Daniele Varrazzo [Thu, 14 Oct 2021 09:36:14 +0000 (11:36 +0200)]
Bump to version 3.0.1
Daniele Varrazzo [Thu, 14 Oct 2021 08:59:35 +0000 (10:59 +0200)]
Merge branch 'bug-112'
Daniele Varrazzo [Thu, 14 Oct 2021 00:26:02 +0000 (02:26 +0200)]
Mention bug fixed in news file
Close #112.
Daniele Varrazzo [Thu, 14 Oct 2021 00:21:25 +0000 (02:21 +0200)]
Don't use row dumpers to dump a sequence in C implementation either
As per previous commit, the assumption that different rows will need the
different dumper is easily broken.
Ref. bug #112
Daniele Varrazzo [Wed, 13 Oct 2021 23:32:23 +0000 (01:32 +0200)]
Add tests on executemany to check the same problem of bug #112
Daniele Varrazzo [Wed, 13 Oct 2021 23:26:09 +0000 (01:26 +0200)]
Don't use row dumpers to dump a sequence
Using row dumpers uses the assumption that the types will be the same if
we see the same query. It's easy to break this assumption. Being cheeky
is a way (like passing arguments 1, '2' to the same query...) but it's
easy to trigger the problem dumping numbers and going from in2-size to
int4-size.
This commit only fixes the Python implementation.
Ref. bug #112
Daniele Varrazzo [Wed, 13 Oct 2021 21:41:26 +0000 (23:41 +0200)]
Add test to reproduce bug #112
Our first bug!
Daniele Varrazzo [Wed, 13 Oct 2021 20:25:29 +0000 (22:25 +0200)]
Bump to next dev release
Daniele Varrazzo [Wed, 13 Oct 2021 00:17:54 +0000 (02:17 +0200)]
Fix composite example
Daniele Varrazzo [Tue, 12 Oct 2021 22:23:26 +0000 (00:23 +0200)]
More docs typo
Daniele Varrazzo [Tue, 12 Oct 2021 21:50:10 +0000 (23:50 +0200)]
Docs typo
Daniele Varrazzo [Tue, 12 Oct 2021 21:42:43 +0000 (23:42 +0200)]
Bold for an important install requirement
Daniele Varrazzo [Tue, 12 Oct 2021 21:40:55 +0000 (23:40 +0200)]
Fix typo, as well as the sense, of a sentence
Daniele Varrazzo [Tue, 12 Oct 2021 14:34:12 +0000 (16:34 +0200)]
Fix news for release 3.0
Daniele Varrazzo [Tue, 12 Oct 2021 12:49:44 +0000 (14:49 +0200)]
Bump to version 3.0.0
Daniele Varrazzo [Tue, 12 Oct 2021 12:47:35 +0000 (14:47 +0200)]
Move classifiers to stable release
Daniele Varrazzo [Tue, 12 Oct 2021 12:47:53 +0000 (14:47 +0200)]
Drop --pre from documentation
Daniele Varrazzo [Tue, 12 Oct 2021 13:04:51 +0000 (15:04 +0200)]
Drop docs for numeric wrappers
They might not be needed after all, because set_types is probably a
better approach.
Daniele Varrazzo [Tue, 12 Oct 2021 14:05:47 +0000 (16:05 +0200)]
Add typing docs page
Daniele Varrazzo [Tue, 12 Oct 2021 13:17:09 +0000 (15:17 +0200)]
Improve "what's new section in the docs.
Daniele Varrazzo [Tue, 12 Oct 2021 13:05:28 +0000 (15:05 +0200)]
Docs typos
Daniele Varrazzo [Mon, 11 Oct 2021 15:36:55 +0000 (17:36 +0200)]
Upgrade flake8 to 4.0.1
Daniele Varrazzo [Mon, 11 Oct 2021 15:35:44 +0000 (17:35 +0200)]
Fix random test failure caused by degenerate list sample
For example it would fail if a list containing an empty range would be
selected.
https://github.com/psycopg/psycopg/pull/102/checks?check_run_id=
3859021392
Denis Laxalde [Mon, 11 Oct 2021 12:18:46 +0000 (14:18 +0200)]
Add PGconn.send_flush_request()
This function is associated with the pipeline mode.
Daniele Varrazzo [Sun, 10 Oct 2021 20:01:20 +0000 (22:01 +0200)]
Merge branch 'libpq/pipeline'
Daniele Varrazzo [Sun, 10 Oct 2021 19:59:05 +0000 (21:59 +0200)]
Use constant name as return value for pipeline_status
Also use the enum in test, without assuming OFF == 0
Denis Laxalde [Sun, 10 Oct 2021 09:27:13 +0000 (11:27 +0200)]
Rework PGconn.pipeline_status
We make this method a property, that returns an integer value, as do
other similar properties/methods on PGconn.
Then, for libpq version older than 14.0, we make this property always
return 0 (PQ_PIPELINE_OFF).
Denis Laxalde [Sun, 10 Oct 2021 09:22:14 +0000 (11:22 +0200)]
Define PGRES_PIPELINE_* ExecStatusType values as macros for libpq < 14.0
Daniele Varrazzo [Fri, 8 Oct 2021 01:25:46 +0000 (03:25 +0200)]
Hide long tracebacks on connect
Only hide tracebacks of errors coming from the database. They just come
from the database: seeing exactly where they explode inside psycopg is
not useful for the end user. Especially given the generator/waiting
interaction.
See https://github.com/psycopg/psycopg/issues/99 for an example of not
particularly helpful traceback (the message is the only useful bit).
Daniele Varrazzo [Fri, 8 Oct 2021 01:24:16 +0000 (03:24 +0200)]
Mark typing test slow
Daniele Varrazzo [Thu, 7 Oct 2021 21:20:49 +0000 (23:20 +0200)]
Don't generate random timestamps BC
It might happen to go below datetime.datetime.min if the timezone is
involved.
Today the random data generator is having a field day...
Daniele Varrazzo [Thu, 7 Oct 2021 19:47:02 +0000 (21:47 +0200)]
Add tests to verify that execute and enter respect cursor subclasses
Daniele Varrazzo [Thu, 7 Oct 2021 18:29:45 +0000 (20:29 +0200)]
Improve typing definition for cursor execute/enter
This is more redundant than using AnyCursor but it respects better the
interface returned.
Daniele Varrazzo [Thu, 7 Oct 2021 20:23:36 +0000 (22:23 +0200)]
Avoid to create emtpy ranges in tests
Daniele Varrazzo [Thu, 7 Oct 2021 20:15:47 +0000 (22:15 +0200)]
Bump up a timeout for a test which sometimes fails in the CI on windows
Federico Caselli [Thu, 7 Oct 2021 19:25:41 +0000 (21:25 +0200)]
Properly close the at hock event loop in test_windows_error
Daniele Varrazzo [Thu, 7 Oct 2021 12:51:10 +0000 (14:51 +0200)]
Test binary packages using Postgres 13 to avoid scram auth problems on aarch64
Daniele Varrazzo [Wed, 6 Oct 2021 22:17:47 +0000 (00:17 +0200)]
Build Windows binary package with libpq 14
Denis Laxalde [Thu, 7 Oct 2021 10:03:03 +0000 (12:03 +0200)]
Update Windows CI job for Postgres 14
Since image
20211003 .2, PostgreSQL 14 is installed:
https://github.com/actions/virtual-environments/blob/win19/
20211003 .2/images/win/Windows2019-Readme.md
Daniele Varrazzo [Thu, 7 Oct 2021 00:29:00 +0000 (02:29 +0200)]
Fix connection delay bias in pool test queue
The connection time was mistakenly counted in the execution time, which
made the test more brittle than already is.
Daniele Varrazzo [Wed, 6 Oct 2021 22:15:06 +0000 (00:15 +0200)]
Use PostgreSQL 14 to test in the CI
Daniele Varrazzo [Tue, 5 Oct 2021 13:41:55 +0000 (15:41 +0200)]
Install typing extensions for setuptools, pytest
Daniele Varrazzo [Tue, 5 Oct 2021 13:41:15 +0000 (15:41 +0200)]
Move mypy configuration to pyproject.toml
Daniele Varrazzo [Tue, 5 Oct 2021 11:31:26 +0000 (13:31 +0200)]
Dropped unneeded continue at the end of a loop
Daniele Varrazzo [Tue, 5 Oct 2021 13:09:48 +0000 (14:09 +0100)]
Merge pull request #91 from dlax/generators-c
Define and use send(), fetch_many() and fetch() generators in C implementation
Denis Laxalde [Sat, 2 Oct 2021 13:47:43 +0000 (15:47 +0200)]
Possibly use C impl of send() and fetch() in Cursor.stream()
Taking advantage of these functions being available per previous commit.
Denis Laxalde [Wed, 29 Sep 2021 12:09:29 +0000 (14:09 +0200)]
Extract send(), fetch_many() and fetch() from generators.execute() C impl
We extract send(), fetch_many() and fetch() functions from execute() C
implementation. This way, the code structure is similar to the Python
implementation.