apexcodexpy 0.4.2__tar.gz → 0.4.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,16 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: apexcodexpy
3
- Version: 0.4.2
3
+ Version: 0.4.3
4
4
  Summary: The Non-Destructive Configuration Steward for Python Projects.
5
5
  License-File: LICENSE
6
6
  Author: Apex Dev
7
7
  Author-email: dev@apex.ge
8
- Requires-Python: >=3.11
8
+ Requires-Python: >=3.11,<4
9
9
  Classifier: Programming Language :: Python :: 3
10
10
  Classifier: Programming Language :: Python :: 3.11
11
11
  Classifier: Programming Language :: Python :: 3.12
12
12
  Classifier: Programming Language :: Python :: 3.13
13
13
  Classifier: Programming Language :: Python :: 3.14
14
+ Requires-Dist: deptry
14
15
  Requires-Dist: mypy
15
16
  Requires-Dist: pyyaml
16
17
  Requires-Dist: ruff
@@ -62,8 +62,13 @@ class Command:
62
62
  return self
63
63
 
64
64
  def append(self, argument: Any) -> Command:
65
- if argument is not None:
66
- self._arguments.extend(str(argument).split())
65
+ match argument:
66
+ case None:
67
+ pass
68
+ case str(text) if not text.startswith("'"):
69
+ self._arguments.extend(argument.split())
70
+ case _:
71
+ self._arguments.append(str(argument))
67
72
 
68
73
  return self
69
74
 
@@ -72,9 +77,7 @@ class Command:
72
77
 
73
78
  def __iter__(self) -> Iterator[str]:
74
79
  yield from self.name.split()
75
-
76
- for argument in self._arguments:
77
- yield from str(argument).split()
80
+ yield from self._arguments
78
81
 
79
82
 
80
83
  class Executable(Protocol):
@@ -7,7 +7,7 @@ from time import time
7
7
  from codex.infra.program import Command, Executable, MultiProgram, Program
8
8
  from codex.infra.pyproject import PyProjectToml
9
9
  from codex.infra.result import TaskResult
10
- from codex.infra.tools import MyPy, Pip, Poetry, PoetryRun, Pytest, Ruff
10
+ from codex.infra.tools import Deptry, MyPy, Pip, Poetry, PoetryRun, Pytest, Ruff
11
11
  from codex.infra.workflows import CheckCodeWorkflow, DependabotWorkflow
12
12
 
13
13
 
@@ -143,6 +143,12 @@ class CodexTools:
143
143
  command=Ruff(on=self.target).format().flag(check=True),
144
144
  )
145
145
  )
146
+ .attach(
147
+ Program(
148
+ name="dependencies",
149
+ command=Deptry(on=self.target).lint(),
150
+ )
151
+ )
146
152
  .attach(
147
153
  Program(
148
154
  name="ruff",
@@ -98,6 +98,14 @@ class Ruff:
98
98
  return Command("ruff format").append(self.on)
99
99
 
100
100
 
101
+ @dataclass(frozen=True, kw_only=True)
102
+ class Deptry:
103
+ on: Path
104
+
105
+ def lint(self) -> Command:
106
+ return Command("deptry").append(self.on).append("||").append("true")
107
+
108
+
101
109
  @dataclass(frozen=True, kw_only=True)
102
110
  class MyPy:
103
111
  on: Path
@@ -1,13 +1,13 @@
1
1
  [project]
2
2
  name = "apexcodexpy"
3
- version = "0.4.2"
3
+ version = "0.4.3"
4
4
  description = "The Non-Destructive Configuration Steward for Python Projects."
5
5
  readme = "README.md"
6
6
  authors = [
7
7
  { name = "Apex Dev", email = "dev@apex.ge" }
8
8
  ]
9
9
  dynamic = ["dependencies"]
10
- requires-python = ">=3.11"
10
+ requires-python = ">=3.11,<4"
11
11
 
12
12
  [project.scripts]
13
13
  codex = "codex.runner:cli"
@@ -23,6 +23,7 @@ tomlkit = "*"
23
23
  mypy = "*"
24
24
  ruff = "*"
25
25
  pyyaml = "*"
26
+ deptry = "*"
26
27
 
27
28
  [tool.poetry.group.dev.dependencies]
28
29
  behave = "*"
@@ -61,6 +62,13 @@ select = [
61
62
  [tool.ruff.lint.mccabe]
62
63
  max-complexity = 10
63
64
 
65
+ [tool.deptry.per_rule_ignores]
66
+ DEP002 = [
67
+ "mypy",
68
+ "ruff",
69
+ "deptry",
70
+ ]
71
+
64
72
  [tool.coverage.run]
65
73
  branch = true
66
74
  source = [
File without changes
File without changes
File without changes