git-cleaner-tui 2.1.0__tar.gz → 2.2.0__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.
Files changed (31) hide show
  1. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/PKG-INFO +2 -2
  2. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/README.md +1 -1
  3. git_cleaner_tui-2.2.0/logo/logo.png +0 -0
  4. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/pyproject.toml +1 -1
  5. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/src/git_cleaner/config.py +1 -1
  6. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/uv.lock +1 -1
  7. git_cleaner_tui-2.1.0/branches.csv +0 -1
  8. git_cleaner_tui-2.1.0/logo/ascii_banner.py +0 -15
  9. git_cleaner_tui-2.1.0/logo/concept1-horizontal.svg +0 -41
  10. git_cleaner_tui-2.1.0/logo/concept1-icon.svg +0 -36
  11. git_cleaner_tui-2.1.0/logo/concept2-horizontal.svg +0 -29
  12. git_cleaner_tui-2.1.0/logo/concept2-icon.svg +0 -25
  13. git_cleaner_tui-2.1.0/logo/favicon.svg +0 -31
  14. git_cleaner_tui-2.1.0/logo/logo-readme.svg +0 -40
  15. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/.gitignore +0 -0
  16. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/.superpowers/brainstorm/-1783610394.49273/state/server-stopped +0 -0
  17. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/.superpowers/brainstorm/brainstorm-1783610443.14345/state/server-stopped +0 -0
  18. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/.superpowers/brainstorm/brainstorm-1783610443.14345/state/server.err +0 -0
  19. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/.superpowers/brainstorm/brainstorm-1783610443.14345/state/server.log +0 -0
  20. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/.superpowers/brainstorm/brainstorm-1783610469.94912/content/sidebar-layouts.html +0 -0
  21. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/.superpowers/brainstorm/brainstorm-1783610469.94912/content/waiting.html +0 -0
  22. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/.superpowers/brainstorm/brainstorm-1783610469.94912/state/events +0 -0
  23. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/.superpowers/brainstorm/brainstorm-1783610469.94912/state/server-stopped +0 -0
  24. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/src/git_cleaner/__init__.py +0 -0
  25. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/src/git_cleaner/__main__.py +0 -0
  26. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/src/git_cleaner/app.py +0 -0
  27. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/src/git_cleaner/cli.py +0 -0
  28. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/src/git_cleaner/git_ops.py +0 -0
  29. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/tests/__init__.py +0 -0
  30. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/tests/test_config.py +0 -0
  31. {git_cleaner_tui-2.1.0 → git_cleaner_tui-2.2.0}/tests/test_git_ops.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: git-cleaner-tui
3
- Version: 2.1.0
3
+ Version: 2.2.0
4
4
  Summary: TUI tool for browsing and bulk-deleting git branches
5
5
  Author: git-cleaner
6
6
  Requires-Python: >=3.11
@@ -8,7 +8,7 @@ Requires-Dist: textual
8
8
  Requires-Dist: textual-timepiece>=0.7.0
9
9
  Description-Content-Type: text/markdown
10
10
 
11
- # Git Cleaner
11
+ ![Git Cleaner](https://raw.githubusercontent.com/Allentgt/Git-Cleaner/main/logo/logo.png)
12
12
 
13
13
  TUI tool for interactively browsing and bulk-deleting git branches, with repo maintenance (GC, repack, prune), a stash browser, and multi-repo bookmarks.
14
14
 
@@ -1,4 +1,4 @@
1
- # Git Cleaner
1
+ ![Git Cleaner](https://raw.githubusercontent.com/Allentgt/Git-Cleaner/main/logo/logo.png)
2
2
 
3
3
  TUI tool for interactively browsing and bulk-deleting git branches, with repo maintenance (GC, repack, prune), a stash browser, and multi-repo bookmarks.
4
4
 
Binary file
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "git-cleaner-tui"
3
- version = "2.1.0"
3
+ version = "2.2.0"
4
4
  description = "TUI tool for browsing and bulk-deleting git branches"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -101,7 +101,7 @@ def save_bookmarks(bookmarks: list[str]) -> None:
101
101
  in_section = False
102
102
  if not in_section:
103
103
  out.append(line)
104
- quoted = [f'"{p}"' for p in bookmarks]
104
+ quoted = [f"'{p}'" for p in bookmarks]
105
105
  out += ["", "[bookmarks]", f"paths = [{', '.join(quoted)}]"]
106
106
  _GLOBAL_CFG.write_text("\n".join(out) + "\n")
107
107
 
@@ -13,7 +13,7 @@ wheels = [
13
13
 
14
14
  [[package]]
15
15
  name = "git-cleaner-tui"
16
- version = "2.0.0"
16
+ version = "2.1.0"
17
17
  source = { editable = "." }
18
18
  dependencies = [
19
19
  { name = "textual" },
@@ -1 +0,0 @@
1
- name,author,date,age_days,ahead,behind
@@ -1,15 +0,0 @@
1
- """
2
- ASCII logo for git-cleaner TUI.
3
-
4
- Rendered in the terminal using box-drawing characters.
5
- Import and display as a Static widget with Rich markup.
6
- """
7
-
8
- BANNER = (
9
- "[bold #6366F1]"
10
- "╔═══╗ ╔═╗ ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗ ═╗ ╔╗ ╔═══╗\n"
11
- "║ ══╝ ║ ║ ║ ║ ║ ║ ║ ║ ══╝ ║ ║║ ║║ ║ ══╝\n"
12
- "║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║╚═╝║ ║ \n"
13
- "╚═╝ ╚═╝ ╚═══╝ ╚═══╝ ╚═══╝ ╚═╝ ╚═══╝ ╚═╝ ╚╝ ╚═══╝"
14
- "[/]"
15
- )
@@ -1,41 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 80" width="320" height="80" role="img" aria-labelledby="gc-logo-title">
2
- <title id="gc-logo-title">git-cleaner</title>
3
- <defs>
4
- <linearGradient id="broom-grad" x1="0%" y1="0%" x2="100%" y2="100%">
5
- <stop offset="0%" stop-color="#4F46E5"/>
6
- <stop offset="100%" stop-color="#6366F1"/>
7
- </linearGradient>
8
- <linearGradient id="sweep-grad" x1="0%" y1="0%" x2="100%" y2="100%">
9
- <stop offset="0%" stop-color="#10B981"/>
10
- <stop offset="100%" stop-color="#34D399"/>
11
- </linearGradient>
12
- <linearGradient id="bg-grad" x1="0%" y1="0%" x2="100%" y2="100%">
13
- <stop offset="0%" stop-color="#EEF2FF"/>
14
- <stop offset="100%" stop-color="#E0E7FF"/>
15
- </linearGradient>
16
- </defs>
17
-
18
- <!-- Circular badge background -->
19
- <circle cx="36" cy="40" r="32" fill="url(#bg-grad)"/>
20
- <circle cx="36" cy="40" r="32" fill="none" stroke="#4F46E5" stroke-width="2"/>
21
-
22
- <!-- Broom handle -->
23
- <line x1="14" y1="58" x2="44" y2="18" stroke="url(#broom-grad)" stroke-width="3.5" stroke-linecap="round"/>
24
-
25
- <!-- Broom bristles (fan shape) -->
26
- <line x1="42" y1="22" x2="52" y2="12" stroke="url(#sweep-grad)" stroke-width="3" stroke-linecap="round"/>
27
- <line x1="44" y1="26" x2="56" y2="18" stroke="url(#sweep-grad)" stroke-width="3" stroke-linecap="round"/>
28
- <line x1="44" y1="30" x2="58" y2="24" stroke="url(#sweep-grad)" stroke-width="3" stroke-linecap="round"/>
29
- <line x1="44" y1="34" x2="58" y2="30" stroke="url(#sweep-grad)" stroke-width="3" stroke-linecap="round"/>
30
- <line x1="42" y1="38" x2="56" y2="36" stroke="url(#sweep-grad)" stroke-width="3" stroke-linecap="round"/>
31
- <line x1="40" y1="42" x2="52" y2="42" stroke="url(#sweep-grad)" stroke-width="3" stroke-linecap="round"/>
32
-
33
- <!-- Git branch being swept (dot + branch line) -->
34
- <circle cx="50" cy="44" r="2" fill="#10B981" opacity="0.5"/>
35
- <path d="M48,48 Q52,44 52,36" stroke="#10B981" stroke-width="1.5" fill="none" opacity="0.4" stroke-linecap="round"/>
36
- <circle cx="52" cy="36" r="1.5" fill="#10B981" opacity="0.3"/>
37
-
38
- <!-- Text -->
39
- <text x="80" y="38" font-family="system-ui, -apple-system, sans-serif" font-size="24" font-weight="700" fill="#1F2937" letter-spacing="-0.3">git-cleaner</text>
40
- <text x="80" y="54" font-family="system-ui, -apple-system, sans-serif" font-size="11" fill="#6B7280" letter-spacing="2.5">MAINTENANCE &amp; CLEANUP</text>
41
- </svg>
@@ -1,36 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 72 72" width="72" height="72" role="img" aria-labelledby="gc-icon-title">
2
- <title id="gc-icon-title">git-cleaner icon</title>
3
- <defs>
4
- <linearGradient id="broom-grad" x1="0%" y1="0%" x2="100%" y2="100%">
5
- <stop offset="0%" stop-color="#4F46E5"/>
6
- <stop offset="100%" stop-color="#6366F1"/>
7
- </linearGradient>
8
- <linearGradient id="sweep-grad" x1="0%" y1="0%" x2="100%" y2="100%">
9
- <stop offset="0%" stop-color="#10B981"/>
10
- <stop offset="100%" stop-color="#34D399"/>
11
- </linearGradient>
12
- <linearGradient id="bg-grad" x1="0%" y1="0%" x2="100%" y2="100%">
13
- <stop offset="0%" stop-color="#EEF2FF"/>
14
- <stop offset="100%" stop-color="#E0E7FF"/>
15
- </linearGradient>
16
- </defs>
17
-
18
- <!-- Circular badge -->
19
- <circle cx="36" cy="36" r="34" fill="url(#bg-grad)"/>
20
- <circle cx="36" cy="36" r="34" fill="none" stroke="#4F46E5" stroke-width="2.5"/>
21
-
22
- <!-- Broom handle -->
23
- <line x1="12" y1="54" x2="44" y2="16" stroke="url(#broom-grad)" stroke-width="4" stroke-linecap="round"/>
24
-
25
- <!-- Broom bristles -->
26
- <line x1="42" y1="20" x2="52" y2="10" stroke="url(#sweep-grad)" stroke-width="3" stroke-linecap="round"/>
27
- <line x1="44" y1="24" x2="56" y2="16" stroke="url(#sweep-grad)" stroke-width="3" stroke-linecap="round"/>
28
- <line x1="44" y1="28" x2="58" y2="22" stroke="url(#sweep-grad)" stroke-width="3" stroke-linecap="round"/>
29
- <line x1="44" y1="32" x2="58" y2="28" stroke="url(#sweep-grad)" stroke-width="3" stroke-linecap="round"/>
30
- <line x1="42" y1="36" x2="56" y2="34" stroke="url(#sweep-grad)" stroke-width="3" stroke-linecap="round"/>
31
- <line x1="40" y1="40" x2="52" y2="40" stroke="url(#sweep-grad)" stroke-width="3" stroke-linecap="round"/>
32
-
33
- <!-- Git element being swept -->
34
- <circle cx="50" cy="42" r="2" fill="#10B981" opacity="0.5"/>
35
- <path d="M48,46 Q52,42 52,34" stroke="#10B981" stroke-width="1.5" fill="none" opacity="0.4" stroke-linecap="round"/>
36
- </svg>
@@ -1,29 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 80" width="300" height="80" role="img" aria-labelledby="gc2-logo-title">
2
- <title id="gc2-logo-title">git-cleaner</title>
3
- <defs>
4
- <linearGradient id="gc-grad" x1="0%" y1="0%" x2="100%" y2="100%">
5
- <stop offset="0%" stop-color="#4F46E5"/>
6
- <stop offset="100%" stop-color="#7C3AED"/>
7
- </linearGradient>
8
- <linearGradient id="accent-grad" x1="0%" y1="0%" x2="100%" y2="100%">
9
- <stop offset="0%" stop-color="#10B981"/>
10
- <stop offset="100%" stop-color="#059669"/>
11
- </linearGradient>
12
- </defs>
13
-
14
- <!-- Rounded square badge -->
15
- <rect x="4" y="8" width="64" height="64" rx="16" fill="url(#gc-grad)"/>
16
-
17
- <!-- Stylized "g" — descender forms broom handle -->
18
- <path d="M24,30 Q24,22 32,22 Q40,22 40,30 L40,42 Q40,52 32,54 Q26,55.5 22,50" stroke="#FFFFFF" stroke-width="3.5" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
19
-
20
- <!-- Stylized "c" — open curve, like a sweeping motion -->
21
- <path d="M52,30 Q50,22 42,22 Q34,22 34,34 L34,42 Q34,54 42,54 Q50,54 52,48" stroke="#FFFFFF" stroke-width="3.5" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
22
-
23
- <!-- Clean accent dot (the "sparkle" — something being cleaned) -->
24
- <circle cx="38" cy="28" r="2.5" fill="url(#accent-grad)"/>
25
-
26
- <!-- Text -->
27
- <text x="82" y="42" font-family="system-ui, -apple-system, sans-serif" font-size="24" font-weight="700" fill="#1F2937" letter-spacing="-0.3">git-cleaner</text>
28
- <text x="82" y="56" font-family="system-ui, -apple-system, sans-serif" font-size="10" fill="#6B7280" letter-spacing="2.5">MAINTENANCE &amp; CLEANUP</text>
29
- </svg>
@@ -1,25 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 72 72" width="72" height="72" role="img" aria-labelledby="gc2-icon-title">
2
- <title id="gc2-icon-title">git-cleaner icon</title>
3
- <defs>
4
- <linearGradient id="gc-grad" x1="0%" y1="0%" x2="100%" y2="100%">
5
- <stop offset="0%" stop-color="#4F46E5"/>
6
- <stop offset="100%" stop-color="#7C3AED"/>
7
- </linearGradient>
8
- <linearGradient id="accent-grad" x1="0%" y1="0%" x2="100%" y2="100%">
9
- <stop offset="0%" stop-color="#10B981"/>
10
- <stop offset="100%" stop-color="#059669"/>
11
- </linearGradient>
12
- </defs>
13
-
14
- <!-- Rounded square badge -->
15
- <rect x="4" y="4" width="64" height="64" rx="16" fill="url(#gc-grad)"/>
16
-
17
- <!-- Stylized "g" -->
18
- <path d="M24,26 Q24,18 32,18 Q40,18 40,26 L40,38 Q40,48 32,50 Q26,51.5 22,46" stroke="#FFFFFF" stroke-width="3.5" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
19
-
20
- <!-- Stylized "c" -->
21
- <path d="M52,26 Q50,18 42,18 Q34,18 34,30 L34,38 Q34,50 42,50 Q50,50 52,44" stroke="#FFFFFF" stroke-width="3.5" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
22
-
23
- <!-- Clean accent dot -->
24
- <circle cx="38" cy="24" r="2.5" fill="url(#accent-grad)"/>
25
- </svg>
@@ -1,31 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100" height="100" role="img" aria-labelledby="favicon-title">
2
- <title id="favicon-title">git-cleaner</title>
3
- <defs>
4
- <linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
5
- <stop offset="0%" stop-color="#EEF2FF"/>
6
- <stop offset="100%" stop-color="#E0E7FF"/>
7
- </linearGradient>
8
- <linearGradient id="handle" x1="0%" y1="0%" x2="100%" y2="100%">
9
- <stop offset="0%" stop-color="#4F46E5"/>
10
- <stop offset="100%" stop-color="#6366F1"/>
11
- </linearGradient>
12
- <linearGradient id="bristles" x1="0%" y1="0%" x2="100%" y2="100%">
13
- <stop offset="0%" stop-color="#10B981"/>
14
- <stop offset="100%" stop-color="#34D399"/>
15
- </linearGradient>
16
- </defs>
17
-
18
- <circle cx="50" cy="50" r="48" fill="url(#bg)"/>
19
- <circle cx="50" cy="50" r="48" fill="none" stroke="#4F46E5" stroke-width="2.5"/>
20
-
21
- <line x1="24" y1="70" x2="58" y2="28" stroke="url(#handle)" stroke-width="4" stroke-linecap="round"/>
22
- <line x1="56" y1="32" x2="66" y2="22" stroke="url(#bristles)" stroke-width="3" stroke-linecap="round"/>
23
- <line x1="58" y1="36" x2="70" y2="28" stroke="url(#bristles)" stroke-width="3" stroke-linecap="round"/>
24
- <line x1="58" y1="40" x2="72" y2="34" stroke="url(#bristles)" stroke-width="3" stroke-linecap="round"/>
25
- <line x1="58" y1="44" x2="72" y2="40" stroke="url(#bristles)" stroke-width="3" stroke-linecap="round"/>
26
- <line x1="56" y1="48" x2="70" y2="46" stroke="url(#bristles)" stroke-width="3" stroke-linecap="round"/>
27
- <line x1="54" y1="52" x2="66" y2="52" stroke="url(#bristles)" stroke-width="3" stroke-linecap="round"/>
28
-
29
- <circle cx="64" cy="54" r="2.5" fill="#10B981" opacity="0.5"/>
30
- <path d="M60,58 Q64,54 64,46" stroke="#10B981" stroke-width="1.5" fill="none" opacity="0.4" stroke-linecap="round"/>
31
- </svg>
@@ -1,40 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 120" width="400" height="120" role="img" aria-labelledby="readme-logo-title">
2
- <title id="readme-logo-title">git-cleaner</title>
3
- <defs>
4
- <linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
5
- <stop offset="0%" stop-color="#EEF2FF"/>
6
- <stop offset="100%" stop-color="#E0E7FF"/>
7
- </linearGradient>
8
- <linearGradient id="handle" x1="0%" y1="0%" x2="100%" y2="100%">
9
- <stop offset="0%" stop-color="#4F46E5"/>
10
- <stop offset="100%" stop-color="#6366F1"/>
11
- </linearGradient>
12
- <linearGradient id="bristles" x1="0%" y1="0%" x2="100%" y2="100%">
13
- <stop offset="0%" stop-color="#10B981"/>
14
- <stop offset="100%" stop-color="#34D399"/>
15
- </linearGradient>
16
- </defs>
17
-
18
- <!-- Logo badge -->
19
- <circle cx="52" cy="60" r="44" fill="url(#bg)"/>
20
- <circle cx="52" cy="60" r="44" fill="none" stroke="#4F46E5" stroke-width="2.5"/>
21
-
22
- <!-- Broom handle -->
23
- <line x1="26" y1="86" x2="64" y2="34" stroke="url(#handle)" stroke-width="4.5" stroke-linecap="round"/>
24
-
25
- <!-- Broom bristles -->
26
- <line x1="62" y1="38" x2="74" y2="26" stroke="url(#bristles)" stroke-width="3.5" stroke-linecap="round"/>
27
- <line x1="64" y1="42" x2="78" y2="32" stroke="url(#bristles)" stroke-width="3.5" stroke-linecap="round"/>
28
- <line x1="64" y1="46" x2="80" y2="38" stroke="url(#bristles)" stroke-width="3.5" stroke-linecap="round"/>
29
- <line x1="64" y1="50" x2="80" y2="44" stroke="url(#bristles)" stroke-width="3.5" stroke-linecap="round"/>
30
- <line x1="62" y1="54" x2="78" y2="50" stroke="url(#bristles)" stroke-width="3.5" stroke-linecap="round"/>
31
- <line x1="60" y1="58" x2="74" y2="56" stroke="url(#bristles)" stroke-width="3.5" stroke-linecap="round"/>
32
-
33
- <!-- Swept git branch -->
34
- <circle cx="72" cy="60" r="2.5" fill="#10B981" opacity="0.5"/>
35
- <path d="M68,64 Q72,60 72,50" stroke="#10B981" stroke-width="1.5" fill="none" opacity="0.4" stroke-linecap="round"/>
36
-
37
- <!-- Wordmark -->
38
- <text x="114" y="60" font-family="system-ui, -apple-system, sans-serif" font-size="34" font-weight="700" fill="#1F2937" letter-spacing="-0.5">git-cleaner</text>
39
- <text x="114" y="80" font-family="system-ui, -apple-system, sans-serif" font-size="12" fill="#6B7280" letter-spacing="3">MAINTENANCE &amp; CLEANUP</text>
40
- </svg>