mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
dev-python/peewee: backport cython-3 fix
Closes: https://bugs.gentoo.org/911412 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
102
dev-python/peewee/files/peewee-3.16.2-cython3.patch
Normal file
102
dev-python/peewee/files/peewee-3.16.2-cython3.patch
Normal file
@@ -0,0 +1,102 @@
|
||||
https://github.com/coleifer/peewee/commit/83c6b78bd5df2c8c942f4fc32c4daedde01e8a63
|
||||
|
||||
From 83c6b78bd5df2c8c942f4fc32c4daedde01e8a63 Mon Sep 17 00:00:00 2001
|
||||
From: Charles Leifer <coleifer@gmail.com>
|
||||
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 = <object>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 = <peewee_vtab *>pBase
|
||||
object table_func_cls = <object>(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 = <peewee_vtab *>pBase
|
||||
peewee_cursor *pCur = <peewee_cursor *>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 = <peewee_cursor *>pBase
|
||||
object table_func = <object>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 = <peewee_cursor *>pBase
|
||||
object table_func = <object>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 = <peewee_cursor *>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 = <peewee_cursor *>pBase
|
||||
pRowid[0] = <sqlite3_int64>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 = <peewee_cursor *>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 = <peewee_cursor *>pBase
|
||||
object table_func = <object>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
|
||||
|
||||
60
dev-python/peewee/peewee-3.16.2-r1.ebuild
Normal file
60
dev-python/peewee/peewee-3.16.2-r1.ebuild
Normal file
@@ -0,0 +1,60 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_EXT=1
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
PYTHON_REQ_USE="sqlite"
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Small Python ORM"
|
||||
HOMEPAGE="
|
||||
https://github.com/coleifer/peewee/
|
||||
https://pypi.org/project/peewee/
|
||||
"
|
||||
SRC_URI="
|
||||
https://github.com/coleifer/${PN}/archive/${PV}.tar.gz
|
||||
-> ${P}.gh.tar.gz
|
||||
"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~riscv ~x86"
|
||||
IUSE="examples +native-extensions test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
DEPEND="
|
||||
native-extensions? ( dev-db/sqlite:3= )
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
"
|
||||
BDEPEND="
|
||||
dev-python/cython[${PYTHON_USEDEP}]
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${P}-cython3.patch
|
||||
)
|
||||
|
||||
distutils_enable_sphinx docs
|
||||
|
||||
src_compile() {
|
||||
if ! use native-extensions; then
|
||||
local -x NO_SQLITE=1
|
||||
fi
|
||||
|
||||
distutils-r1_src_compile
|
||||
}
|
||||
|
||||
python_test() {
|
||||
"${EPYTHON}" runtests.py -v 2 || die "tests failed under ${EPYTHON}"
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
use examples && DOCS=( examples/ )
|
||||
distutils-r1_python_install_all
|
||||
}
|
||||
Reference in New Issue
Block a user