Skip to content

Commit

Permalink
Run make valid.
Browse files Browse the repository at this point in the history
Signed-off-by: Bennati, Stefano <stefano.bennati@here.com>
  • Loading branch information
bennati committed Dec 1, 2023
1 parent 8b5ffe7 commit 34581de
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 24 deletions.
24 changes: 8 additions & 16 deletions src/python_inspector/setup_py_live_eval.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,27 @@
#
"""Generate requirements from `setup.py` and `requirements-devel.txt`."""

import ast
import os
import sys
import ast

try:
import configparser
except ImportError: # pragma: no cover
import ConfigParser as configparser

import distutils.core

import mock
import setuptools
import distutils.core
from commoncode.command import pushd
from packvers.requirements import Requirement


def minver_error(pkg_name):
"""Report error about missing minimum version constraint and exit."""
print(
'ERROR: specify minimal version of "{0}" using '
'">=" or "=="'.format(pkg_name),
'ERROR: specify minimal version of "{0}" using ' '">=" or "=="'.format(pkg_name),
file=sys.stderr,
)
sys.exit(1)
Expand Down Expand Up @@ -68,9 +68,7 @@ def iter_requirements(level, extras, setup_file):
asnames[(n.asname if n.asname is not None else n.name)] = n.name
for elem in ast.walk(node):
# for function imports, e.g. from setuptools import setup; setup()
if isinstance(elem, ast.ImportFrom) and "setup" in [
e.name for e in elem.names
]:
if isinstance(elem, ast.ImportFrom) and "setup" in [e.name for e in elem.names]:
imports.append(elem.module)
# for module imports, e.g. import setuptools; setuptools.setup(...)
elif (
Expand All @@ -93,16 +91,12 @@ def iter_requirements(level, extras, setup_file):
and elem.value.func.attr == "setup"
):
name = (
str(elem.value.func.value.value.id)
+ "."
+ str(elem.value.func.value.attr)
str(elem.value.func.value.value.id) + "." + str(elem.value.func.value.attr)
)
if name in asnames.keys():
name = asnames[name]
imports.append(name)
setup_providers = [
i for i in imports if i in ["distutils.core", "setuptools"]
]
setup_providers = [i for i in imports if i in ["distutils.core", "setuptools"]]
if len(setup_providers) == 0:
print(
f"Warning: unable to recognize setup provider in {setup_file}: "
Expand Down Expand Up @@ -195,9 +189,7 @@ def iter_requirements(level, extras, setup_file):
result[pkg.name] = "{0}=={1}".format(build_pkg_name(pkg), specs["~="])
else:
ver, _ = os.path.splitext(specs["~="])
result[pkg.name] = "{0}>={1},=={2}.*".format(
build_pkg_name(pkg), specs["~="], ver
)
result[pkg.name] = "{0}>={1},=={2}.*".format(build_pkg_name(pkg), specs["~="], ver)

else:
if level == "min":
Expand Down
25 changes: 17 additions & 8 deletions tests/test_setup_py_live_eval.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,24 @@
# file for more details.
#
"""Tests for `requirements-builder` module."""
import pytest

from os.path import abspath
from os.path import dirname
from os.path import join

import pytest

from python_inspector.setup_py_live_eval import iter_requirements

REQ = abspath(join(dirname(__file__), "./data/requirements.devel.txt"))


@pytest.mark.parametrize("setup_py", [abspath(join(dirname(__file__), "./data/setup.txt")),
abspath(join(dirname(__file__), "./data/setup-qualifiedfct.txt"))])
@pytest.mark.parametrize(
"setup_py",
[
abspath(join(dirname(__file__), "./data/setup.txt")),
abspath(join(dirname(__file__), "./data/setup-qualifiedfct.txt")),
],
)
def test_iter_requirements_with_setup_py(setup_py):
"""Test requirements-builder."""
# Min
Expand All @@ -33,10 +38,14 @@ def test_iter_requirements_with_setup_py(setup_py):
assert list(iter_requirements("dev", [], setup_py)) == ["click>=6.1.0", "mock>=1.3.0"]


@pytest.mark.parametrize("setup_py", [abspath(join(dirname(__file__), "./data/setup-distutils.txt")),
abspath(join(dirname(__file__),
"./data/setup-distutils-qualifiedfct.txt")),
abspath(join(dirname(__file__), "./data/setup-distutils-asnames.txt"))])
@pytest.mark.parametrize(
"setup_py",
[
abspath(join(dirname(__file__), "./data/setup-distutils.txt")),
abspath(join(dirname(__file__), "./data/setup-distutils-qualifiedfct.txt")),
abspath(join(dirname(__file__), "./data/setup-distutils-asnames.txt")),
],
)
def test_iter_requirements_with_setup_py_noreqs(setup_py):
"""Test against setup.py files which import setup in different ways"""
# Min
Expand Down

0 comments on commit 34581de

Please sign in to comment.