forked from pool/python-yapf
port from dlp3 OBS-URL: https://build.opensuse.org/request/show/539615 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-yapf?expand=0&rev=1
94 lines
3.0 KiB
RPMSpec
94 lines
3.0 KiB
RPMSpec
#
|
|
# spec file for package python-yapf
|
|
#
|
|
# Copyright (c) 2017 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/
|
|
|
|
|
|
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
|
%bcond_without test
|
|
Name: python-yapf
|
|
Version: 0.19.0
|
|
Release: 0
|
|
License: Apache-2.0
|
|
Summary: A formatter for Python code
|
|
Url: https://github.com/google/yapf
|
|
Group: Development/Languages/Python
|
|
Source: https://files.pythonhosted.org/packages/source/y/yapf/yapf-%{version}.tar.gz
|
|
BuildRequires: %{python_module devel}
|
|
BuildRequires: %{python_module setuptools}
|
|
BuildRequires: fdupes
|
|
BuildRequires: python-rpm-macros
|
|
%if %{with test}
|
|
BuildRequires: %{python_module nose}
|
|
BuildRequires: python-futures
|
|
%endif
|
|
BuildArch: noarch
|
|
%ifpython2
|
|
Recommends: python-futures
|
|
%endif
|
|
Requires(post): update-alternatives
|
|
Requires(postun): update-alternatives
|
|
|
|
%python_subpackages
|
|
|
|
%description
|
|
Most of the current formatters for Python --- e.g., autopep8, and pep8ify ---
|
|
are made to remove lint errors from code. This has some obvious limitations.
|
|
For instance, code that conforms to the PEP 8 guidelines may not be
|
|
reformatted. But it doesn't mean that the code looks good.
|
|
|
|
YAPF takes a different approach. It's based off of 'clang-format', developed by
|
|
Daniel Jasper. In essence, the algorithm takes the code and reformats it to the
|
|
best formatting that conforms to the style guide, even if the original code
|
|
didn't violate the style guide. The idea is also similar to the 'gofmt' tool for
|
|
the Go programming language: end all holy wars about formatting - if the whole
|
|
codebase of a project is simply piped through YAPF whenever modifications are
|
|
made, the style remains consistent throughout the project and there's no point
|
|
arguing about style in every code review.
|
|
|
|
The ultimate goal is that the code YAPF produces is as good as the code that a
|
|
programmer would write if they were following the style guide. It takes away
|
|
some of the drudgery of maintaining your code.
|
|
|
|
%prep
|
|
%setup -q -n yapf-%{version}
|
|
|
|
%build
|
|
%python_build
|
|
|
|
%install
|
|
%python_install
|
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
|
|
|
%python_clone -a %{buildroot}%{_bindir}/yapf
|
|
|
|
%if %{with test}
|
|
%check
|
|
%python_expand nosetests-%{$python_bin_suffix}
|
|
%endif
|
|
|
|
%post
|
|
%python_install_alternative yapf
|
|
|
|
%postun
|
|
%python_uninstall_alternative yapf
|
|
|
|
%files %{python_files}
|
|
%defattr(-,root,root,-)
|
|
%doc README.rst
|
|
%python_alternative %{_bindir}/yapf
|
|
%{python_sitelib}/*
|
|
|
|
%changelog
|