forked from pool/python-blue
bsc#1217371 - Add patch flake8-v6-compatibility.patch, gh#grantjenks/blue#96 - Remove patch flake8-v5-compatibility.patch - Refresh patch python-blue.changes OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-blue?expand=0&rev=24
123 lines
4.3 KiB
Diff
123 lines
4.3 KiB
Diff
Index: blue-0.9.1/blue/__init__.py
|
|
===================================================================
|
|
--- blue-0.9.1.orig/blue/__init__.py
|
|
+++ blue-0.9.1/blue/__init__.py
|
|
@@ -7,6 +7,8 @@ import logging
|
|
import re
|
|
import sys
|
|
|
|
+from configparser import ConfigParser
|
|
+
|
|
from importlib import machinery
|
|
|
|
__version__ = '0.9.1'
|
|
@@ -74,6 +76,7 @@ try:
|
|
from black.files import tomli
|
|
except ImportError:
|
|
from black.files import tomllib as tomli
|
|
+from black.files import find_user_pyproject_toml
|
|
from black.linegen import LineGenerator as BlackLineGenerator
|
|
from black.lines import Line
|
|
from black.nodes import (
|
|
@@ -89,9 +92,6 @@ from black.strings import (
|
|
sub_twice,
|
|
)
|
|
|
|
-from flake8.options import config as flake8_config
|
|
-from flake8.options import manager as flake8_manager
|
|
-
|
|
from enum import Enum
|
|
from functools import lru_cache
|
|
from typing import Any, Dict, Iterator, List, Optional, Pattern
|
|
@@ -396,21 +396,49 @@ def format_file_in_place(*args, **kws):
|
|
return black_format_file_in_place(*args, **kws)
|
|
|
|
|
|
-try:
|
|
- BaseConfigParser = flake8_config.ConfigParser # flake8 v4
|
|
-except AttributeError:
|
|
- BaseConfigParser = flake8_config.MergedConfigParser # flake8 v3
|
|
+def load_configs_from_file() -> Dict[str, Any]:
|
|
+ """Parses supported config files using configparser"""
|
|
+ supported_config_files = ('setup.cfg', 'tox.ini', '.blue')
|
|
+ config_dict = {}
|
|
+ pwd = Path.cwd()
|
|
+ cfg = ConfigParser()
|
|
+
|
|
+ config_file_found = False
|
|
+
|
|
+ # search config files from pwd and its parents
|
|
+ for dir in (pwd, *pwd.parents):
|
|
+ filenames = [
|
|
+ (dir / config_file) for config_file in supported_config_files
|
|
+ ]
|
|
+ files_read = cfg.read(filenames)
|
|
+
|
|
+ # if config file was read, stop search
|
|
+ if len(files_read) > 0:
|
|
+ config_file_found = True
|
|
+ break
|
|
+
|
|
+ if not config_file_found:
|
|
+ # config file not found yet
|
|
+ # last try using top-level user configuration for black
|
|
+ try:
|
|
+ top_level_full_path = find_user_pyproject_toml()
|
|
+
|
|
+ top_level_dir = top_level_full_path.parent
|
|
+
|
|
+ filenames = [
|
|
+ (top_level_dir / config_file)
|
|
+ for config_file in supported_config_files
|
|
+ ]
|
|
+
|
|
+ cfg.read(filenames)
|
|
+ except PermissionError:
|
|
+ # ignore user level config directory if no access permission was given
|
|
+ pass
|
|
|
|
+ if cfg.has_section('blue'):
|
|
+ config_dict.update(cfg.items('blue'))
|
|
|
|
-class MergedConfigParser(BaseConfigParser):
|
|
- def _parse_config(self, config_parser, parent=None):
|
|
- """Skip option parsing in flake8's config parsing."""
|
|
- config_dict = {}
|
|
- for option_name in config_parser.options(self.program_name):
|
|
- value = config_parser.get(self.program_name, option_name)
|
|
- LOG.debug('Option "%s" has value: %r', option_name, value)
|
|
- config_dict[option_name] = value
|
|
- return config_dict
|
|
+ return config_dict
|
|
|
|
|
|
def read_configs(
|
|
@@ -419,12 +447,9 @@ def read_configs(
|
|
"""Read configs through the config param's callback hook."""
|
|
# Use black's `read_pyproject_toml` for the default
|
|
result = black.read_pyproject_toml(ctx, param, value)
|
|
- # Use flake8's config file parsing to load setup.cfg, tox.ini, and .blue
|
|
+ # parses setup.cfg, tox.ini, and .blue config files
|
|
# The parsing looks both in the project and user directories.
|
|
- finder = flake8_config.ConfigFileFinder('blue')
|
|
- manager = flake8_manager.OptionManager('blue', '0')
|
|
- parser = MergedConfigParser(manager, finder)
|
|
- config = parser.parse()
|
|
+ config = load_configs_from_file()
|
|
# Merge the configs into Click's `default_map`.
|
|
default_map: Dict[str, Any] = {}
|
|
default_map.update(ctx.default_map or {})
|
|
Index: blue-0.9.1/setup.py
|
|
===================================================================
|
|
--- blue-0.9.1.orig/setup.py
|
|
+++ blue-0.9.1/setup.py
|
|
@@ -37,7 +37,7 @@ setup(
|
|
packages=['blue'],
|
|
tests_require=['tox'],
|
|
cmdclass={'test': Tox},
|
|
- install_requires=['black==22.1.0', 'flake8>=3.8,<5.0.0'],
|
|
+ install_requires=['black==22.1.0'],
|
|
project_urls={
|
|
'Documentation': 'https://blue.readthedocs.io/en/latest',
|
|
'Source': 'https://github.com/grantjenks/blue.git',
|