diff options
-rw-r--r-- | .pre-commit-config.yaml | 10 | ||||
-rw-r--r-- | pbr/tests/test_packaging.py | 1 | ||||
-rw-r--r-- | pbr/util.py | 87 | ||||
-rw-r--r-- | test-requirements.txt | 5 |
4 files changed, 55 insertions, 48 deletions
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a8c2b27..2f6ad7b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -27,9 +27,13 @@ repos: - id: debug-statements - id: check-yaml files: .*\.(yaml|yml)$ - - repo: https://gitlab.com/pycqa/flake8 - rev: 181bb46098dddf7e2d45319ea654b4b4d58c2840 # 3.8.3 + - repo: local hooks: - id: flake8 + name: flake8 additional_dependencies: - - hacking==4.0.0 + - hacking>=4.0.0,<4.1.0 + language: python + entry: flake8 + files: '^.*\.py$' + exclude: '^(doc|releasenotes|tools)/.*$' diff --git a/pbr/tests/test_packaging.py b/pbr/tests/test_packaging.py index 3a70319..9e95a86 100644 --- a/pbr/tests/test_packaging.py +++ b/pbr/tests/test_packaging.py @@ -135,7 +135,6 @@ class GPGKeyFixture(fixtures.Fixture): Name-Comment: N/A Name-Email: example@example.com Expire-Date: 2d - Preferences: (setpref) %commit """) diff --git a/pbr/util.py b/pbr/util.py index 6e8d231..d821183 100644 --- a/pbr/util.py +++ b/pbr/util.py @@ -92,47 +92,50 @@ _VERSION_SPEC_RE = re.compile(r'\s*(.*?)\s*\((.*)\)\s*$') # Mappings from setup() keyword arguments to setup.cfg options; # The values are (section, option) tuples, or simply (section,) tuples if # the option has the same name as the setup() argument -D1_D2_SETUP_ARGS = { - "name": ("metadata",), - "version": ("metadata",), - "author": ("metadata",), - "author_email": ("metadata",), - "maintainer": ("metadata",), - "maintainer_email": ("metadata",), - "url": ("metadata", "home_page"), - "project_urls": ("metadata",), - "description": ("metadata", "summary"), - "keywords": ("metadata",), - "long_description": ("metadata", "description"), - "long_description_content_type": ("metadata", "description_content_type"), - "download_url": ("metadata",), - "classifiers": ("metadata", "classifier"), - "platforms": ("metadata", "platform"), # ** - "license": ("metadata",), +D1_D2_SETUP_ARGS = ( + ('name', ('metadata',)), + ('version', ('metadata',)), + ('author', ('metadata',)), + ('author_email', ('metadata',)), + ('maintainer', ('metadata',)), + ('maintainer_email', ('metadata',)), + ('url', ('metadata', 'home_page')), + ('project_urls', ('metadata',)), + ('description', ('metadata', 'summary')), + ('keywords', ('metadata',)), + ('long_description', ('metadata', 'description')), + ( + 'long_description_content_type', + ('metadata', 'description_content_type'), + ), + ('download_url', ('metadata',)), + ('classifiers', ('metadata', 'classifier')), + ('platforms', ('metadata', 'platform')), # ** + ('license', ('metadata',)), # Use setuptools install_requires, not # broken distutils requires - "install_requires": ("metadata", "requires_dist"), - "setup_requires": ("metadata", "setup_requires_dist"), - "python_requires": ("metadata",), - "requires_python": ("metadata", "python_requires"), - "provides": ("metadata", "provides_dist"), # ** - "provides_extras": ("metadata",), - "obsoletes": ("metadata", "obsoletes_dist"), # ** - "package_dir": ("files", 'packages_root'), - "packages": ("files",), - "package_data": ("files",), - "namespace_packages": ("files",), - "data_files": ("files",), - "scripts": ("files",), - "py_modules": ("files", "modules"), # ** - "cmdclass": ("global", "commands"), + ('install_requires', ('metadata', 'requires_dist')), + ('setup_requires', ('metadata', 'setup_requires_dist')), + ('python_requires', ('metadata',)), + ('python_requires', ('metadata', 'requires_python')), + ('provides', ('metadata', 'provides_dist')), # ** + ('provides_extras', ('metadata',)), + ('obsoletes', ('metadata', 'obsoletes_dist')), # ** + ('package_dir', ('files', 'packages_root')), + ('packages', ('files',)), + ('package_data', ('files',)), + ('namespace_packages', ('files',)), + ('data_files', ('files',)), + ('scripts', ('files',)), + ('py_modules', ('files', 'modules')), # ** + ('cmdclass', ('global', 'commands')), # Not supported in distutils2, but provided for # backwards compatibility with setuptools - "zip_safe": ("backwards_compat", "zip_safe"), - "tests_require": ("backwards_compat", "tests_require"), - "dependency_links": ("backwards_compat",), - "include_package_data": ("backwards_compat",), -} + ('zip_safe', ('backwards_compat', 'zip_safe')), + ('tests_require', ('backwards_compat', 'tests_require')), + ('dependency_links', ('backwards_compat',)), + ('include_package_data', ('backwards_compat',)), +) # setup() arguments that can have multiple values in setup.cfg MULTI_FIELDS = ("classifiers", @@ -312,14 +315,14 @@ def setup_cfg_to_setup_kwargs(config, script_args=()): # parse env_markers. all_requirements = {} - for arg in D1_D2_SETUP_ARGS: - if len(D1_D2_SETUP_ARGS[arg]) == 2: + for arg, alias in D1_D2_SETUP_ARGS: + if len(alias) == 2: # The distutils field name is different than distutils2's. - section, option = D1_D2_SETUP_ARGS[arg] + section, option = alias - elif len(D1_D2_SETUP_ARGS[arg]) == 1: + elif len(alias) == 1: # The distutils field name is the same thant distutils2's. - section = D1_D2_SETUP_ARGS[arg][0] + section = alias[0] option = arg in_cfg_value = has_get_option(config, section, option) diff --git a/test-requirements.txt b/test-requirements.txt index caca8d1..4d586e4 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4,8 +4,9 @@ wheel>=0.32.0 # MIT fixtures>=3.0.0 # Apache-2.0/BSD -hacking>=1.1.0,<4.0.0 # Apache-2.0 -mock>=2.0.0 # BSD +hacking>=1.1.0,<4.0.0;python_version>='3.6' # Apache-2.0 +mock>=2.0.0,<4.0.0;python_version=='2.7' # BSD +mock>=2.0.0;python_version>='3.6' # BSD six>=1.12.0 # MIT stestr>=2.1.0,<3.0;python_version=='2.7' # Apache-2.0 stestr>=2.1.0;python_version>='3.0' # Apache-2.0 |