14
0
forked from pool/python-black
Files
python-black/python-black.spec
Dirk Mueller 773c9b83d0 Accepting request 965253 from home:bnavigator:branches:devel:languages:python
- Update to 22.1.0
  * Remove Python 2 support (#2740)
  * Introduce the --preview flag (#2752)
  * Deprecate --experimental-string-processing and move the
    functionality under --preview (#2789)
  * For stubs, one blank line between class attributes and methods
    is now kept if there's at least one pre-existing blank line
    (#2736)
  * Black now normalizes string prefix order (#2297)
  * Remove spaces around power operators if both operands are
    simple (#2726)
  * Work around bug that causes unstable formatting in some cases
    in the presence of the magic trailing comma (#2807)
  * Use parentheses for attribute access on decimal float and int
    literals (#2799)
  * Don't add whitespace for attribute access on hexadecimal,
    binary, octal, and complex literals (#2799)
  * Treat blank lines in stubs the same inside top-level if
    statements (#2820)
  * Fix unstable formatting with semicolons and arithmetic
    expressions (#2817)
  * Fix unstable formatting around magic trailing comma (#2572)
  * Fix mapping cases that contain as-expressions, like case
    {"key": 1 | 2 as password} (#2686)
  * Fix cases that contain multiple top-level as-expressions, like
    case 1 as a, 2 as b (#2716)
  * Fix call patterns that contain as-expressions with keyword
    arguments, like case Foo(bar=baz as quux) (#2749)
  * Tuple unpacking on return and yield constructs now implies 3.8+
    (#2700)
  * Unparenthesized tuples on annotated assignments (e.g values:
    Tuple[int, ...] = 1, 2, 3) now implies 3.8+ (#2708)
  * Fix handling of standalone match() or case() when there is a
    trailing newline or a comment inside of the parentheses.
    (#2760)
  * from __future__ import annotations statement now implies Python
    3.7+ (#2690)
  * Speed-up the new backtracking parser about 4X in general
    (enabled when --target-version is set to 3.10 and higher).
    (#2728)
  * Black is now compiled with mypyc for an overall 2x speed-up.
    64-bit Windows, MacOS, and Linux (not including musl) are
    supported. (#1009, #2431)
  * Do not accept bare carriage return line endings in
    pyproject.toml (#2408)
  * Add configuration option (python-cell-magics) to format cells
    with custom magics in Jupyter Notebooks (#2744)
  * Allow setting custom cache directory on all platforms with
    environment variable BLACK_CACHE_DIR (#2739).
  * Enable Python 3.10+ by default, without any extra need to
    specify --target-version=py310. (#2758)
  * Make passing SRC or --code mandatory and mutually exclusive
    (#2804)
  * Improve error message for invalid regular expression (#2678)
  * Improve error message when parsing fails during AST safety
    check by embedding the underlying SyntaxError (#2693)
  * No longer color diff headers white as it's unreadable in light
    themed terminals (#2691)
  * Text coloring added in the final statistics (#2712)
  * Verbose mode also now describes how a project root was
    discovered and which paths will be formatted. (#2526)
  * All upper version bounds on dependencies have been removed
    (#2718)
  * typing-extensions is no longer a required dependency in Python
    3.10+ (#2772)
  * Set click lower bound to 8.0.0 as Black crashes on 7.1.2
    (#2791)
  * Deprecate the black-primer tool (#2809)
  * Document Python support policy (#2819)
- Drop black-pr2718-unpin.patch

OBS-URL: https://build.opensuse.org/request/show/965253
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-black?expand=0&rev=28
2022-03-28 06:40:56 +00:00

126 lines
4.4 KiB
RPMSpec

#
# spec file for package python-black
#
# Copyright (c) 2022 SUSE LLC
#
# 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 https://bugs.opensuse.org/
#
%{?!python_module:%define python_module() python3-%{**}}
%define skip_python2 1
Name: python-black
Version: 22.1.0
Release: 0
Summary: A code formatter written in, and written for Python
License: MIT
URL: https://github.com/psf/black
Source: https://files.pythonhosted.org/packages/source/b/black/black-%{version}.tar.gz
BuildRequires: %{python_module aiohttp >= 3.3.2}
BuildRequires: %{python_module aiohttp_cors}
BuildRequires: %{python_module attrs >= 18.1.0}
BuildRequires: %{python_module base >= 3.6}
BuildRequires: %{python_module click >= 8.0.0}
BuildRequires: %{python_module dataclasses if %python-base < 3.7}
BuildRequires: %{python_module mypy_extensions >= 0.4.3}
BuildRequires: %{python_module pathspec >= 0.9.0}
BuildRequires: %{python_module platformdirs >= 2}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools_scm}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module tomli >= 1.1.0}
BuildRequires: %{python_module typed-ast >= 1.4.2 if %python-base < 3.8}
BuildRequires: %{python_module typing_extensions >= 3.10.0.0 if %python-base < 3.10}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-aiohttp >= 3.3.2
Requires: python-aiohttp_cors
Requires: python-attrs >= 18.1.0
Requires: python-click >= 8.0.0
Requires: python-mypy_extensions >= 0.4.3
Requires: python-pathspec >= 0.9.0
Requires: python-platformdirs >= 2
Requires: python-tomli >= 1.1.0
%if 0%{?python_version_nodots} < 37
Requires: python-dataclasses
%endif
%if 0%{?python_version_nodots} < 38
Requires: python-typed-ast >= 1.4.2
%endif
%if 0%{?python_version_nodots} < 310
Requires: python-typing_extensions >= 3.10.0.0
%endif
Requires(post): update-alternatives
Requires(postun):update-alternatives
BuildArch: noarch
%python_subpackages
%description
Black is a code formatter written in Python, and reformats Python 2.x
and 3.x code.
Black reformats entire files in place. It is not configurable. It
does not take previous formatting into account. The coding style
enforced is a PEP-8 subset, adheres to PEP-257, and otherwise passes
the rules of the "pycodestyle" checker. Black skips over blocks that
start and end with "# fmt: off" and "# fmt: on", respectively. It
also recognizes YAPF's block comments to the same effect.
%prep
%autosetup -p1 -n black-%{version}
sed -i '1{/#!/d}' src/black_primer/cli.py src/black_primer/lib.py
%build
%python_build
%install
%python_install
%python_clone -a %{buildroot}%{_bindir}/black
%python_clone -a %{buildroot}%{_bindir}/blackd
%python_clone -a %{buildroot}%{_bindir}/black-primer
%{python_expand cp src/black_primer/primer.json %{buildroot}%{$python_sitelib}/black_primer/
%fdupes %{buildroot}%{$python_sitelib}
}
%check
# Copy one of the executable scripts into the PATH
mkdir ~/bin
cp $(ls %{buildroot}%{_bindir}/black-* | head -1) ~/bin/black
export PATH=$PATH:~/bin
# test_expression_diff - sometimes fails on async timing in OBS
# test_bpo_2142_workaround fails on arm
skiptests="test_expression_diff or test_bpo_2142_workaround"
%pytest -k "not ($skiptests)"
%post
%python_install_alternative black blackd black-primer
%postun
%python_uninstall_alternative black
%files %{python_files}
%doc README.md CHANGES.md docs/*.md
%license LICENSE
%python_alternative %{_bindir}/black
%python_alternative %{_bindir}/blackd
%python_alternative %{_bindir}/black-primer
%{python_sitelib}/_black_version.py*
%{python_sitelib}/black_primer/
%{python_sitelib}/black/
%{python_sitelib}/blackd/
%{python_sitelib}/blib2to3/
%{python_sitelib}/black-%{version}*-info
%pycache_only %{python_sitelib}/__pycache__/*
%changelog