# # spec file for package python-jmespath # # Copyright (c) 2013 SUSE LINUX Products 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.2.1 Release: 0 License: MIT Summary: Extract elements from JSON document URL: https://github.com/boto/jmespath Group: Development/Languages/Python Source0: %{baseName}-%{version}.tar.gz Requires: python Requires: python-ply >= 3.4 BuildRequires: python BuildRequires: python-devel BuildRequires: python-ply BuildRequires: python-setuptools BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root %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} %files %defattr(-,root,root,-) %doc LICENSE.txt README.rst %dir %{python_sitelib}/jmespath %dir %{python_sitelib}/%{baseName}-%{version}-py%{py_ver}.egg-info %{_bindir}/jp %{python_sitelib}/jmespath/* %{python_sitelib}/*egg-info/* %changelog