%global srcname hdfs
%global sum HdfsCLI: API and command line interface for HDFS
Name: python-%{srcname}
Version: 2.1.0
Release: 5%{?dist}
Summary: %{sum}
License: MIT
URL: https://github.com/mtth/%{srcname}
Source0: https://github.com/mtth/%{srcname}/archive/%{version}/%{srcname}-%{version}.tar.gz
BuildArch: noarch
%global _description Python (2 and 3) bindings for the WebHDFS (and HttpFS) \
API, supporting both secure and insecure clusters. Command line interface to \
transfer files and start an interactive client shell, with aliases for \
convenient name-node URL caching. Additional functionality through optional \
extensions: Avro, to read and write Avro files directly from HDFS. data-frame, \
to load and save Pandas data-frames. Kerberos, to support Kerberos \
authenticated clusters.
%description
%{_description}
%package -n python2-%{srcname}
Summary: %{sum}
BuildRequires: python2-devel
BuildRequires: %{py2_dist setuptools}
BuildRequires: %{py2_dist six}
BuildRequires: %{py2_dist fastavro}
BuildRequires: %{py2_dist pandas}
BuildRequires: %{py2_dist requests-kerberos}
BuildRequires: %{py2_dist nose}
Requires: %{py2_dist six}
Requires: %{py2_dist requests}
Requires: %{py2_dist docopt}
Requires: %{py2_dist fastavro}
Requires: %{py2_dist pandas}
Requires: %{py2_dist requests-kerberos}
%{?python_provide:%python_provide python2-%{srcname}}
%description -n python2-%{srcname}
%{_description}
%package -n python3-%{srcname}
Summary: %{sum}
BuildRequires: python3-devel
BuildRequires: %{py3_dist setuptools}
BuildRequires: %{py3_dist six}
BuildRequires: %{py3_dist fastavro}
BuildRequires: %{py3_dist pandas}
BuildRequires: %{py3_dist requests-kerberos}
BuildRequires: %{py3_dist nose}
Requires: %{py3_dist six}
Requires: %{py3_dist requests}
Requires: %{py3_dist docopt}
Requires: %{py3_dist fastavro}
Requires: %{py3_dist pandas}
Requires: %{py3_dist requests-kerberos}
%{?python_provide:%python_provide python3-%{srcname}}
%description -n python3-%{srcname}
%{_description}
%package doc
Summary: Documentation for %{name}
BuildRequires: %{py2_dist sphinx}
# Should docs require the main package?
%description doc
%{_description}
%prep
%autosetup -n %{srcname}-%{version}
rm -rf *.egg-info
%build
%py2_build
%py3_build
pushd doc
PYTHONPATH=../ sphinx-build . html
rm -fvr html/{.buildinfo,.doctrees}
popd
# Remove shebang from examples in doc
for example in examples/*.py; do
sed '1{\@^#!/usr/bin/env python@d}' $example > $example.new &&
touch -r $example $example.new &&
mv $example.new $example
done
%install
%py2_install
%py3_install
# Remove shebang from libraries
# probably easier to use find, but the wiki suggests a for loop
for lib in %{buildroot}%{python2_sitelib}/%{srcname}/*.py %{buildroot}%{python2_sitelib}/%{srcname}/ext/*.py %{buildroot}%{python2_sitelib}/%{srcname}/ext/avro/*.py;
do
echo "Working on $lib"
sed '1{\@^#!/usr/bin/env python@d}' $lib > $lib.new &&
touch -r $lib $lib.new &&
mv $lib.new $lib
done
for lib in %{buildroot}%{python3_sitelib}/%{srcname}/*.py %{buildroot}%{python3_sitelib}/%{srcname}/ext/*.py %{buildroot}%{python3_sitelib}/%{srcname}/ext/avro/*.py;
do
echo "Working on $lib"
sed '1{\@^#!/usr/bin/env python@d}' $lib > $lib.new &&
touch -r $lib $lib.new &&
mv $lib.new $lib
done
# Ignore tests - require a hadoop cluster setup
# https://github.com/mtth/hdfs/blob/master/.travis.yml#L10
%files -n python2-%{srcname}
%license LICENSE
%{python2_sitelib}/%{srcname}-%{version}-py?.?.egg-info
%{python2_sitelib}/%{srcname}/
%files -n python3-%{srcname}
%license LICENSE
%{python3_sitelib}/%{srcname}-%{version}-py?.?.egg-info
%{python3_sitelib}/%{srcname}/
%{_bindir}/%{srcname}*
%files doc
%doc examples AUTHORS CHANGES README.rst doc/html
%license LICENSE
%changelog
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 2.1.0-5
- Rebuilt for Python 3.7
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 2.1.0-4
- Rebuilt for Python 3.7
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Tue Jan 23 2018 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 2.1.0-2
- Fix doc generation
- Fix summary macro
- List binary files
* Mon Jan 15 2018 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 0.1.0-1
- Initial build