# # spec file for package python-jmespath # # Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # 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 http://bugs.opensuse.org/ # %define baseName jmespath Name: python-jmespath Version: 0.9.0 Release: 0 Summary: Extract elements from JSON document License: MIT Group: Development/Languages/Python Url: https://github.com/boto/jmespath Source0: https://pypi.python.org/packages/source/j/%{baseName}/%{baseName}-%{version}.tar.gz Requires: python-base Requires: python-ply >= 3.4 Requires(post): update-alternatives Requires(preun): update-alternatives BuildRequires: python-devel BuildRequires: python-ply >= 3.4 BuildRequires: python-setuptools # For testing BuildRequires: python-nose %if 0%{?suse_version} && 0%{?suse_version} <= 1110 BuildRequires: python-ordereddict %endif BuildRequires: python-simplejson BuildRequires: python-unittest2 BuildRoot: %{_tmppath}/%{name}-%{version}-build %if 0%{?suse_version} && 0%{?suse_version} <= 1110 %{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} %else BuildArch: noarch %endif %description JMESPath (pronounced "jaymz path") allows you to declaratively specify how to extract elements from a JSON document. For example, given this document: {"foo": {"bar": "baz"}} The jmespath expression foo.bar will return "baz". JMESPath also supports: Referencing elements in a list. Given the data: {"foo": {"bar": ["one", "two"]}} The expression: foo.bar[0] will return "one". You can also reference all the items in a list using the * syntax: {"foo": {"bar": [{"name": "one"}, {"name": "two"}]}} The expression: foo.bar[*].name will return ["one", "two"]. Negative indexing is also supported (-1 refers to the last element in the list). Given the data above, the expression foo.bar[-1].name will return ["two"]. The * can also be used for hash types: {"foo": {"bar": {"name": "one"}, "baz": {"name": "two"}}} The expression: foo.*.name will return ["one", "two"]. %prep %setup -q -n %{baseName}-%{version} %build python setup.py build %install python setup.py install --prefix=%{_prefix} --root=%{buildroot} --install-scripts=%{_bindir} # Prepare for update-alternatives usage mkdir -p %{buildroot}%{_sysconfdir}/alternatives mv %{buildroot}%{_bindir}/jp.py %{buildroot}%{_bindir}/jp-%{py_ver} ln -s -f %{_sysconfdir}/alternatives/jp %{buildroot}%{_bindir}/jp %check nosetests tests %post %_sbindir/update-alternatives --install %{_bindir}/jp jp %{_bindir}/jp-%{py_ver} 30 %preun if [ $1 -eq 0 ] ; then %_sbindir/update-alternatives --remove jp %{_bindir}/jp-%{py_ver} fi %files %defattr(-,root,root,-) %doc LICENSE.txt README.rst %{_bindir}/jp %{_bindir}/jp-%{py_ver} %ghost %{_sysconfdir}/alternatives/jp %{python_sitelib}/jmespath/ %{python_sitelib}/%{baseName}-%{version}-py%{py_ver}.egg-info/ %changelog