Skip to content

Commit 0634d4c

Browse files
authored
[hdbcli] Bump to 2.29.* and add async types (#15332)
1 parent b00c387 commit 0634d4c

3 files changed

Lines changed: 62 additions & 1 deletion

File tree

stubs/hdbcli/@tests/stubtest_allowlist.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,16 @@ hdbcli.dbapi.ExecuteManyErrorEntry.rownumber
88
hdbcli.dbapi.buffer
99
hdbcli.dbapi.long
1010
hdbcli.dbapi.unicode
11+
12+
# async_connect is an alias for AsyncConnection, but at runtime its a function
13+
hdbcli.dbapi.async_connect
14+
15+
# *args/**kwargs are not added by purpose but are part of the python wrapper
16+
hdbcli.dbapi.AsyncLob.close
17+
hdbcli.dbapi.AsyncCursor.nextset
18+
hdbcli.dbapi.AsyncCursor.fetchall
19+
hdbcli.dbapi.AsyncCursor.close
20+
hdbcli.dbapi.AsyncConnection.rollback
21+
hdbcli.dbapi.AsyncConnection.commit
22+
hdbcli.dbapi.AsyncConnection.close
23+
hdbcli.dbapi.AsyncConnection.cancel

stubs/hdbcli/METADATA.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
version = "2.25.*"
1+
version = "2.29.*"
22
# upstream-repository = closed-source

stubs/hdbcli/hdbcli/dbapi.pyi

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class Connection:
4040
def setautocommit(self, auto: bool = ...) -> None: ...
4141
def setclientinfo(self, key: str, value: str | None = ...) -> None: ...
4242
def ontrace(self, callback: Callable[[str], Any], options: str = ...) -> None: ...
43+
def ping(self) -> bool: ...
4344

4445
connect = Connection
4546

@@ -143,3 +144,50 @@ DATETIME: type[date | time | datetime]
143144
STRING = str
144145
BINARY = memoryview
145146
ROWID = int
147+
148+
class AsyncConnection(Connection):
149+
@classmethod
150+
async def create(
151+
cls,
152+
address: str = "",
153+
port: int = 0,
154+
user: str = "",
155+
password: str = "",
156+
autocommit: bool = True,
157+
packetsize: int | None = None,
158+
userkey: str | None = ...,
159+
*,
160+
sessionvariables: dict[str, str] | None = ...,
161+
forcebulkfetch: bool | None = ...,
162+
) -> Self: ...
163+
async def cancel(self) -> bool: ... # type: ignore[override]
164+
async def close(self) -> None: ... # type: ignore[override]
165+
async def commit(self) -> None: ... # type: ignore[override]
166+
async def cursor(self) -> AsyncCursor: ... # type: ignore[override]
167+
async def rollback(self) -> None: ... # type: ignore[override]
168+
169+
class AsyncCursor(Cursor):
170+
async def callproc(self, procname: str, parameters: tuple[Any, ...] = ..., overview: bool = ...) -> tuple[Any, ...]: ... # type: ignore[override]
171+
async def close(self) -> None: ... # type: ignore[override]
172+
async def execute(self, operation: str, parameters: tuple[Any, ...] | None = ...) -> bool: ... # type: ignore[override]
173+
async def executemany(self, operation: str, parameters: _Parameters = ..., batcherrors: bool = False) -> Any: ...
174+
async def executemanyprepared(self, parameters: _Parameters = ...) -> Any: ...
175+
async def executeprepared(self, parameters: _Parameters = ...) -> Any: ...
176+
async def fetchone(self, uselob: bool = ...) -> ResultRow | None: ... # type: ignore[override]
177+
async def fetchall(self) -> list[ResultRow]: ... # type: ignore[override]
178+
async def fetchmany(self, size: int | None = ...) -> list[ResultRow]: ... # type: ignore[override]
179+
async def nextset(self) -> None: ... # type: ignore[override]
180+
async def prepare(self, operation: str, newcursor: bool = ...) -> Any: ... # type: ignore[override]
181+
async def scroll(self, value: int, mode: Literal["absolute", "relative"] = ...) -> None: ... # type: ignore[override]
182+
async def __aenter__(self) -> Self: ...
183+
async def __aexit__(self, typ: type[BaseException] | None, val: BaseException | None, tb: TracebackType | None) -> None: ...
184+
185+
class AsyncLob(LOB):
186+
async def close(self) -> None: ... # type: ignore[override]
187+
async def find(self, object: str, length: int, position: int = ...) -> int: ... # type: ignore[override]
188+
async def read(self, size: int = ..., position: int = ...) -> str | bytes: ... # type: ignore[override]
189+
async def write(self, object: str | bytes) -> int: ... # type: ignore[override]
190+
191+
async_connect = AsyncConnection
192+
193+
def set_async_mode(enabled: bool = True) -> None: ...

0 commit comments

Comments
 (0)