Skip to content

Commit 6ee174c

Browse files
authored
Improve ext.asyncio.result (#50)
* Improve `ext.asyncio.result` * Updates based on PR feedback
1 parent bb8e714 commit 6ee174c

File tree

1 file changed

+60
-42
lines changed

1 file changed

+60
-42
lines changed
Lines changed: 60 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,91 @@
11
from typing import Any
2-
from typing import Int
32
from typing import Iterator
43
from typing import List
54
from typing import Mapping
65
from typing import Optional
6+
from typing import TypeVar
77

8-
from ... import util as util
9-
from ...engine.result import FilterResult as FilterResult
10-
from ...engine.result import FrozenResult as FrozenResult
11-
from ...engine.result import MergedResult as MergedResult
12-
from ...engine.result import Row as Row
13-
from ...util.concurrency import greenlet_spawn as greenlet_spawn
8+
from ...engine.result import FilterResult
9+
from ...engine.result import FrozenResult
10+
from ...engine.result import MergedResult
11+
from ...engine.result import Result
12+
from ...engine.result import RMKeyView
13+
from ...engine.result import Row
14+
15+
_TAsyncResult = TypeVar("_TAsyncResult", bound=AsyncResult)
16+
_TAsyncScalarResult = TypeVar("_TAsyncScalarResult", bound=AsyncScalarResult)
17+
_TAsyncMappingResult = TypeVar(
18+
"_TAsyncMappingResult", bound=AsyncMappingResult
19+
)
1420

1521
class AsyncCommon(FilterResult):
1622
async def close(self) -> None: ...
1723

1824
class AsyncResult(AsyncCommon):
19-
def __init__(self, real_result: Any) -> None: ...
20-
def keys(self): ...
21-
def unique(self, strategy: Optional[Any] = ...): ...
22-
def columns(self, *col_expressions: object) -> AsyncResult: ...
25+
def __init__(self, real_result: Result) -> None: ...
26+
def keys(self) -> RMKeyView: ...
27+
def unique(
28+
self: _TAsyncResult, strategy: Optional[Any] = ...
29+
) -> _TAsyncResult: ...
30+
def columns(
31+
self: _TAsyncResult, *col_expressions: Any
32+
) -> _TAsyncResult: ...
2333
async def partitions(
24-
self, size: Optional[Int] = ...
34+
self, size: Optional[int] = ...
2535
) -> Iterator[List[Any]]: ...
26-
async def fetchone(self) -> Row: ...
27-
async def fetchmany(self, size: Optional[Int] = ...) -> List[Row]: ...
36+
async def fetchone(self) -> Optional[Row]: ...
37+
async def fetchmany(self, size: Optional[int] = ...) -> List[Row]: ...
2838
async def all(self) -> List[Row]: ...
29-
def __aiter__(self): ...
30-
async def __anext__(self): ...
31-
async def first(self) -> Row: ...
39+
def __aiter__(self: _TAsyncResult) -> _TAsyncResult: ...
40+
async def __anext__(self) -> Row: ...
41+
async def first(self) -> Optional[Row]: ...
3242
async def one_or_none(self) -> Optional[Row]: ...
3343
async def scalar_one(self) -> Any: ...
3444
async def scalar_one_or_none(self) -> Optional[Any]: ...
3545
async def one(self) -> Row: ...
3646
async def scalar(self) -> Optional[Any]: ...
37-
async def freeze(self): ...
38-
def merge(self, *others: Any): ...
39-
def scalars(self, index: Int = ...) -> AsyncScalarResult: ...
40-
def mappings(self): ...
47+
async def freeze(self) -> FrozenResult: ...
48+
def merge(self, *others: Any) -> MergedResult: ...
49+
def scalars(self, index: int = ...) -> AsyncScalarResult: ...
50+
def mappings(self) -> AsyncMappingResult: ...
4151

4252
class AsyncScalarResult(AsyncCommon):
43-
def __init__(self, real_result: Any, index: Any) -> None: ...
44-
def unique(self, strategy: Optional[Any] = ...): ...
53+
def __init__(self, real_result: AsyncResult, index: Any) -> None: ...
54+
def unique(
55+
self: _TAsyncScalarResult, strategy: Optional[Any] = ...
56+
) -> _TAsyncScalarResult: ...
4557
async def partitions(
46-
self, size: Optional[Int] = ...
58+
self, size: Optional[int] = ...
4759
) -> Iterator[List[Any]]: ...
4860
async def fetchall(self) -> List[Any]: ...
49-
async def fetchmany(self, size: Optional[Int] = ...) -> List[Any]: ...
61+
async def fetchmany(self, size: Optional[int] = ...) -> List[Any]: ...
5062
async def all(self) -> List[Any]: ...
51-
def __aiter__(self): ...
52-
async def __anext__(self): ...
63+
def __aiter__(self: _TAsyncScalarResult) -> _TAsyncScalarResult: ...
64+
async def __anext__(self) -> Any: ...
5365
async def first(self) -> Optional[Any]: ...
5466
async def one_or_none(self) -> Optional[Any]: ...
5567
async def one(self) -> Any: ...
5668

5769
class AsyncMappingResult(AsyncCommon):
58-
def __init__(self, result: Any) -> None: ...
59-
def keys(self): ...
60-
def unique(self, strategy: Optional[Any] = ...): ...
61-
def columns(self, *col_expressions: object) -> AsyncMappingResult: ...
70+
def __init__(self, result: AsyncResult) -> None: ...
71+
def keys(self) -> RMKeyView: ...
72+
def unique(
73+
self: _TAsyncMappingResult, strategy: Optional[Any] = ...
74+
) -> _TAsyncMappingResult: ...
75+
def columns(
76+
self: _TAsyncMappingResult, *col_expressions: Any
77+
) -> _TAsyncMappingResult: ...
6278
async def partitions(
63-
self, size: Optional[Int] = ...
64-
) -> Iterator[List[Mapping]]: ...
65-
async def fetchall(self) -> List[Mapping]: ...
66-
async def fetchone(self) -> Mapping: ...
67-
async def fetchmany(self, size: Optional[Int] = ...) -> List[Mapping]: ...
68-
async def all(self) -> List[Mapping]: ...
69-
def __aiter__(self): ...
70-
async def __anext__(self): ...
71-
async def first(self) -> Optional[Mapping]: ...
72-
async def one_or_none(self) -> Optional[Mapping]: ...
73-
async def one(self) -> Mapping: ...
79+
self, size: Optional[int] = ...
80+
) -> Iterator[List[Mapping[Any, Any]]]: ...
81+
async def fetchall(self) -> List[Mapping[Any, Any]]: ...
82+
async def fetchone(self) -> Optional[Mapping[Any, Any]]: ...
83+
async def fetchmany(
84+
self, size: Optional[int] = ...
85+
) -> List[Mapping[Any, Any]]: ...
86+
async def all(self) -> List[Mapping[Any, Any]]: ...
87+
def __aiter__(self: _TAsyncMappingResult) -> _TAsyncMappingResult: ...
88+
async def __anext__(self) -> Mapping[Any, Any]: ...
89+
async def first(self) -> Optional[Mapping[Any, Any]]: ...
90+
async def one_or_none(self) -> Optional[Mapping[Any, Any]]: ...
91+
async def one(self) -> Mapping[Any, Any]: ...

0 commit comments

Comments
 (0)