https://github.com/coleifer/peewee/commit/83c6b78bd5df2c8c942f4fc32c4daedde01e8a63 From 83c6b78bd5df2c8c942f4fc32c4daedde01e8a63 Mon Sep 17 00:00:00 2001 From: Charles Leifer Date: Tue, 18 Jul 2023 17:37:27 -0500 Subject: [PATCH] Changes for Cython 3.0 --- a/playhouse/_sqlite_ext.pyx +++ b/playhouse/_sqlite_ext.pyx @@ -386,7 +386,7 @@ ctypedef struct peewee_cursor: # We define an xConnect function, but leave xCreate NULL so that the # table-function can be called eponymously. cdef int pwConnect(sqlite3 *db, void *pAux, int argc, const char *const*argv, - sqlite3_vtab **ppVtab, char **pzErr) with gil: + sqlite3_vtab **ppVtab, char **pzErr) noexcept with gil: cdef: int rc object table_func_cls = pAux @@ -407,7 +407,7 @@ cdef int pwConnect(sqlite3 *db, void *pAux, int argc, const char *const*argv, return rc -cdef int pwDisconnect(sqlite3_vtab *pBase) with gil: +cdef int pwDisconnect(sqlite3_vtab *pBase) noexcept with gil: cdef: peewee_vtab *pVtab = pBase object table_func_cls = (pVtab.table_func_cls) @@ -419,7 +419,8 @@ cdef int pwDisconnect(sqlite3_vtab *pBase) with gil: # The xOpen method is used to initialize a cursor. In this method we # instantiate the TableFunction class and zero out a new cursor for iteration. -cdef int pwOpen(sqlite3_vtab *pBase, sqlite3_vtab_cursor **ppCursor) with gil: +cdef int pwOpen(sqlite3_vtab *pBase, sqlite3_vtab_cursor **ppCursor) \ + noexcept with gil: cdef: peewee_vtab *pVtab = pBase peewee_cursor *pCur = 0 @@ -443,7 +444,7 @@ cdef int pwOpen(sqlite3_vtab *pBase, sqlite3_vtab_cursor **ppCursor) with gil: return SQLITE_OK -cdef int pwClose(sqlite3_vtab_cursor *pBase) with gil: +cdef int pwClose(sqlite3_vtab_cursor *pBase) noexcept with gil: cdef: peewee_cursor *pCur = pBase object table_func = pCur.table_func @@ -454,7 +455,7 @@ cdef int pwClose(sqlite3_vtab_cursor *pBase) with gil: # Iterate once, advancing the cursor's index and assigning the row data to the # `row_data` field on the peewee_cursor struct. -cdef int pwNext(sqlite3_vtab_cursor *pBase) with gil: +cdef int pwNext(sqlite3_vtab_cursor *pBase) noexcept with gil: cdef: peewee_cursor *pCur = pBase object table_func = pCur.table_func @@ -483,7 +484,7 @@ cdef int pwNext(sqlite3_vtab_cursor *pBase) with gil: # Return the requested column from the current row. cdef int pwColumn(sqlite3_vtab_cursor *pBase, sqlite3_context *ctx, - int iCol) with gil: + int iCol) noexcept with gil: cdef: bytes bval peewee_cursor *pCur = pBase @@ -502,7 +503,7 @@ cdef int pwColumn(sqlite3_vtab_cursor *pBase, sqlite3_context *ctx, return python_to_sqlite(ctx, row_data[iCol]) -cdef int pwRowid(sqlite3_vtab_cursor *pBase, sqlite3_int64 *pRowid): +cdef int pwRowid(sqlite3_vtab_cursor *pBase, sqlite3_int64 *pRowid) noexcept: cdef: peewee_cursor *pCur = pBase pRowid[0] = pCur.idx @@ -510,7 +511,7 @@ cdef int pwRowid(sqlite3_vtab_cursor *pBase, sqlite3_int64 *pRowid): # Return a boolean indicating whether the cursor has been consumed. -cdef int pwEof(sqlite3_vtab_cursor *pBase): +cdef int pwEof(sqlite3_vtab_cursor *pBase) noexcept: cdef: peewee_cursor *pCur = pBase return 1 if pCur.stopped else 0 @@ -520,7 +521,8 @@ cdef int pwEof(sqlite3_vtab_cursor *pBase): # get access to the parameters that the function was called with, and call the # TableFunction's `initialize()` function. cdef int pwFilter(sqlite3_vtab_cursor *pBase, int idxNum, - const char *idxStr, int argc, sqlite3_value **argv) with gil: + const char *idxStr, int argc, sqlite3_value **argv) \ + noexcept with gil: cdef: peewee_cursor *pCur = pBase object table_func = pCur.table_func @@ -572,7 +574,7 @@ cdef int pwFilter(sqlite3_vtab_cursor *pBase, int idxNum, # SQLite will (in some cases, repeatedly) call the xBestIndex method to try and # find the best query plan. cdef int pwBestIndex(sqlite3_vtab *pBase, sqlite3_index_info *pIdxInfo) \ - with gil: + noexcept with gil: cdef: int i int col_idx