Skip to content

Commit 2cd2a65

Browse files
resolve conversation
1 parent dc62be1 commit 2cd2a65

File tree

2 files changed

+21
-31
lines changed

2 files changed

+21
-31
lines changed

exasol/toolbox/nox/_dependencies_check.py

Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -14,60 +14,50 @@
1414
@nox.session(name="dependencies-check", python=False)
1515
def dependency_check(session: Session) -> None:
1616
content = Path(PROJECT_CONFIG.root, "pyproject.toml").read_text()
17-
dependencies = Dependencies(content).parse()
17+
dependencies = dependencies = Dependencies.parse(content)
1818
console = rich.console.Console()
1919
if illegal := dependencies.illegal:
2020
report_illegal(illegal, console)
2121
sys.exit(1)
2222

2323

2424
class Dependencies:
25-
ILLEGAL_DEPENDENCIES = ['url', 'git', 'path']
26-
27-
def __init__(self, pyproject_toml: str):
28-
self.illegal_dict: Dict[str, List[str]] = {}
29-
self.content = pyproject_toml
30-
31-
def parse(self) -> "Dependencies":
32-
def source_filter(version) -> bool:
33-
for f in self.ILLEGAL_DEPENDENCIES:
34-
if f in version:
35-
return True
36-
return False
37-
38-
def extract_dependencies(section) -> List[str]:
25+
def __init__(self, illegal: Dict[str, List[str]] | None):
26+
self._illegal = illegal or {}
27+
@staticmethod
28+
def parse(pyproject_toml: str) -> "Dependencies":
29+
def _source_filter(version) -> bool:
30+
ILLEGAL_SPECIFIERS = ['url', 'git', 'path']
31+
return any(
32+
specifier in version
33+
for specifier in ILLEGAL_SPECIFIERS
34+
)
35+
def _extract_dependencies(section) -> List[str]:
3936
dependencies = []
4037
for name, version in section.items():
41-
if source_filter(version):
38+
if _source_filter(version):
4239
dependencies.append(f"{name} = {version}")
4340
return dependencies
44-
4541
illegal: Dict[str, List[str]] = {}
46-
toml = tomlkit.loads(self.content)
42+
toml = tomlkit.loads(pyproject_toml)
4743
poetry = toml.get("tool", {}).get("poetry", {})
48-
4944
part = poetry.get("dependencies", {})
50-
dependencies_list = extract_dependencies(part)
45+
dependencies_list = _extract_dependencies(part)
5146
if dependencies_list:
5247
illegal["tool.poetry.dependencies"] = dependencies_list
53-
5448
part = poetry.get("dev", {}).get("dependencies", {})
55-
dependencies_list = extract_dependencies(part)
49+
dependencies_list = _extract_dependencies(part)
5650
if dependencies_list:
5751
illegal["tool.poetry.dev.dependencies"] = dependencies_list
58-
5952
part = poetry.get("group", {})
6053
for group, content in part.items():
61-
dependencies_list = extract_dependencies(content.get("dependencies", {}))
54+
dependencies_list = _extract_dependencies(content.get("dependencies", {}))
6255
if dependencies_list:
6356
illegal[f"tool.poetry.group.{group}.dependencies"] = dependencies_list
64-
65-
self.illegal_dict = illegal
66-
return self
67-
57+
return Dependencies(illegal)
6858
@property
6959
def illegal(self) -> Dict[str, List[str]]:
70-
return self.illegal_dict
60+
return self._illegal
7161

7262

7363
def report_illegal(illegal: Dict[str, List[str]], console: rich.console.Console):

test/unit/dependencies_check_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@
9595
]
9696
)
9797
def test_dependency_check_parse(toml, expected):
98-
dependencies = Dependencies(toml).parse()
98+
dependencies = dependencies = Dependencies.parse(toml)
9999
assert dependencies.illegal == expected
100100

101101

@@ -142,6 +142,6 @@ def test_dependency_check_parse(toml, expected):
142142
)
143143
def test_dependencies_check_report(toml, expected, capsys):
144144
console = rich.console.Console()
145-
dependencies = Dependencies(toml).parse()
145+
dependencies = Dependencies.parse(toml)
146146
report_illegal(dependencies.illegal, console)
147147
assert capsys.readouterr().out == expected

0 commit comments

Comments
 (0)