%global upstream_name marshmallow %global commit a8b33850c74975250fa81308ce3aa4868128d3ba %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global _docdir %{_datadir}/doc %if 0%{?fedora} %bcond_without python3 %else %bcond_with python3 %endif Name: python-%{upstream_name} Version: 2.0.0 Release: 0.6.git%{shortcommit}%{?dist} Summary: Python library for converting complex datatypes to and from primitive types License: MIT URL: http://marshmallow.readthedocs.org/ # Using Github instead of PyPI because the PyPI tarballs don't include tests, # docs, or examples, and upstream does not want to change that. # https://github.com/marshmallow-code/marshmallow/issues/201 Source0: https://github.com/marshmallow-code/marshmallow/archive/%{commit}/%{upstream_name}-%{commit}.tar.gz # remove dependency on bundled ordered_set Patch0: ordered_set.patch BuildArch: noarch BuildRequires: python2-devel BuildRequires: python-setuptools Requires: python-dateutil Requires: python-ordered-set # for tests BuildRequires: pytest BuildRequires: pytz BuildRequires: python-dateutil BuildRequires: python-ordered-set %if %{with python3} BuildRequires: python3-devel BuildRequires: python3-setuptools # for tests BuildRequires: python3-pytest BuildRequires: python3-pytz BuildRequires: python3-dateutil BuildRequires: python3-ordered-set %endif %description Marshmallow is a framework-agnostic library for converting complex datatypes, such as objects, to and from primitive Python datatypes. Marshmallow schemas can be used to: * Validate input data. * Deserialize input data to app-level objects. * Serialize app-level objects to primitive Python types. The serialized objects can then be rendered to standard formats such as JSON for use in an HTTP API. %package doc Summary: Documentation for %{name} BuildArch: noarch %description doc Documentation for %{name}. %if %{with python3} %package -n python3-%{upstream_name} Summary: Python 3 library for converting complex datatypes to and from primitive types Requires: python3-dateutil Requires: python3-ordered-set %description -n python3-%{upstream_name} Marshmallow is a framework-agnostic library for converting complex datatypes, such as objects, to and from primitive Python datatypes. Marshmallow schemas can be used to: * Validate input data. * Deserialize input data to app-level objects. * Serialize app-level objects to primitive Python types. The serialized objects can then be rendered to standard formats such as JSON for use in an HTTP API. %package -n python3-%{upstream_name}-doc Summary: Documentation for python3-%{upstream_name} BuildArch: noarch %description -n python3-%{upstream_name}-doc Documentation for %{name}. %endif # with python3 %prep %setup -q -n %{upstream_name}-%{commit} %patch0 # remove bundled library # instead of orderedsett we patch code to usu python-ordered-set # ordereddict.py is used only for compatibility with python2.6, # which we do not need rm -f ./marshmallow/ordereddict.py ./marshmallow/orderedset.py %build %py2_build %if %{with python3} %py3_build %endif %install %py2_install mkdir -p %{buildroot}%{_docdir}/python-%{upstream_name} cp -a docs/* examples %{buildroot}%{_docdir}/python-%{upstream_name}/ %if %{with python3} %py3_install mkdir -p %{buildroot}%{_docdir}/python3-%{upstream_name} cp -a docs/* examples %{buildroot}%{_docdir}/python3-%{upstream_name}/ %endif %check %{__python2} setup.py test %if %{with python3} %{__python3} setup.py test %endif %files %doc CHANGELOG.rst AUTHORS.rst README.rst %exclude %{_docdir}/python-%{upstream_name}/* %license LICENSE %{python_sitelib}/%{upstream_name} %{python_sitelib}/%{upstream_name}*.egg-info %files doc %license LICENSE %doc %{_docdir}/python-%{upstream_name} %exclude %{_docdir}/python-%{upstream_name}/CHANGELOG.rst %exclude %{_docdir}/python-%{upstream_name}/AUTHORS.rst %exclude %{_docdir}/python-%{upstream_name}/README.rst %exclude %{_docdir}/python-%{upstream_name}/*.pyc %exclude %{_docdir}/python-%{upstream_name}/*.pyo %exclude %{_docdir}/python-%{upstream_name}/examples/*.pyc %exclude %{_docdir}/python-%{upstream_name}/examples/*.pyo %if %{with python3} %files -n python3-%{upstream_name} %doc CHANGELOG.rst AUTHORS.rst README.rst %exclude %{_docdir}/python3-%{upstream_name}/* %license LICENSE %{python3_sitelib}/%{upstream_name} %{python3_sitelib}/%{upstream_name}*.egg-info %files -n python3-%{upstream_name}-doc %license LICENSE %doc %{_docdir}/python3-%{upstream_name} %exclude %{_docdir}/python3-%{upstream_name}/CHANGELOG.rst %exclude %{_docdir}/python3-%{upstream_name}/AUTHORS.rst %exclude %{_docdir}/python3-%{upstream_name}/README.rst %exclude %{_docdir}/python3-%{upstream_name}/*.pyc %exclude %{_docdir}/python3-%{upstream_name}/*.pyo %exclude %{_docdir}/python3-%{upstream_name}/examples/*.pyc %exclude %{_docdir}/python3-%{upstream_name}/examples/*.pyo %endif %changelog * Fri Sep 11 2015 Miroslav Suchý 2.0.0-0.6.gita8b3385 - 1219288 - fix ownership of docdir and use correct release number * Fri Sep 11 2015 Miroslav Suchý 2.0.0-0.5.a8b3385 - add short git hash to release number * Fri Sep 11 2015 Miroslav Suchý 2.0.0b5-4 - create -doc subpackages - 1219288 - reorganize spec file * Mon Sep 07 2015 Miroslav Suchý 2.0.0b5-3 - explicitely list docdir * Mon Sep 07 2015 Miroslav Suchý 2.0.0b5-2 - unbundle ordereddict and ordered set - add documentation * Mon Aug 24 2015 Valentin Gologuzov - 2.0.0b5-1 - Rebuild with the newest upstream version * Thu May 07 2015 Dan Callaghan - 1.2.6-1 - initial version