+#
+# Conditional build:
+%bcond_without doc # API documentation
+%bcond_without tests # unit tests
+
+%define module template
+Summary: Async http client/server framework
+Summary(pl.UTF-8): Szkielet asynchronicznego klienta/serwera http
+Name: python3-aiohttp
+Version: 3.7.3
+Release: 1
+License: Apache v2.0
+Group: Libraries/Python
+#Source0Download: https://pypi.org/simple/aiohttp/
+Source0: https://files.pythonhosted.org/packages/source/a/aiohttp/aiohttp-%{version}.tar.gz
+# Source0-md5: a66039c12f33dd093a2c260f5c459632
+# adjusted from https://github.com/aio-libs/aiohttp/commit/9afc44b052643213da15c9583ecbd643ca999601.patch
+Patch0: %{name}-brotli.patch
+URL: https://pypi.org/project/aiohttp/
+BuildRequires: python3-devel >= 1:3.6
+BuildRequires: python3-setuptools
+%if %{with tests}
+BuildRequires: python3-async_timeout >= 3.0
+BuildRequires: python3-attrs >= 17.3.0
+BuildRequires: python3-brotli
+BuildRequires: python3-chardet >= 2.0
+BuildRequires: python3-gunicorn
+%if "%{py3_ver}" < "3.7"
+BuildRequires: python3-idna-ssl
+%endif
+BuildRequires: python3-multidict >= 4.5
+BuildRequires: python3-pytest >= 3.8.2
+BuildRequires: python3-pytest-cov
+BuildRequires: python3-pytest-mock
+BuildRequires: python3-re_assert
+BuildRequires: python3-typing_extensions >= 3.6.5
+BuildRequires: python3-yarl >= 1.0
+%endif
+BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.714
+# if using noarchpackage, replace with:
+#BuildRequires: rpmbuild(macros) >= 1.752
+BuildRequires: sed >= 4.0
+%if %{with doc}
+BuildRequires: python3-aiohttp_theme
+BuildRequires: python3-sphinxcontrib-asyncio
+BuildRequires: python3-sphinxcontrib-blockdiag
+BuildRequires: sphinx-pdg-3
+%endif
+# replace with other requires if defined in setup.py
+Requires: python3-modules >= 1:3.6
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+Async http client/server framework.
+
+%description -l pl.UTF-8
+Szkielet asynchronicznego klienta/serwera http.
+
+%package apidocs
+Summary: aiohttp API documentation
+Summary(pl.UTF-8): Dokumentacja API aiohttp
+Group: Documentation
+%{?noarchpackage}
+
+%description apidocs
+API documentation for aiohttp.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API aiohttp.
+
+%prep
+%setup -q -n aiohttp-%{version}
+%patch0 -p1
+
+%{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' examples/*.py examples/legacy/*.py
+
+# adjust for python 3.7+
+%{__sed} -i -e '/^from async_generator/d; /^ *@async_generator/d; s/await yield_/yield/' tests/*.py
+
+# until we have pytest >= 6:
+%{__sed} -i -e '/assert_outcomes/ s/errors=/error=/' tests/test_pytest_plugin.py
+
+%build
+%py3_build
+
+%if %{with tests}
+# test_data_stream_exc_chain uses network, fails
+# test_async_iterable_payload_default_content_type, test_async_iterable_payload_explicit_content_type fail with TypeError (need update?)
+PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 \
+PYTEST_PLUGINS="pytest_cov.plugin,pytest_mock" \
+%{__python3} -m pytest tests -k 'not (test_data_stream_exc_chain or test_async_iterable_payload_default_content_type or test_async_iterable_payload_explicit_content_type)'
+%endif
+
+%if %{with doc}
+%{__make} -C docs html \
+ SPHINXBUILD=sphinx-build-3
+%endif
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%py3_install
+
+%{__rm} -r $RPM_BUILD_ROOT%{py3_sitedir}/aiohttp/.hash
+%{__rm} $RPM_BUILD_ROOT%{py3_sitedir}/aiohttp/*.{c,h,pxd,pxi,pyx}
+
+install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+cp -pr examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(644,root,root,755)
+%doc CHANGES.rst CONTRIBUTORS.txt README.rst
+%dir %{py3_sitedir}/aiohttp
+%attr(755,root,root) %{py3_sitedir}/aiohttp/*.so
+%{py3_sitedir}/aiohttp/*.py
+%{py3_sitedir}/aiohttp/*.pyi
+%{py3_sitedir}/aiohttp/py.typed
+%{py3_sitedir}/aiohttp/__pycache__
+%{py3_sitedir}/aiohttp-%{version}-py*.egg-info
+%{_examplesdir}/%{name}-%{version}
+
+%if %{with doc}
+%files apidocs
+%defattr(644,root,root,755)
+%doc docs/_build/html/*
+%endif