Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Factory
python-blue
flake8-v6-compatibility.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File flake8-v6-compatibility.patch of Package python-blue
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',
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor