summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-python/sqlalchemy/Manifest1
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-2.0.45.ebuild116
2 files changed, 117 insertions, 0 deletions
diff --git a/dev-python/sqlalchemy/Manifest b/dev-python/sqlalchemy/Manifest
index 8326dde4c198..ff7655539931 100644
--- a/dev-python/sqlalchemy/Manifest
+++ b/dev-python/sqlalchemy/Manifest
@@ -1,3 +1,4 @@
DIST sqlalchemy-1.4.54.tar.gz 8470350 BLAKE2B 0d97beb4edde38455c03dfc1238655d1cb63aa6e042b941913ec68dca3654de07087ab967f208fda495f048a5068ced70d642c4b8b80ab32e5346fcefa3bf9bc SHA512 e7ea4920d81914d362134a3c6fd4a2dd4fdb75f6ce17358528d568e2b2ac0ee711a71f6beb894e61d6d1e4e5833034ebde651d73a13f873c682f780e1831b427
DIST sqlalchemy-2.0.43.tar.gz 9762949 BLAKE2B 014c547d71a82d91093c3af771cbdf22c33dac3183ae80ca927a627f22fe490ab05a87901c27bc9bda6968b71e8987960dbc071978d3a900c680e3de04cc735c SHA512 8a3c8b9116649ae6c867744b75b9019c5daeaebdcc1b251e8eb526b6ec84168282513b27ca557db3436615b09579864e01173638ccf5bd9a5ecc4537ecf0c695
DIST sqlalchemy-2.0.44.tar.gz 9819830 BLAKE2B 0b6854671c23ec089fdac8c229fecc053841cd73c5827e8716222cdde13717a241482082a4f52b6dd6aeb9953244414ad7fac9c1b339beee061f9b964fa4887f SHA512 9f34641b3c52e84c3deaf62daa9848ea527840d6aa6dc97e27d13938b0c544ee4389e96e7f7a8820db81c2f88fcece2e7214bb28b5b1f9acac95f7e55addc4ba
+DIST sqlalchemy-2.0.45.tar.gz 9869912 BLAKE2B 8d58d90067736d9c4d5cc6167a24cc3193620c3735873713406bcc500b7918aeb59ccc7101c3ed669f81ad6d9af633c40fdc56a0924cfba132d897f561dd9cdb SHA512 f7e603a893273c6bbd4f266bf186a1a043e329a695333a17147a68dadec54bf6b2fad7b11e3534bf6ce4c0e7bed3ad5ebe7a3bae01102258458a6ec33944c4a2
diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.45.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.0.45.ebuild
new file mode 100644
index 000000000000..9e9245b2ec77
--- /dev/null
+++ b/dev-python/sqlalchemy/sqlalchemy-2.0.45.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=SQLAlchemy
+PYTHON_COMPAT=( pypy3_11 python3_{11..14} )
+PYTHON_REQ_USE="sqlite?"
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="Python SQL toolkit and Object Relational Mapper"
+HOMEPAGE="
+ https://www.sqlalchemy.org/
+ https://pypi.org/project/SQLAlchemy/
+ https://github.com/sqlalchemy/sqlalchemy/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+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)
+ )
+"
+
+EPYTEST_PLUGINS=()
+EPYTEST_RERUNS=5
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ 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
+ # TODO: flaky? xdist?
+ test/base/test_concurrency_py3k.py::TestAsyncioCompat::test_await_fallback_no_greenlet
+ )
+ local sqlite_version=$(sqlite3 --version | cut -d' ' -f1)
+ case ${EPYTHON} in
+ pypy3.11)
+ EPYTEST_DESELECT+=(
+ # TODO: looks like cursor cleanup failure
+ "test/dialect/test_suite.py::ReturningGuardsTest_sqlite+pysqlite_${sqlite_version//./_}"
+ # mismatched exception messages
+ "test/dialect/sqlite/test_types.py::TestTypes_sqlite+pysqlite_${sqlite_version//./_}::test_cant_parse_datetime_message"
+ test/ext/test_associationproxy.py::DictOfTupleUpdateTest::test_update_multi_elem_varg
+ test/ext/test_associationproxy.py::DictOfTupleUpdateTest::test_update_one_elem_varg
+ test/ext/test_associationproxy.py::ProxyHybridTest::test_msg_fails_on_cls_access
+ test/engine/test_processors.py::PyDateProcessorTest::test_time_invalid_string
+ # TODO
+ test/orm/test_utils.py::ContextualWarningsTest::test_autoflush_implicit
+ test/orm/test_utils.py::ContextualWarningsTest::test_configure_mappers_explicit
+ "test/sql/test_resultset.py::CursorResultTest_sqlite+pysqlite_${sqlite_version//./_}::test_new_row_no_dict_behaviors"
+ "test/sql/test_compare.py::HasCacheKeySubclass::test_init_args_in_traversal[_MemoizedSelectEntities]"
+ test/sql/test_lambdas.py::LambdaElementTest::test_bindparam_not_cached
+ test/sql/test_compare.py::CompareAndCopyTest::test_all_present
+ )
+ ;;
+ 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
+ epytest --reruns-delay=2 -m "not gc_intensive and not timing_intensive and not mypy"
+}
+
+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
+}