forked from pool/python-falcon
- Update to 3.1.3 * This is a minor bugfix release that only pins the pytest-asyncio test dependency in order to prevent an incompatible version from interfering with the build workflow. * This release is otherwise identical to Falcon 3.1.2. - Update to 3.1.2 ## Summary * This is a minor point release fixing a couple of high impact bugs, as well as publishing binary wheels for the recently released CPython 3.12. ## Changes to Supported Platforms * Falcon is now supported (including binary wheels) on CPython 3.12. A couple of remaining stdlib deprecations from 3.11 and 3.12 will be addressed in Falcon 4.0. * As with the previous release, Python 3.5 & 3.6 remain deprecated and will no longer be supported in Falcon 4.0. * EOL Python 3.7 will no longer be actively supported in 4.0, but the framework should still continue to install from source. We may remove the support for 3.7 altogether later in the 4.x series if we are faced with incompatible ecosystem changes in typing, Cython, etc. ## Fixed * Some essential files were unintentionally omitted from the source distribution archive, rendering it unsuitable to run the test suite off. This has been fixed, and the sdist tarball should now be usable as a base for packaging Falcon in OS distributions. (#2051) * WebSocket implementation has been fixed to properly handle HTTPError and HTTPStatus exceptions raised by custom error handlers. The WebSocket connection is now correctly closed with OBS-URL: https://build.opensuse.org/request/show/1144006 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-falcon?expand=0&rev=50
132 lines
4.3 KiB
RPMSpec
132 lines
4.3 KiB
RPMSpec
#
|
|
# spec file for package python-falcon
|
|
#
|
|
# Copyright (c) 2024 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/
|
|
#
|
|
|
|
|
|
%{?sle15_python_module_pythons}
|
|
Name: python-falcon
|
|
Version: 3.1.3
|
|
Release: 0
|
|
Summary: A web framework for building APIs and app backends
|
|
License: Apache-2.0
|
|
Group: Development/Languages/Python
|
|
URL: http://falconframework.org
|
|
Source: https://files.pythonhosted.org/packages/source/f/falcon/falcon-%{version}.tar.gz
|
|
# github pygments style is not available
|
|
Patch0: python-falcon-sphinx-pygments-style.patch
|
|
BuildRequires: %{python_module PyYAML}
|
|
BuildRequires: %{python_module Sphinx}
|
|
BuildRequires: %{python_module ddt}
|
|
BuildRequires: %{python_module httpx}
|
|
BuildRequires: %{python_module setuptools}
|
|
BuildRequires: %{python_module sphinx-tabs}
|
|
BuildRequires: %{python_module websockets}
|
|
# TODO: Cython support
|
|
#BuildRequires: %%{python_module Cython}
|
|
# SECTION test requirements
|
|
BuildRequires: %{python_module aiofiles}
|
|
BuildRequires: %{python_module cbor2}
|
|
BuildRequires: %{python_module msgpack-python}
|
|
BuildRequires: %{python_module pytest-asyncio}
|
|
BuildRequires: %{python_module pytest}
|
|
BuildRequires: %{python_module requests}
|
|
BuildRequires: %{python_module testtools}
|
|
%if 0%{?suse_version} >= 1550
|
|
BuildRequires: %{python_module httpx if (%python-base without python36-base)}
|
|
BuildRequires: %{python_module uvicorn if (%python-base without python36-base)}
|
|
BuildRequires: %{python_module websockets if (%python-base without python36-base)}
|
|
%endif
|
|
# /SECTION
|
|
BuildRequires: fdupes
|
|
BuildRequires: python-rpm-macros
|
|
#Requires: python-Cython
|
|
Requires(post): update-alternatives
|
|
Requires(postun):update-alternatives
|
|
Suggests: %{name}-doc
|
|
BuildArch: noarch
|
|
%python_subpackages
|
|
|
|
%package -n %{name}-doc
|
|
Summary: Documentation files for %{name}
|
|
Group: Documentation/HTML
|
|
Provides: %{python_module falcon-doc = %{version}}
|
|
|
|
%description
|
|
Falcon is a Python framework for building cloud
|
|
APIs. It encourages the REST architectural style, and tries to do
|
|
as little as possible while remaining effective.
|
|
|
|
%description -n %{name}-doc
|
|
HTML documentation including API documentation and changelog for %{name}.
|
|
|
|
%prep
|
|
%setup -q -n falcon-%{version}
|
|
%patch0 -p1
|
|
# remove unwanted shebang
|
|
sed -i '1s/^#!.*//' falcon/bench/bench.py falcon/cmd/inspect_app.py falcon/bench/dj/manage.py
|
|
chmod a-x falcon/bench/dj/manage.py
|
|
# we don't want to require rapidjson just for testing
|
|
rm tests/test_media_handlers.py
|
|
# Hidden files are evil
|
|
rm examples/asgilook/.coveragerc
|
|
|
|
%build
|
|
export CFLAGS="%{optflags} -fno-strict-aliasing"
|
|
%python_build
|
|
export PYTHONPATH="$(pwd)"
|
|
pushd docs
|
|
make html
|
|
rm _build/html/.buildinfo
|
|
popd
|
|
|
|
%install
|
|
%python_install
|
|
%python_clone -a %{buildroot}%{_bindir}/falcon-bench
|
|
%python_clone -a %{buildroot}%{_bindir}/falcon-inspect-app
|
|
%python_clone -a %{buildroot}%{_bindir}/falcon-print-routes
|
|
%{python_expand rm -rf %{buildroot}%{$python_sitelib}/examples
|
|
%fdupes %{buildroot}%{$python_sitelib}
|
|
}
|
|
|
|
%check
|
|
export LANG=en_US.UTF8
|
|
# there are no websockets and httpx for python 3.6
|
|
python36_donttest=("--ignore" "tests/asgi")
|
|
if [ %{python3_version_nodots} -eq 36 ]; then
|
|
python3_donttest=("--ignore" "tests/asgi")
|
|
fi
|
|
%pytest "${$python_donttest[@]}" tests
|
|
|
|
%post
|
|
%{python_install_alternative falcon-bench falcon-inspect-app falcon-print-routes}
|
|
|
|
%postun
|
|
%python_uninstall_alternative falcon-bench
|
|
|
|
%files %{python_files}
|
|
%doc README.rst CHANGES.rst examples/
|
|
%license LICENSE
|
|
%python_alternative %{_bindir}/falcon-bench
|
|
%python_alternative %{_bindir}/falcon-inspect-app
|
|
%python_alternative %{_bindir}/falcon-print-routes
|
|
%{python_sitelib}/falcon
|
|
%{python_sitelib}/falcon-%{version}*-info
|
|
|
|
%files -n %{name}-doc
|
|
%doc docs/_build/html
|
|
|
|
%changelog
|