]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
Make __version__ importable, although not included in __all__ 131/head
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Thu, 28 Oct 2021 15:33:00 +0000 (17:33 +0200)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sat, 30 Oct 2021 16:45:03 +0000 (18:45 +0200)
psycopg/psycopg/__init__.py
psycopg_c/psycopg_c/__init__.py
psycopg_pool/psycopg_pool/__init__.py
tests/pool/test_pool.py
tests/test_module.py

index 368b8ef6677593f3990e9cc5a678b6343974a6a7..20d675e25832cd9793c5f67b4cb83f944dbf455c 100644 (file)
@@ -28,7 +28,7 @@ from .dbapi20 import BINARY, DATETIME, NUMBER, ROWID, STRING
 from .dbapi20 import Binary, Date, DateFromTicks, Time, TimeFromTicks
 from .dbapi20 import Timestamp, TimestampFromTicks
 
-from .version import __version__
+from .version import __version__ as __version__  # noqa: F401
 
 # Set the logger to a quiet default, can be enabled if needed
 logger = logging.getLogger("psycopg")
@@ -55,7 +55,6 @@ types.array.register_all_arrays(adapters)
 # this is the canonical place to obtain them and should be used by MyPy too,
 # so that function signatures are consistent with the documentation.
 __all__ = [
-    "__version__",
     "AsyncConnection",
     "AsyncCopy",
     "AsyncCursor",
index 6bd9b8ded954d9cfbce9a06f8535c6106a7f4e7e..ac56afa87ac7812aa6add37fac0117646c4ca4e2 100644 (file)
@@ -13,4 +13,4 @@ if "psycopg" not in sys.modules:
         "the psycopg package should be imported before psycopg_c"
     )
 
-from .version import __version__  # noqa
+from .version import __version__ as __version__  # noqa
index 529a99f3baa50ff6eb0504e42aa4e46a51d1f0fd..49b035b31aa026798c4978ae2638cb9145e844cd 100644 (file)
@@ -7,7 +7,7 @@ psycopg connection pool package
 from .pool import ConnectionPool
 from .pool_async import AsyncConnectionPool
 from .errors import PoolClosed, PoolTimeout, TooManyRequests
-from .version import __version__  # noqa: F401
+from .version import __version__ as __version__  # noqa: F401
 
 __all__ = [
     "AsyncConnectionPool",
index 6abd895536561a1da5c0803e5612cf186271dea9..b007aecda39ea1f0f5f2888e7a7aca5e3e123cef 100644 (file)
@@ -20,6 +20,16 @@ else:
     import psycopg_pool as pool
 
 
+def test_package_version(mypy):
+    cp = mypy.run_on_source(
+        """\
+from psycopg_pool import __version__
+assert __version__
+"""
+    )
+    assert not cp.stdout
+
+
 def test_defaults(dsn):
     with pool.ConnectionPool(dsn) as p:
         assert p.min_size == p.max_size == 4
index e54f5f6c87b842f8f254cf91202ea05f211c248c..16740d8c298ba6ce6c5313a2a1845615d55673fd 100644 (file)
@@ -1,5 +1,7 @@
 import pytest
 
+from psycopg._cmodule import _psycopg
+
 
 @pytest.mark.parametrize(
     "args, kwargs, want_conninfo",
@@ -28,3 +30,27 @@ def test_connect(monkeypatch, dsn, args, kwargs, want_conninfo):
 
     psycopg.connect(*args, **kwargs)
     assert got_conninfo == want_conninfo
+
+
+def test_version(mypy):
+    cp = mypy.run_on_source(
+        """\
+from psycopg import __version__
+assert __version__
+"""
+    )
+    assert not cp.stdout
+
+
+@pytest.mark.skipif(_psycopg is None, reason="C module test")
+def test_version_c(mypy):
+    # can be psycopg_c, psycopg_binary
+    cpackage = _psycopg.__name__.split(".")[0]
+
+    cp = mypy.run_on_source(
+        f"""\
+from {cpackage} import __version__
+assert __version__
+"""
+    )
+    assert not cp.stdout