From 0826e9b99d16f20f1e49de4240c355d28cc5e4dd Mon Sep 17 00:00:00 2001 From: "Andreas Billmeier (@Home/mbp)" Date: Sat, 7 Oct 2023 20:17:04 +0200 Subject: [PATCH] dev-python/sqlalchemy: re-add 2.0.15 (from main) --- dev-python/sqlalchemy/Manifest | 2 + .../sqlalchemy/sqlalchemy-2.0.15.ebuild | 118 ++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100644 dev-python/sqlalchemy/sqlalchemy-2.0.15.ebuild diff --git a/dev-python/sqlalchemy/Manifest b/dev-python/sqlalchemy/Manifest index 620833fa7..f45a2eb4d 100644 --- a/dev-python/sqlalchemy/Manifest +++ b/dev-python/sqlalchemy/Manifest @@ -1,5 +1,7 @@ +DIST SQLAlchemy-2.0.15.tar.gz 9296612 BLAKE2B 45abdb9010b854e52762d9c84a471e92ece2b212620a74d161b19ef7c6bce3d9ad39b3075c4f32749774884e3ffe255f82028dd6a6375e269d2827cbf18c35e7 SHA512 a1b9301f4a81428ac36b9280840a27433fcfb97dec2a04888e6e53cc33104c82972147e2b840a929e05af0edb47ee496a7ed5171201332aad374ce64baef414d DIST SQLAlchemy-2.0.6.tar.gz 9294603 BLAKE2B ea8c7f23199c62898764656e82673f6b9c5ac8108feba49c2b74a4c3b278b2ac7ed5f9e5f2ad1b59c70b451440c9376dde19bd283c4c585029957386d56589a9 SHA512 2742f2dd7424118f34a70d3b17157d16976f422459c698ab042c08a5099c275cc8bebdb1f811fd783bd1b024e9f27925e1a72cac818dd16c807e1553a766f25c DIST SQLAlchemy-2.0.7.tar.gz 9298301 BLAKE2B abedb2805cad489e68fdec383eaf1bc65ef92777230317911a9351fce7c9159f746629197f7443a37495c23cd8d3cdd1015d8417f00227f28b8af1468a8327ef SHA512 94f5c4262741986456a9de435a81d9df8d5eed16417cc8c07321cb28030c99ea347c33a2054f2961e3b794bd5f75da19b0879675e2c1106fc5030382895caf75 +EBUILD sqlalchemy-2.0.15.ebuild 4436 BLAKE2B 77796ed0443719c1b79b497dbc8551e8f8dde1e23f4fbe20e4fbc01d14e01fad08ab9cb302b00b4e70eae1782b6d3adbed7fd43ad22c64c82943ab58824a7c60 SHA512 f770a447e78b4d4167fc8cd5c0ebbde1cffe46a0dd0444f5c0c0003c09e59c012b85ca357ba40c027618067c3e6fd3a9c91a0318324891075e20f97951e5e4e1 EBUILD sqlalchemy-2.0.6.ebuild 4115 BLAKE2B 732396e66a45172770ad3e08f768004fec31e44c967b0987a1d42613678ea57d188e7ef742f0dfb71ec15771363dac6fffd71f485491689a9a436f7f0e2b9759 SHA512 fc6c7ccc60ca1bd0b97633c6a227214ccbf0f89bf1cbecee42f4e25e606308a4824039a1aabd10031e46f75ed08ebaacad1cb68ba2bc234c8b8af360db85d7b4 EBUILD sqlalchemy-2.0.7.ebuild 3942 BLAKE2B 3f99a9f80575d237c7eb94d8db8b0fce1efdcab90d653c845889a89984d4f041ea955f8f99cbcfa57e882316cb50c1070199b93ff5b0d11b73f651d891be2832 SHA512 a3e40ff9719a5a2dd3b9dccd36f8c273aa7525b5d9e7eeef27d3d3ca2de4bd653d1bf6fe457288589112119ca862c95fafd9b5daa90aa8c5231ff541201abf0c MISC metadata.xml 444 BLAKE2B 5fbfcf8f16e52ab5bb691b0b33a8491d94e42a80409114cd9b306af7d4b0eb8b6660fabc663adee53080c635217961301b78df536995b91afe9288d255f73d62 SHA512 b432b65ed3033d34ac0784d007909eb838b309b6a4785eebb1a3f808e43dfc41c786cd55e4dd048776c65127aac170bdd9fb9e5a8ae63accb5f65e300bca9676 diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.15.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.0.15.ebuild new file mode 100644 index 000000000..120b7df2a --- /dev/null +++ b/dev-python/sqlalchemy/sqlalchemy-2.0.15.ebuild @@ -0,0 +1,118 @@ +# 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=( pypy3 python3_{10..12} ) +PYTHON_REQ_USE="sqlite?" + +inherit distutils-r1 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="~alpha amd64 arm arm64 hppa ~ia64 ~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.2.0[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/cython[${PYTHON_USEDEP}] + test? ( + $(python_gen_impl_dep sqlite) + ) +" + +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 + # hardcode call counts specific to Python versions + test/aaa_profiling + ) + local EPYTEST_DESELECT=( + # warning tests are unreliable + test/base/test_warnings.py + # TODO + test/orm/test_versioning.py::ServerVersioningTest_sqlite+pysqlite_3_40_1::test_sql_expr_w_mods_bump + test/sql/test_resultset.py::CursorResultTest_sqlite+pysqlite_3_41_0::test_pickle_rows_other_process + ) + local sqlite_version=$(sqlite3 --version | cut -d' ' -f1) + [[ ${EPYTHON} == 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_pool.py::QueuePoolTest::test_recycle_pool_no_race + 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 + ) + [[ ${EPYTHON} == python3.12 ]] && EPYTEST_DESELECT+=( + # see https://github.com/sqlalchemy/sqlalchemy/issues/9819 + test/base/test_result.py::ResultTupleTest::test_slices_arent_in_mappings + ) + 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 + local -x PYTEST_PLUGINS= + # upstream automagically depends on xdist when it is importable + # note that we can't use xdist because it causes nodes to randomly + # crash on init + if has_version "dev-python/pytest-xdist[${PYTHON_USEDEP}]"; then + PYTEST_PLUGINS+=xdist.plugin + fi + epytest +} + +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 +}