%define oname jsonschema %define py38 1 Name: python-%{oname} Version: 2.6.0 Release: 1 Summary: An implementation of JSON Schema validation for Python URL: https://github.com/Julian/jsonschema Source0: %{url}/archive/v%{version}/%{oname}-%{version}.tar.gz License: MIT Group: Development/Python BuildArch: noarch BuildRequires: pkgconfig(python) BuildRequires: pythonegg(nose) BuildRequires: pythonegg(mock) BuildRequires: pythonegg(setuptools) BuildRequires: pkgconfig(python3) BuildRequires: python3egg(nose) BuildRequires: python3egg(mock) BuildRequires: python3egg(setuptools) %if %{py38} BuildRequires: pkgconfig(python-3.8) BuildRequires: python38-nose BuildRequires: python38-mock BuildRequires: python38-setuptools %endif #Requires: python3-%{oname} %description jsonschema is JSON Schema validator currently based on http://tools.ietf.org/html/draft-zyp-json-schema-03 #------------------------------------------------------------------ %package -n python3-%{oname} Group: Development/Python %description -n python3-%{oname} Python 3.5 introduced official support for enumerations. This is a backport of that feature to Python 3.3, 3.2, 3.1, 2.7, 2.5, 2.5, and 2.4. An enumeration is a set of symbolic names (members) bound to unique, constant values. Within an enumeration, the members can be compared by identity, and the enumeration itself can be iterated over. This module defines two enumeration classes that can be used to define unique sets of names and values: Enum and IntEnum. It also defines one decorator, unique, that ensures only unique member names are present in an enumeration. %files -n python3-%{oname} %doc CHANGELOG.rst COPYING README.rst %{_bindir}/jsonschema3 %{py3_puresitedir}/jsonschema/* %{py3_puresitedir}/jsonschema*.egg-info #------------------------------------------------------------------ %if %{py38} %package -n python38-%{oname} Group: Development/Python %description -n python38-%{oname} Python 3.8 introduced official support for enumerations. This is a backport of that feature to Python 3.3, 3.2, 3.1, 2.7, 2.5, 2.5, and 2.4. An enumeration is a set of symbolic names (members) bound to unique, constant values. Within an enumeration, the members can be compared by identity, and the enumeration itself can be iterated over. This module defines two enumeration classes that can be used to define unique sets of names and values: Enum and IntEnum. It also defines one decorator, unique, that ensures only unique member names are present in an enumeration. %files -n python38-%{oname} %doc CHANGELOG.rst COPYING README.rst %{_bindir}/jsonschema %{py38_puresitedir}/jsonschema/* %{py38_puresitedir}/jsonschema*.egg-info %endif #------------------------------------------------------------------ %prep %setup -qn %{oname}-%{version} #echo "'__version__ = '2.6.0'" > jsonschema/_version.py sed -i -e '/setup_requires=/d' -e '/vcversioner=/d' setup.py cp -a . %{py3dir} cp -a . %{py38dir} %build %py_build pushd %{py3dir} %py3_build popd %if %{py38} pushd %{py38dir} %py38_build popd %endif %install %py_install mv %{buildroot}%{_bindir}/jsonschema %{buildroot}%{_bindir}/jsonschema2 pushd %{py3dir} %py3_install mv %{buildroot}%{_bindir}/jsonschema %{buildroot}%{_bindir}/jsonschema3 popd %if %{py38} pushd %{py38dir} %py38_install popd %endif %check #{_bindir}/nosetests-2* -v || : %files %doc CHANGELOG.rst COPYING README.rst %{_bindir}/jsonschema2 %{py_puresitedir}/jsonschema/*.py* %{py_puresitedir}/jsonschema/tests/*.py* %{py_puresitedir}/jsonschema*.egg-info %{py_puresitedir}/jsonschema/schemas/draft*.json