jacobus 2.0.0.dev0__tar.gz → 2.0.1__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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jacobus
3
- Version: 2.0.0.dev0
3
+ Version: 2.0.1
4
4
  Summary: This project normalizes whitespace.
5
5
  Author-email: Johannes <johannes.programming@gmail.com>
6
6
  License-Expression: MIT
@@ -28,7 +28,7 @@ license-files = [
28
28
  name = "jacobus"
29
29
  readme = "README.rst"
30
30
  requires-python = ">=3.11"
31
- version = "2.0.0.dev0"
31
+ version = "2.0.1"
32
32
 
33
33
  [project.urls]
34
34
  Download = "https://pypi.org/project/jacobus/#files"
@@ -7,8 +7,6 @@ from collections.abc import Iterable
7
7
  from importlib import metadata
8
8
  from typing import Optional
9
9
 
10
- from jacobus._const.Const import Const
11
-
12
10
  __all__ = ["main", "run"]
13
11
 
14
12
 
@@ -48,7 +46,7 @@ def main(args: typing.Optional[list[str]] = None, /) -> None:
48
46
  parser: argparse.ArgumentParser
49
47
  space: argparse.Namespace
50
48
  parser = argparse.ArgumentParser(
51
- description=Const.const.varia.get("description"),
49
+ description="This project normalizes whitespace.",
52
50
  fromfile_prefix_chars="@",
53
51
  )
54
52
  parser.add_argument(
@@ -60,11 +58,13 @@ def main(args: typing.Optional[list[str]] = None, /) -> None:
60
58
  )
61
59
  parser.add_argument(
62
60
  "--indent",
61
+ help="This option alters the indentation.",
63
62
  type=int,
64
63
  )
65
64
  parser.add_argument(
66
65
  "filepatterns",
67
66
  default=[],
67
+ help="These arguments give the patterns of the file.",
68
68
  nargs="*",
69
69
  )
70
70
  space = parser.parse_args(args)
@@ -83,17 +83,16 @@ def run(
83
83
  stream: io.TextIOWrapper
84
84
  absfiles = list()
85
85
  for pattern in filepatterns:
86
- for absfile in map(os.path.abspath, glob.glob(pattern)):
86
+ for absfile in map(
87
+ os.path.abspath, glob.iglob(pattern, recursive=True)
88
+ ):
87
89
  if absfile in absfiles:
88
90
  continue
89
- absfiles.append(absfile)
91
+ if os.path.isfile(absfile):
92
+ absfiles.append(absfile)
90
93
  for absfile in absfiles:
91
94
  with open(file=absfile, mode="r") as stream:
92
95
  lines = stream.readlines()
93
96
  lines = go(lines, indent=indent)
94
97
  with open(file=absfile, mode="w") as stream:
95
98
  stream.writelines(lines)
96
-
97
-
98
- if __name__ == "__main__":
99
- main()
@@ -1,5 +1,7 @@
1
1
  import unittest
2
2
 
3
+ __all__ = ["test"]
4
+
3
5
 
4
6
  def test() -> unittest.TextTestResult:
5
7
  loader = unittest.TestLoader()
@@ -1,17 +1,23 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import os
3
4
  import tempfile
4
5
  import unittest
5
6
  from pathlib import Path
6
- from typing import Self
7
+ from typing import Any, Self
7
8
 
8
9
  from jacobus.core import run
9
10
 
11
+ __all__ = ["JacobusRunTests"]
12
+
10
13
 
11
14
  class JacobusRunTests(unittest.TestCase):
12
15
  def test_strips_trailing_whitespace_and_outer_blank_lines(
13
16
  self: Self,
14
17
  ) -> None:
18
+ root: Path
19
+ target: Path
20
+ tmp: str
15
21
  with tempfile.TemporaryDirectory() as tmp:
16
22
  root = Path(tmp)
17
23
  target = root / "sample.txt"
@@ -19,7 +25,7 @@ class JacobusRunTests(unittest.TestCase):
19
25
  "\n\nalpha \n\n beta\t\t\n\n", encoding="utf-8"
20
26
  )
21
27
 
22
- run(str(root), files=["*.txt"])
28
+ run(filepatterns=[os.path.join(tmp, "*.txt")])
23
29
 
24
30
  self.assertEqual(
25
31
  target.read_text(encoding="utf-8"), "alpha\n\n beta\n"
@@ -28,12 +34,15 @@ class JacobusRunTests(unittest.TestCase):
28
34
  def test_rescales_space_indentation_when_indent_is_given(
29
35
  self: Self,
30
36
  ) -> None:
37
+ root: Path
38
+ target: Path
39
+ tmp: str
31
40
  with tempfile.TemporaryDirectory() as tmp:
32
41
  root = Path(tmp)
33
42
  target = root / "sample.py"
34
43
  target.write_text(" alpha\n beta\nplain\n", encoding="utf-8")
35
44
 
36
- run(str(root), files=["*.py"], indent=4)
45
+ run(filepatterns=[os.path.join(tmp, "*.py")], indent=4)
37
46
 
38
47
  self.assertEqual(
39
48
  target.read_text(encoding="utf-8"),
@@ -41,19 +50,27 @@ class JacobusRunTests(unittest.TestCase):
41
50
  )
42
51
 
43
52
  def test_unmatched_glob_does_not_touch_files(self: Self) -> None:
53
+ root: Path
54
+ tmp: str
55
+ target: Path
56
+ original: str
44
57
  with tempfile.TemporaryDirectory() as tmp:
45
58
  root = Path(tmp)
46
59
  target = root / "sample.txt"
47
60
  original = "alpha \n"
48
61
  target.write_text(original, encoding="utf-8")
49
62
 
50
- run(str(root), files=["*.py"])
63
+ run(filepatterns=[os.path.join(tmp, "*.py")])
51
64
 
52
65
  self.assertEqual(target.read_text(encoding="utf-8"), original)
53
66
 
54
67
  def test_binary_or_invalid_utf8_file_is_left_unchanged_on_decode_error(
55
68
  self: Self,
56
69
  ) -> None:
70
+ original: Any
71
+ root: Path
72
+ target: Path
73
+ tmp: str
57
74
  with tempfile.TemporaryDirectory() as tmp:
58
75
  root = Path(tmp)
59
76
  target = root / "bad.bin"
@@ -61,7 +78,7 @@ class JacobusRunTests(unittest.TestCase):
61
78
  target.write_bytes(original)
62
79
 
63
80
  with self.assertRaises(UnicodeDecodeError):
64
- run(str(root), files=["bad.bin"])
81
+ run(filepatterns=[str(target)])
65
82
 
66
83
  self.assertEqual(target.read_bytes(), original)
67
84
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jacobus
3
- Version: 2.0.0.dev0
3
+ Version: 2.0.1
4
4
  Summary: This project normalizes whitespace.
5
5
  Author-email: Johannes <johannes.programming@gmail.com>
6
6
  License-Expression: MIT
@@ -10,9 +10,6 @@ src/jacobus.egg-info/PKG-INFO
10
10
  src/jacobus.egg-info/SOURCES.txt
11
11
  src/jacobus.egg-info/dependency_links.txt
12
12
  src/jacobus.egg-info/top_level.txt
13
- src/jacobus/_const/Const.py
14
- src/jacobus/_const/__init__.py
15
- src/jacobus/_const/const.toml
16
13
  src/jacobus/core/__init__.py
17
14
  src/jacobus/tests/__init__.py
18
15
  src/jacobus/tests/test_jacobus_unittest.py
@@ -1,26 +0,0 @@
1
- import enum
2
- import functools
3
- import tomllib
4
- from importlib import resources
5
- from typing import Any, Self
6
-
7
- __all__ = ["Const"]
8
-
9
-
10
- class Const(enum.StrEnum):
11
- const = "jacobus.const/const.toml"
12
-
13
- @functools.cached_property
14
- def data(self: Self) -> dict[str, Any]:
15
- text: str
16
- text = resources.read_text(*self.value.split("/"))
17
- return tomllib.loads(text)
18
-
19
- @functools.cached_property
20
- def varia(self: Self) -> dict[str, Any]:
21
- ans: Any
22
- ans = self.data.get("varia")
23
- if isinstance(ans, dict):
24
- return ans
25
- else:
26
- return dict()
File without changes
@@ -1,5 +0,0 @@
1
- # internal constants
2
- # do not alter
3
-
4
- [varia]
5
- description = "This project normalizes whitespace."
File without changes
File without changes
File without changes
File without changes