dev-python/sqlalchemy: new package, add 2.0.30-r1

Signed-off-by: Andreas Billmeier <b@edevau.net>
This commit is contained in:
Andreas Billmeier 2024-09-22 09:51:55 +02:00
parent 1cdb2bf12d
commit 3010626e4a
Signed by: onkelbeh
GPG Key ID: E6DB12C8C550F3C0
4 changed files with 145 additions and 2 deletions

View File

@ -606,11 +606,11 @@ A daily compile test is run at Github with Python 3.9 to catch general faults. E
## Licenses
This repository itself is released under GPL-3 (like most Gentoo repositories), all work on the depending components under the licenses they came from. Perhaps you came here because I filed an issue at your component about a bad or missing license. It is easy to [assign a license](https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-license-to-a-repository). During cleanups and license investigations I have been asked often which license to choose. I am not a lawyer, but I can offer the following table, counted over this repository, perhaps this helps your decision. If a package has more than one license listed, all of them are counted.
There are 1996 Ebuilds in total, 1985 of them have in total 2013 (42 different) licenses assigned.
There are 1997 Ebuilds in total, 1986 of them have in total 2014 (42 different) licenses assigned.
|License| Ebuilds using it|
|-------|-----|
|MIT|1155|
|MIT|1156|
|Apache-2.0|444|
|GPL-3|117|
|BSD|113|

View File

@ -0,0 +1,3 @@
DIST SQLAlchemy-2.0.30.tar.gz 9579500 BLAKE2B 3c1711ee72a355eb5e6a71d6581d951ffe3ddab459ac4bb4c36a8640ed5f6298a80847e9bb66dd700622fa9275bf77c4c18be5e324092a576d1b35983371730a SHA512 b39275a7312609fd0a78ac5bb4fb0f29f2948d7fc81007587c01f38849ff28bff273182a06c8ec830b7e1ba4cd30aea2cd7214bbf971a61125c9b56c6ddbbe52
EBUILD sqlalchemy-2.0.30-r1.ebuild 4144 BLAKE2B dd3ff9e92086119af1134278f006d0e830bc41b0aad31276f9c10a6a40ef4772cd70e80077f0c2a817763a1b5f9de4ea8708d53b43666d5ef5f5c31ca0af71dd SHA512 3de4f3e426b696e18a22f0843f575fc625f9e7d816e6c61259136a46c9692ca0730da3fc1f17a0b5af9ac9deedfdb29e382f5bbea92d82cf882bb13551c0e64b
MISC metadata.xml 520 BLAKE2B fee1a03271d09cb19edb38072bc85b543da8055c45babaa476f8ec1f9eb6fe049110eb024fc17f36671642f980625eb8d6540982942b69d068c55db1a6670db6 SHA512 967c17af33e56d86af1d83ce022b76ecdb209196d639537a998499b31b39df8c156b8a20ba2db3ecfbd73a01f0b327363d2ed82e9d148a9cf0d0822fe939569f

View File

@ -0,0 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>b@edevau.net</email>
<name>Andreas Billmeier</name>
</maintainer>
<upstream>
<remote-id type="pypi">SQLAlchemy</remote-id>
<remote-id type="github">sqlalchemy/sqlalchemy</remote-id>
<maintainer status="unknown">
<email>mike_mp@zzzcomputing.com</email>
<name>Mike Bayer</name>
</maintainer>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,124 @@
# Copyright 1999-2024 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_{11..13} )
PYTHON_REQ_USE="sqlite?"
inherit distutils-r1 multiprocessing optfeature pypi
MY_PN="SQLAlchemy"
DESCRIPTION="Python SQL toolkit and Object Relational Mapper"
HOMEPAGE="
https://www.sqlalchemy.org/
https://pypi.org/project/SQLAlchemy/
https://github.com/sqlalchemy/sqlalchemy/
"
SRC_URI="$(pypi_sdist_url --no-normalize "${MY_PN}")"
S="${WORKDIR}/${MY_PN}-${PV}"
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 arm arm64 x86"
IUSE="examples +sqlite test"
RDEPEND="
>=dev-python/typing-extensions-4.6.0[${PYTHON_USEDEP}]
"
BDEPEND="
dev-python/cython[${PYTHON_USEDEP}]
test? (
$(python_gen_impl_dep sqlite)
dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest
src_prepare() {
local PATCHES=(
# https://gerrit.sqlalchemy.org/c/sqlalchemy/sqlalchemy/+/5308
"${FILESDIR}/${P}-py313.patch"
)
sed -i -e '/greenlet/d' setup.cfg || die
distutils-r1_src_prepare
}
python_test() {
local EPYTEST_IGNORE=(
test/ext/mypy/test_mypy_plugin_py3k.py
test/typing/test_mypy.py
# hardcode call counts specific to Python versions
test/aaa_profiling
)
local EPYTEST_DESELECT=(
# warning tests are unreliable
test/base/test_warnings.py
)
local sqlite_version=$(sqlite3 --version | cut -d' ' -f1)
case ${EPYTHON} in
pypy3)
EPYTEST_DESELECT+=(
test/ext/test_associationproxy.py::ProxyHybridTest::test_msg_fails_on_cls_access
test/ext/test_associationproxy.py::DictOfTupleUpdateTest::test_update_multi_elem_varg
test/ext/test_associationproxy.py::DictOfTupleUpdateTest::test_update_one_elem_varg
test/engine/test_processors.py::PyDateProcessorTest::test_date_invalid_string
test/engine/test_processors.py::PyDateProcessorTest::test_datetime_invalid_string
test/engine/test_processors.py::PyDateProcessorTest::test_time_invalid_string
"test/dialect/test_sqlite.py::TestTypes_sqlite+pysqlite_${sqlite_version//./_}::test_cant_parse_datetime_message"
"test/dialect/test_suite.py::ReturningGuardsTest_sqlite+pysqlite_${sqlite_version//./_}"::test_{delete,insert,update}_single
test/base/test_utils.py::ImmutableDictTest::test_pep584
)
;;
python3.13)
EPYTEST_DESELECT+=(
# deprecated and broken with py3.13
test/ext/test_serializer.py
# TODO
test/orm/test_mapper.py::MapperTest::test_synonym_nonexistent_attr
)
;;
esac
if ! has_version "dev-python/greenlet[${PYTHON_USEDEP}]"; then
EPYTEST_DESELECT+=(
test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_execution
test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_run_sync
"test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[False-True]"
"test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[True-True]"
"test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[has_terminate-is_asyncio]"
"test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[not_has_terminate-is_asyncio]"
"test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True-_exclusions0]"
"test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True]"
)
fi
# upstream's test suite is horribly hacky; it relies on disabling
# the warnings plugin and turning warnings into errors; this also
# means that any DeprecationWarnings from third-party plugins cause
# everything to explode
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
epytest -p rerunfailures --reruns=10 --reruns-delay=2 \
-p xdist -n "$(makeopts_jobs)" --dist=worksteal
}
python_install_all() {
if use examples; then
docompress -x "/usr/share/doc/${PF}/examples"
dodoc -r examples
fi
distutils-r1_python_install_all
}
pkg_postinst() {
optfeature "asyncio support" dev-python/greenlet
optfeature "MySQL support" \
dev-python/mysqlclient \
dev-python/pymysql
optfeature "postgresql support" dev-python/psycopg:2
}