* [orm] [bug] Fixed issue involving lazy="raise" strategy where an ORM delete of an object would raise for a simple “use-get” style many-to-one relationship that had lazy=”raise” configured. This is inconsistent vs. the change introduced in 1.3 as part of #4353, where it was established that a history operation that does not expect emit SQL should bypass the lazy="raise" check, and instead effectively treat it as lazy="raise_on_sql" for this case. The fix adjusts the lazy loader strategy to not raise for the case where the lazy load was instructed that it should not emit SQL if the object were not present. * [orm] [bug] Fixed regression introduced in 1.3.0 related to the association proxy refactor in #4351 that prevented composite() attributes from working in terms of an association proxy that references them. * [orm] [bug] Setting persistence-related flags on relationship() while also setting viewonly=True will now emit a regular warning, as these flags do not make sense for a viewonly=True relationship. In particular, the “cascade” settings have their own warning that is generated based on the individual values, such as “delete, delete-orphan”, that should not apply to a viewonly relationship. Note however that in the case of “cascade”, these settings are still erroneously taking effect even though the relationship is set up as “viewonly”. In 1.4, all persistence-related cascade settings will be disallowed on a viewonly=True relationship in order to resolve this issue. * [orm] [bug] [py3k] Fixed issue where when assigning a collection to itself as a slice, the mutation operation would fail as it would first erase the assigned collection inadvertently. As an assignment that does not change the contents should not generate events, the operation is now a no-op. Note that the fix only applies to Python 3; in Python 2, the __setitem__ hook isn’t called in this case; __setslice__ is used instead which recreates the list item-by-item in all cases. * [orm] [bug] Fixed issue where by if the “begin” of a transaction failed at the Core engine/connection level, such as due to network error or database is OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-SQLAlchemy?expand=0&rev=158
93 lines
3.1 KiB
RPMSpec
93 lines
3.1 KiB
RPMSpec
#
|
|
# spec file for package python-SQLAlchemy
|
|
#
|
|
# Copyright (c) 2019 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
|
%define oldpython python
|
|
Name: python-SQLAlchemy
|
|
Version: 1.3.12
|
|
Release: 0
|
|
Summary: Database Abstraction Library
|
|
License: MIT
|
|
URL: https://www.sqlalchemy.org
|
|
Source: https://files.pythonhosted.org/packages/source/S/SQLAlchemy/SQLAlchemy-%{version}.tar.gz
|
|
# devel is needed for optional C extensions cprocessors.so, cresultproxy.so and cutils.so
|
|
BuildRequires: %{python_module devel}
|
|
BuildRequires: %{python_module setuptools}
|
|
BuildRequires: %{pythons}
|
|
BuildRequires: fdupes
|
|
BuildRequires: python-rpm-macros
|
|
Requires: python
|
|
Provides: python-sqlalchemy = %{version}
|
|
Obsoletes: python-sqlalchemy < %{version}
|
|
# SECTION test requirements
|
|
BuildRequires: %{python_module mock}
|
|
BuildRequires: %{python_module pytest-xdist}
|
|
BuildRequires: %{python_module pytest}
|
|
# /SECTION
|
|
%ifpython2
|
|
Obsoletes: %{oldpython}-sqlalchemy < %{version}
|
|
Provides: %{oldpython}-sqlalchemy = %{version}
|
|
%endif
|
|
%python_subpackages
|
|
|
|
%description
|
|
SQLAlchemy is an Object Relational Mappper (ORM) that provides a flexible,
|
|
high-level interface to SQL databases. Database and domain concepts are
|
|
decoupled, allowing both sides maximum flexibility and power. SQLAlchemy
|
|
provides a powerful mapping layer that can work as automatically or as manually
|
|
as you choose, determining relationships based on foreign keys or letting you
|
|
define the join conditions explicitly, to bridge the gap between database and
|
|
domain.
|
|
|
|
%package -n %{name}-doc
|
|
Summary: Documentation for python-SQLAlchemy
|
|
Provides: %{python_module SQLAlchemy-doc = %{version}}
|
|
BuildArch: noarch
|
|
|
|
%description -n %{name}-doc
|
|
This package contains HTML documentation, including tutorials and API
|
|
reference for python-SQLAlchemy.
|
|
|
|
%prep
|
|
%setup -q -n SQLAlchemy-%{version}
|
|
rm -rf doc/build # Remove unnecessary scripts for building documentation
|
|
sed -i 's/\r$//' examples/dynamic_dict/dynamic_dict.py
|
|
|
|
%build
|
|
export CFLAGS="%{optflags} -fno-strict-aliasing"
|
|
%python_build
|
|
|
|
%install
|
|
%python_install
|
|
%python_expand %fdupes %{buildroot}%{$python_sitearch}
|
|
|
|
%check
|
|
%pytest -n auto
|
|
|
|
%files %{python_files}
|
|
%license LICENSE
|
|
%doc CHANGES README.rst README.dialects.rst README.unittests.rst
|
|
%{python_sitearch}/sqlalchemy/
|
|
%{python_sitearch}/SQLAlchemy-%{version}-py%{py_ver}.egg-info
|
|
|
|
%files -n %{name}-doc
|
|
%doc doc/
|
|
%doc examples/
|
|
|
|
%changelog
|