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.
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/PKG-INFO +1 -1
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/pyproject.toml +1 -1
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/src/jacobus/core/__init__.py +8 -9
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/src/jacobus/tests/__init__.py +2 -0
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/src/jacobus/tests/test_jacobus_unittest.py +22 -5
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/src/jacobus.egg-info/PKG-INFO +1 -1
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/src/jacobus.egg-info/SOURCES.txt +0 -3
- jacobus-2.0.0.dev0/src/jacobus/_const/Const.py +0 -26
- jacobus-2.0.0.dev0/src/jacobus/_const/__init__.py +0 -0
- jacobus-2.0.0.dev0/src/jacobus/_const/const.toml +0 -5
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/LICENSE.txt +0 -0
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/MANIFEST.in +0 -0
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/README.rst +0 -0
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/setup.cfg +0 -0
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/src/jacobus/__init__.py +0 -0
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/src/jacobus/__main__.py +0 -0
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/src/jacobus/py.typed +0 -0
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/src/jacobus.egg-info/dependency_links.txt +0 -0
- {jacobus-2.0.0.dev0 → jacobus-2.0.1}/src/jacobus.egg-info/top_level.txt +0 -0
|
@@ -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=
|
|
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(
|
|
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
|
-
|
|
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,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(
|
|
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(
|
|
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(
|
|
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(
|
|
81
|
+
run(filepatterns=[str(target)])
|
|
65
82
|
|
|
66
83
|
self.assertEqual(target.read_bytes(), original)
|
|
67
84
|
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|