Skip to content

Commit 4afd3a0

Browse files
Cleanup empty folders (#17)
1 parent f42de90 commit 4afd3a0

5 files changed

Lines changed: 227 additions & 5 deletions

File tree

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
repos:
22
- repo: https://github.com/astral-sh/ruff-pre-commit
3-
rev: v0.4.4
3+
rev: v0.4.8
44
hooks:
55
- id: ruff-format
66
- id: ruff

perdoo/__main__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,13 @@ def start(settings: Settings, force: bool = False) -> None:
366366
new_file.parent.mkdir(parents=True, exist_ok=True)
367367
shutil.move(file, new_file)
368368

369+
for folder in sorted(
370+
settings.collection_folder.rglob("*"), key=lambda p: len(p.parts), reverse=True
371+
):
372+
if folder.is_dir() and not any(folder.iterdir()):
373+
folder.rmdir()
374+
LOGGER.info("Deleted empty folder: %s", folder)
375+
369376

370377
def main() -> None:
371378
try:

pyproject.toml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ dependencies = [
3131
"mokkari@git+https://github.com/Buried-In-Code/mokkari ; python_version < \"3.10\"",
3232
"natsort >= 8.4.0",
3333
"pillow >= 10.3.0",
34-
"pydantic >= 2.7.1",
34+
"pydantic >= 2.7.3",
3535
"rarfile >= 4.2",
3636
"rich >= 13.7.1",
3737
"simyan >= 1.2.1",
@@ -51,9 +51,6 @@ requires-python = ">= 3.8"
5151
cb7 = [
5252
"py7zr >= 0.21.0"
5353
]
54-
dev = [
55-
"pre-commit >= 3.5.0"
56-
]
5754

5855
[project.scripts]
5956
Perdoo = "perdoo.__main__:main"
@@ -127,3 +124,8 @@ convention = "google"
127124

128125
[tool.ruff.lint.pyupgrade]
129126
keep-runtime-typing = true
127+
128+
[tool.rye]
129+
dev-dependencies = [
130+
"pre-commit >= 3.5.0"
131+
]

requirements-dev.lock

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
# generated by rye
2+
# use `rye lock` or `rye sync` to update this lockfile
3+
#
4+
# last locked with the following flags:
5+
# pre: false
6+
# features: ["cb7"]
7+
# all-features: false
8+
# with-sources: false
9+
# generate-hashes: false
10+
11+
-e file:.
12+
annotated-types==0.7.0
13+
# via pydantic
14+
brotli==1.1.0
15+
# via py7zr
16+
certifi==2024.6.2
17+
# via requests
18+
cfgv==3.4.0
19+
# via pre-commit
20+
charset-normalizer==3.3.2
21+
# via requests
22+
distlib==0.3.8
23+
# via virtualenv
24+
esak==1.3.2
25+
# via perdoo
26+
eval-type-backport==0.2.0
27+
# via mokkari
28+
# via perdoo
29+
# via simyan
30+
filelock==3.14.0
31+
# via virtualenv
32+
himon==0.5.0
33+
# via perdoo
34+
identify==2.5.36
35+
# via pre-commit
36+
idna==3.7
37+
# via requests
38+
inflate64==1.0.0
39+
# via py7zr
40+
markdown-it-py==3.0.0
41+
# via rich
42+
marshmallow==3.21.2
43+
# via esak
44+
mdurl==0.1.2
45+
# via markdown-it-py
46+
mokkari @ git+https://github.com/Buried-In-Code/mokkari@44658ea65af15a672f52bd8b9572ee43ce41238b
47+
# via perdoo
48+
multivolumefile==0.2.3
49+
# via py7zr
50+
natsort==8.4.0
51+
# via perdoo
52+
nodeenv==1.9.1
53+
# via pre-commit
54+
packaging==24.0
55+
# via marshmallow
56+
pillow==10.3.0
57+
# via perdoo
58+
platformdirs==4.2.2
59+
# via virtualenv
60+
pre-commit==3.5.0
61+
psutil==5.9.8
62+
# via py7zr
63+
py7zr==0.21.0
64+
# via perdoo
65+
pybcj==1.0.2
66+
# via py7zr
67+
pycryptodomex==3.20.0
68+
# via py7zr
69+
pydantic==2.7.3
70+
# via himon
71+
# via mokkari
72+
# via perdoo
73+
# via simyan
74+
pydantic-core==2.18.4
75+
# via pydantic
76+
pygments==2.18.0
77+
# via rich
78+
pyppmd==1.1.0
79+
# via py7zr
80+
pyyaml==6.0.1
81+
# via pre-commit
82+
pyzstd==0.16.0
83+
# via py7zr
84+
rarfile==4.2
85+
# via perdoo
86+
ratelimit==2.2.1
87+
# via himon
88+
# via mokkari
89+
# via simyan
90+
requests==2.32.3
91+
# via esak
92+
# via himon
93+
# via mokkari
94+
# via simyan
95+
rich==13.7.1
96+
# via perdoo
97+
simyan==1.2.1
98+
# via perdoo
99+
texttable==1.7.0
100+
# via py7zr
101+
tomli==2.0.1
102+
# via perdoo
103+
tomli-w==1.0.0
104+
# via perdoo
105+
typing-extensions==4.12.1
106+
# via annotated-types
107+
# via pydantic
108+
# via pydantic-core
109+
# via rich
110+
urllib3==2.2.1
111+
# via requests
112+
virtualenv==20.26.2
113+
# via pre-commit
114+
xmltodict==0.13.0
115+
# via perdoo

requirements.lock

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# generated by rye
2+
# use `rye lock` or `rye sync` to update this lockfile
3+
#
4+
# last locked with the following flags:
5+
# pre: false
6+
# features: ["cb7"]
7+
# all-features: false
8+
# with-sources: false
9+
# generate-hashes: false
10+
11+
-e file:.
12+
annotated-types==0.7.0
13+
# via pydantic
14+
brotli==1.1.0
15+
# via py7zr
16+
certifi==2024.6.2
17+
# via requests
18+
charset-normalizer==3.3.2
19+
# via requests
20+
esak==1.3.2
21+
# via perdoo
22+
eval-type-backport==0.2.0
23+
# via mokkari
24+
# via perdoo
25+
# via simyan
26+
himon==0.5.0
27+
# via perdoo
28+
idna==3.7
29+
# via requests
30+
inflate64==1.0.0
31+
# via py7zr
32+
markdown-it-py==3.0.0
33+
# via rich
34+
marshmallow==3.21.2
35+
# via esak
36+
mdurl==0.1.2
37+
# via markdown-it-py
38+
mokkari @ git+https://github.com/Buried-In-Code/mokkari@44658ea65af15a672f52bd8b9572ee43ce41238b
39+
# via perdoo
40+
multivolumefile==0.2.3
41+
# via py7zr
42+
natsort==8.4.0
43+
# via perdoo
44+
packaging==24.0
45+
# via marshmallow
46+
pillow==10.3.0
47+
# via perdoo
48+
psutil==5.9.8
49+
# via py7zr
50+
py7zr==0.21.0
51+
# via perdoo
52+
pybcj==1.0.2
53+
# via py7zr
54+
pycryptodomex==3.20.0
55+
# via py7zr
56+
pydantic==2.7.3
57+
# via himon
58+
# via mokkari
59+
# via perdoo
60+
# via simyan
61+
pydantic-core==2.18.4
62+
# via pydantic
63+
pygments==2.18.0
64+
# via rich
65+
pyppmd==1.1.0
66+
# via py7zr
67+
pyzstd==0.16.0
68+
# via py7zr
69+
rarfile==4.2
70+
# via perdoo
71+
ratelimit==2.2.1
72+
# via himon
73+
# via mokkari
74+
# via simyan
75+
requests==2.32.3
76+
# via esak
77+
# via himon
78+
# via mokkari
79+
# via simyan
80+
rich==13.7.1
81+
# via perdoo
82+
simyan==1.2.1
83+
# via perdoo
84+
texttable==1.7.0
85+
# via py7zr
86+
tomli==2.0.1
87+
# via perdoo
88+
tomli-w==1.0.0
89+
# via perdoo
90+
typing-extensions==4.12.1
91+
# via annotated-types
92+
# via pydantic
93+
# via pydantic-core
94+
# via rich
95+
urllib3==2.2.1
96+
# via requests
97+
xmltodict==0.13.0
98+
# via perdoo

0 commit comments

Comments
 (0)