Skip to content

Commit 3295917

Browse files
committed
Fix annotations
1 parent be9431c commit 3295917

File tree

2 files changed

+24
-12
lines changed

2 files changed

+24
-12
lines changed

databases/backends/postgres.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from sqlalchemy.engine.interfaces import Dialect
88
from sqlalchemy.sql import ClauseElement
99
from sqlalchemy.sql.schema import Column
10+
from sqlalchemy.types import TypeEngine
1011

1112
from databases.core import DatabaseURL
1213
from databases.interfaces import ConnectionBackend, DatabaseBackend, TransactionBackend
@@ -72,9 +73,15 @@ def __init__(
7273
self._row = row
7374
self._result_columns = result_columns
7475
self._dialect = dialect
75-
self._column_map = {}
76-
self._column_map_int = {}
77-
self._column_map_full = {}
76+
self._column_map = (
77+
{}
78+
) # type: typing.Mapping[str, typing.Tuple[int, TypeEngine]]
79+
self._column_map_int = (
80+
{}
81+
) # type: typing.Mapping[int, typing.Tuple[int, TypeEngine]]
82+
self._column_map_full = (
83+
{}
84+
) # type: typing.Mapping[str, typing.Tuple[int, TypeEngine]]
7885
for idx, (column_name, _, column, datatype) in enumerate(self._result_columns):
7986
self._column_map[column_name] = (idx, datatype)
8087
self._column_map_int[idx] = (idx, datatype)

databases/core.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from urllib.parse import SplitResult, parse_qsl, urlsplit
77

88
from sqlalchemy import text
9-
from sqlalchemy.engine import RowProxy
109
from sqlalchemy.sql import ClauseElement
1110

1211
from databases.importer import import_from_string
@@ -91,18 +90,21 @@ async def __aexit__(
9190

9291
async def fetch_all(
9392
self, query: typing.Union[ClauseElement, str], values: dict = None
94-
) -> typing.List[RowProxy]:
93+
) -> typing.List[typing.Mapping]:
9594
async with self.connection() as connection:
9695
return await connection.fetch_all(query, values)
9796

9897
async def fetch_one(
9998
self, query: typing.Union[ClauseElement, str], values: dict = None
100-
) -> RowProxy:
99+
) -> typing.Optional[typing.Mapping]:
101100
async with self.connection() as connection:
102101
return await connection.fetch_one(query, values)
103102

104103
async def fetch_val(
105-
self, query: typing.Union[ClauseElement, str], values: dict = None, column: typing.Any = 0
104+
self,
105+
query: typing.Union[ClauseElement, str],
106+
values: dict = None,
107+
column: typing.Any = 0,
106108
) -> typing.Any:
107109
async with self.connection() as connection:
108110
return await connection.fetch_val(query, values, column=column)
@@ -121,7 +123,7 @@ async def execute_many(
121123

122124
async def iterate(
123125
self, query: typing.Union[ClauseElement, str], values: dict = None
124-
) -> typing.AsyncGenerator[RowProxy, None]:
126+
) -> typing.AsyncGenerator[typing.Mapping, None]:
125127
async with self.connection() as connection:
126128
async for record in connection.iterate(query, values):
127129
yield record
@@ -173,19 +175,22 @@ async def __aexit__(
173175

174176
async def fetch_all(
175177
self, query: typing.Union[ClauseElement, str], values: dict = None
176-
) -> typing.Any:
178+
) -> typing.List[typing.Mapping]:
177179
return await self._connection.fetch_all(self._build_query(query, values))
178180

179181
async def fetch_one(
180182
self, query: typing.Union[ClauseElement, str], values: dict = None
181-
) -> typing.Any:
183+
) -> typing.Optional[typing.Mapping]:
182184
return await self._connection.fetch_one(self._build_query(query, values))
183185

184186
async def fetch_val(
185-
self, query: typing.Union[ClauseElement, str], values: dict = None, column: typing.Any = 0
187+
self,
188+
query: typing.Union[ClauseElement, str],
189+
values: dict = None,
190+
column: typing.Any = 0,
186191
) -> typing.Any:
187192
row = await self._connection.fetch_one(self._build_query(query, values))
188-
return row[column]
193+
return None if row is None else row[column]
189194

190195
async def execute(
191196
self, query: typing.Union[ClauseElement, str], values: dict = None

0 commit comments

Comments
 (0)