cli-dev-tip 0.1.0__tar.gz → 0.1.2__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. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/PKG-INFO +24 -13
  2. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/README.md +23 -12
  3. cli_dev_tip-0.1.2/assets/enable.svg +80 -0
  4. cli_dev_tip-0.1.2/assets/pause.svg +78 -0
  5. cli_dev_tip-0.1.2/assets/status.svg +156 -0
  6. cli_dev_tip-0.1.2/assets/tip.svg +87 -0
  7. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/dev_tip/hook.py +1 -1
  8. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/pyproject.toml +1 -1
  9. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/uv.lock +23 -23
  10. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/.gitignore +0 -0
  11. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/LICENSE +0 -0
  12. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/dev_tip/__init__.py +0 -0
  13. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/dev_tip/ai/__init__.py +0 -0
  14. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/dev_tip/ai/cache.py +0 -0
  15. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/dev_tip/ai/gemini.py +0 -0
  16. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/dev_tip/ai/openrouter.py +0 -0
  17. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/dev_tip/ai/prompt.py +0 -0
  18. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/dev_tip/ai/provider.py +0 -0
  19. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/dev_tip/cli.py +0 -0
  20. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/dev_tip/config.py +0 -0
  21. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/dev_tip/data/tips.yaml +0 -0
  22. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/dev_tip/history.py +0 -0
  23. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/dev_tip/prefetch.py +0 -0
  24. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/dev_tip/tips.py +0 -0
  25. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/tests/conftest.py +0 -0
  26. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/tests/test_cache.py +0 -0
  27. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/tests/test_cli.py +0 -0
  28. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/tests/test_config.py +0 -0
  29. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/tests/test_history.py +0 -0
  30. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/tests/test_hook.py +0 -0
  31. {cli_dev_tip-0.1.0 → cli_dev_tip-0.1.2}/tests/test_tips.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cli-dev-tip
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: Bite-sized developer tips in your terminal
5
5
  Project-URL: Homepage, https://github.com/My-CD-ROM/cli-dev-tip
6
6
  Project-URL: Repository, https://github.com/My-CD-ROM/cli-dev-tip
@@ -30,6 +30,10 @@ Description-Content-Type: text/markdown
30
30
 
31
31
  A terminal tool that helps developers learn continuously by showing bite-sized technical tips — right in the terminal, between commands.
32
32
 
33
+ <p align="center">
34
+ <img src="https://raw.githubusercontent.com/My-CD-ROM/cli-dev-tip/master/assets/tip.svg" width="600" alt="dev-tip showing a Python tip">
35
+ </p>
36
+
33
37
  ## What it does
34
38
 
35
39
  - Shows tips periodically during your shell session (every N commands or M minutes)
@@ -47,7 +51,15 @@ A terminal tool that helps developers learn continuously by showing bite-sized t
47
51
  uv tool install cli-dev-tip
48
52
  ```
49
53
 
50
- This makes `dev-tip` available globally from any terminal. No extra packages needed.
54
+ Also works with pip or pipx:
55
+
56
+ ```bash
57
+ pip install cli-dev-tip
58
+ # or
59
+ pipx install cli-dev-tip
60
+ ```
61
+
62
+ This makes `dev-tip` available globally from any terminal.
51
63
 
52
64
  ## Quick start
53
65
 
@@ -57,6 +69,10 @@ The recommended setup — AI-generated tips covering general IT topics, appearin
57
69
  dev-tip enable --provider gemini --key YOUR_GEMINI_API_KEY
58
70
  ```
59
71
 
72
+ <p align="center">
73
+ <img src="https://raw.githubusercontent.com/My-CD-ROM/cli-dev-tip/master/assets/enable.svg" width="600" alt="dev-tip enable output">
74
+ </p>
75
+
60
76
  Get a free Gemini API key at https://aistudio.google.com or a free OpenRouter key at https://openrouter.ai/keys.
61
77
 
62
78
  More examples:
@@ -161,10 +177,9 @@ Unknown topics produce a warning when using static tips (AI can handle any topic
161
177
 
162
178
  Temporarily stop tips without removing the hook:
163
179
 
164
- ```bash
165
- dev-tip pause # stops tips, hook stays installed
166
- dev-tip resume # starts tips again
167
- ```
180
+ <p align="center">
181
+ <img src="https://raw.githubusercontent.com/My-CD-ROM/cli-dev-tip/master/assets/pause.svg" width="600" alt="dev-tip pause and resume">
182
+ </p>
168
183
 
169
184
  This creates/removes a `.paused` file in `~/.dev-tip/`. The shell hook checks for it with a fast `[ -f ]` test — no Python invoked when paused.
170
185
 
@@ -172,9 +187,9 @@ This creates/removes a `.paused` file in `~/.dev-tip/`. The shell hook checks fo
172
187
 
173
188
  Show current configuration and diagnostics:
174
189
 
175
- ```bash
176
- dev-tip status
177
- ```
190
+ <p align="center">
191
+ <img src="https://raw.githubusercontent.com/My-CD-ROM/cli-dev-tip/master/assets/status.svg" width="600" alt="dev-tip status output">
192
+ </p>
178
193
 
179
194
  Displays hook state, pause status, config values, AI provider info, cache stats, and tip history count.
180
195
 
@@ -217,7 +232,3 @@ Settings are stored in `~/.dev-tip/config.toml`:
217
232
  ```
218
233
 
219
234
  Values passed via `dev-tip enable` flags are saved here automatically. Comments in the config file are preserved when values are updated.
220
-
221
- ## Status
222
-
223
- Early development — not yet published to PyPI.
@@ -2,6 +2,10 @@
2
2
 
3
3
  A terminal tool that helps developers learn continuously by showing bite-sized technical tips — right in the terminal, between commands.
4
4
 
5
+ <p align="center">
6
+ <img src="https://raw.githubusercontent.com/My-CD-ROM/cli-dev-tip/master/assets/tip.svg" width="600" alt="dev-tip showing a Python tip">
7
+ </p>
8
+
5
9
  ## What it does
6
10
 
7
11
  - Shows tips periodically during your shell session (every N commands or M minutes)
@@ -19,7 +23,15 @@ A terminal tool that helps developers learn continuously by showing bite-sized t
19
23
  uv tool install cli-dev-tip
20
24
  ```
21
25
 
22
- This makes `dev-tip` available globally from any terminal. No extra packages needed.
26
+ Also works with pip or pipx:
27
+
28
+ ```bash
29
+ pip install cli-dev-tip
30
+ # or
31
+ pipx install cli-dev-tip
32
+ ```
33
+
34
+ This makes `dev-tip` available globally from any terminal.
23
35
 
24
36
  ## Quick start
25
37
 
@@ -29,6 +41,10 @@ The recommended setup — AI-generated tips covering general IT topics, appearin
29
41
  dev-tip enable --provider gemini --key YOUR_GEMINI_API_KEY
30
42
  ```
31
43
 
44
+ <p align="center">
45
+ <img src="https://raw.githubusercontent.com/My-CD-ROM/cli-dev-tip/master/assets/enable.svg" width="600" alt="dev-tip enable output">
46
+ </p>
47
+
32
48
  Get a free Gemini API key at https://aistudio.google.com or a free OpenRouter key at https://openrouter.ai/keys.
33
49
 
34
50
  More examples:
@@ -133,10 +149,9 @@ Unknown topics produce a warning when using static tips (AI can handle any topic
133
149
 
134
150
  Temporarily stop tips without removing the hook:
135
151
 
136
- ```bash
137
- dev-tip pause # stops tips, hook stays installed
138
- dev-tip resume # starts tips again
139
- ```
152
+ <p align="center">
153
+ <img src="https://raw.githubusercontent.com/My-CD-ROM/cli-dev-tip/master/assets/pause.svg" width="600" alt="dev-tip pause and resume">
154
+ </p>
140
155
 
141
156
  This creates/removes a `.paused` file in `~/.dev-tip/`. The shell hook checks for it with a fast `[ -f ]` test — no Python invoked when paused.
142
157
 
@@ -144,9 +159,9 @@ This creates/removes a `.paused` file in `~/.dev-tip/`. The shell hook checks fo
144
159
 
145
160
  Show current configuration and diagnostics:
146
161
 
147
- ```bash
148
- dev-tip status
149
- ```
162
+ <p align="center">
163
+ <img src="https://raw.githubusercontent.com/My-CD-ROM/cli-dev-tip/master/assets/status.svg" width="600" alt="dev-tip status output">
164
+ </p>
150
165
 
151
166
  Displays hook state, pause status, config values, AI provider info, cache stats, and tip history count.
152
167
 
@@ -189,7 +204,3 @@ Settings are stored in `~/.dev-tip/config.toml`:
189
204
  ```
190
205
 
191
206
  Values passed via `dev-tip enable` flags are saved here automatically. Comments in the config file are preserved when values are updated.
192
-
193
- ## Status
194
-
195
- Early development — not yet published to PyPI.
@@ -0,0 +1,80 @@
1
+ <svg class="rich-terminal" viewBox="0 0 897 172.0" xmlns="http://www.w3.org/2000/svg">
2
+ <!-- Generated with Rich https://www.textualize.io -->
3
+ <style>
4
+
5
+ @font-face {
6
+ font-family: "Fira Code";
7
+ src: local("FiraCode-Regular"),
8
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
9
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
10
+ font-style: normal;
11
+ font-weight: 400;
12
+ }
13
+ @font-face {
14
+ font-family: "Fira Code";
15
+ src: local("FiraCode-Bold"),
16
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
17
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
18
+ font-style: bold;
19
+ font-weight: 700;
20
+ }
21
+
22
+ .terminal-3667420291-matrix {
23
+ font-family: Fira Code, monospace;
24
+ font-size: 20px;
25
+ line-height: 24.4px;
26
+ font-variant-east-asian: full-width;
27
+ }
28
+
29
+ .terminal-3667420291-title {
30
+ font-size: 18px;
31
+ font-weight: bold;
32
+ font-family: arial;
33
+ }
34
+
35
+ .terminal-3667420291-r1 { fill: #c5c8c6 }
36
+ .terminal-3667420291-r2 { fill: #98a84b;font-weight: bold }
37
+ .terminal-3667420291-r3 { fill: #868887 }
38
+ .terminal-3667420291-r4 { fill: #8d7b39 }
39
+ .terminal-3667420291-r5 { fill: #98a84b }
40
+ .terminal-3667420291-r6 { fill: #68a0b3;font-weight: bold }
41
+ .terminal-3667420291-r7 { fill: #c5c8c6;font-weight: bold }
42
+ </style>
43
+
44
+ <defs>
45
+ <clipPath id="terminal-3667420291-clip-terminal">
46
+ <rect x="0" y="0" width="877.4" height="121.0" />
47
+ </clipPath>
48
+ <clipPath id="terminal-3667420291-line-0">
49
+ <rect x="0" y="1.5" width="878.4" height="24.65"/>
50
+ </clipPath>
51
+ <clipPath id="terminal-3667420291-line-1">
52
+ <rect x="0" y="25.9" width="878.4" height="24.65"/>
53
+ </clipPath>
54
+ <clipPath id="terminal-3667420291-line-2">
55
+ <rect x="0" y="50.3" width="878.4" height="24.65"/>
56
+ </clipPath>
57
+ <clipPath id="terminal-3667420291-line-3">
58
+ <rect x="0" y="74.7" width="878.4" height="24.65"/>
59
+ </clipPath>
60
+ </defs>
61
+
62
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="895" height="170" rx="8"/><text class="terminal-3667420291-title" fill="#c5c8c6" text-anchor="middle" x="447" y="27">dev-tip&#160;enable</text>
63
+ <g transform="translate(26,22)">
64
+ <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
65
+ <circle cx="22" cy="0" r="7" fill="#febc2e"/>
66
+ <circle cx="44" cy="0" r="7" fill="#28c840"/>
67
+ </g>
68
+
69
+ <g transform="translate(9, 41)" clip-path="url(#terminal-3667420291-clip-terminal)">
70
+
71
+ <g class="terminal-3667420291-matrix">
72
+ <text class="terminal-3667420291-r1" x="0" y="20" textLength="24.4" clip-path="url(#terminal-3667420291-line-0)">$&#160;</text><text class="terminal-3667420291-r2" x="24.4" y="20" textLength="524.6" clip-path="url(#terminal-3667420291-line-0)">dev-tip&#160;enable&#160;--provider&#160;gemini&#160;--key&#160;AIza</text><text class="terminal-3667420291-r2" x="549" y="20" textLength="36.6" clip-path="url(#terminal-3667420291-line-0)">...</text><text class="terminal-3667420291-r1" x="878.4" y="20" textLength="12.2" clip-path="url(#terminal-3667420291-line-0)">
73
+ </text><text class="terminal-3667420291-r3" x="0" y="44.4" textLength="451.4" clip-path="url(#terminal-3667420291-line-1)">Pre-caching&#160;AI&#160;tips&#160;in&#160;the&#160;background</text><text class="terminal-3667420291-r4" x="451.4" y="44.4" textLength="36.6" clip-path="url(#terminal-3667420291-line-1)">...</text><text class="terminal-3667420291-r1" x="878.4" y="44.4" textLength="12.2" clip-path="url(#terminal-3667420291-line-1)">
74
+ </text><text class="terminal-3667420291-r5" x="0" y="68.8" textLength="219.6" clip-path="url(#terminal-3667420291-line-2)">Hook&#160;installed&#160;in&#160;</text><text class="terminal-3667420291-r5" x="219.6" y="68.8" textLength="134.2" clip-path="url(#terminal-3667420291-line-2)">/home/user/</text><text class="terminal-3667420291-r5" x="353.8" y="68.8" textLength="73.2" clip-path="url(#terminal-3667420291-line-2)">.zshrc</text><text class="terminal-3667420291-r1" x="878.4" y="68.8" textLength="12.2" clip-path="url(#terminal-3667420291-line-2)">
75
+ </text><text class="terminal-3667420291-r1" x="0" y="93.2" textLength="280.6" clip-path="url(#terminal-3667420291-line-3)">Tips&#160;will&#160;appear&#160;every&#160;</text><text class="terminal-3667420291-r6" x="280.6" y="93.2" textLength="24.4" clip-path="url(#terminal-3667420291-line-3)">15</text><text class="terminal-3667420291-r1" x="305" y="93.2" textLength="158.6" clip-path="url(#terminal-3667420291-line-3)">&#160;commands&#160;or&#160;</text><text class="terminal-3667420291-r6" x="463.6" y="93.2" textLength="24.4" clip-path="url(#terminal-3667420291-line-3)">30</text><text class="terminal-3667420291-r1" x="488" y="93.2" textLength="109.8" clip-path="url(#terminal-3667420291-line-3)">&#160;minutes.</text><text class="terminal-3667420291-r1" x="878.4" y="93.2" textLength="12.2" clip-path="url(#terminal-3667420291-line-3)">
76
+ </text><text class="terminal-3667420291-r1" x="0" y="117.6" textLength="231.8" clip-path="url(#terminal-3667420291-line-4)">Reload&#160;your&#160;shell:&#160;</text><text class="terminal-3667420291-r7" x="231.8" y="117.6" textLength="97.6" clip-path="url(#terminal-3667420291-line-4)">exec&#160;zsh</text><text class="terminal-3667420291-r1" x="878.4" y="117.6" textLength="12.2" clip-path="url(#terminal-3667420291-line-4)">
77
+ </text>
78
+ </g>
79
+ </g>
80
+ </svg>
@@ -0,0 +1,78 @@
1
+ <svg class="rich-terminal" viewBox="0 0 897 172.0" xmlns="http://www.w3.org/2000/svg">
2
+ <!-- Generated with Rich https://www.textualize.io -->
3
+ <style>
4
+
5
+ @font-face {
6
+ font-family: "Fira Code";
7
+ src: local("FiraCode-Regular"),
8
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
9
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
10
+ font-style: normal;
11
+ font-weight: 400;
12
+ }
13
+ @font-face {
14
+ font-family: "Fira Code";
15
+ src: local("FiraCode-Bold"),
16
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
17
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
18
+ font-style: bold;
19
+ font-weight: 700;
20
+ }
21
+
22
+ .terminal-183878303-matrix {
23
+ font-family: Fira Code, monospace;
24
+ font-size: 20px;
25
+ line-height: 24.4px;
26
+ font-variant-east-asian: full-width;
27
+ }
28
+
29
+ .terminal-183878303-title {
30
+ font-size: 18px;
31
+ font-weight: bold;
32
+ font-family: arial;
33
+ }
34
+
35
+ .terminal-183878303-r1 { fill: #c5c8c6 }
36
+ .terminal-183878303-r2 { fill: #98a84b;font-weight: bold }
37
+ .terminal-183878303-r3 { fill: #d0b344 }
38
+ .terminal-183878303-r4 { fill: #c5c8c6;font-weight: bold }
39
+ .terminal-183878303-r5 { fill: #98a84b }
40
+ </style>
41
+
42
+ <defs>
43
+ <clipPath id="terminal-183878303-clip-terminal">
44
+ <rect x="0" y="0" width="877.4" height="121.0" />
45
+ </clipPath>
46
+ <clipPath id="terminal-183878303-line-0">
47
+ <rect x="0" y="1.5" width="878.4" height="24.65"/>
48
+ </clipPath>
49
+ <clipPath id="terminal-183878303-line-1">
50
+ <rect x="0" y="25.9" width="878.4" height="24.65"/>
51
+ </clipPath>
52
+ <clipPath id="terminal-183878303-line-2">
53
+ <rect x="0" y="50.3" width="878.4" height="24.65"/>
54
+ </clipPath>
55
+ <clipPath id="terminal-183878303-line-3">
56
+ <rect x="0" y="74.7" width="878.4" height="24.65"/>
57
+ </clipPath>
58
+ </defs>
59
+
60
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="895" height="170" rx="8"/><text class="terminal-183878303-title" fill="#c5c8c6" text-anchor="middle" x="447" y="27">dev-tip&#160;pause&#160;/&#160;resume</text>
61
+ <g transform="translate(26,22)">
62
+ <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
63
+ <circle cx="22" cy="0" r="7" fill="#febc2e"/>
64
+ <circle cx="44" cy="0" r="7" fill="#28c840"/>
65
+ </g>
66
+
67
+ <g transform="translate(9, 41)" clip-path="url(#terminal-183878303-clip-terminal)">
68
+
69
+ <g class="terminal-183878303-matrix">
70
+ <text class="terminal-183878303-r1" x="0" y="20" textLength="24.4" clip-path="url(#terminal-183878303-line-0)">$&#160;</text><text class="terminal-183878303-r2" x="24.4" y="20" textLength="158.6" clip-path="url(#terminal-183878303-line-0)">dev-tip&#160;pause</text><text class="terminal-183878303-r1" x="878.4" y="20" textLength="12.2" clip-path="url(#terminal-183878303-line-0)">
71
+ </text><text class="terminal-183878303-r3" x="0" y="44.4" textLength="146.4" clip-path="url(#terminal-183878303-line-1)">Tips&#160;paused.</text><text class="terminal-183878303-r1" x="146.4" y="44.4" textLength="61" clip-path="url(#terminal-183878303-line-1)">&#160;Run&#160;</text><text class="terminal-183878303-r4" x="207.4" y="44.4" textLength="170.8" clip-path="url(#terminal-183878303-line-1)">dev-tip&#160;resume</text><text class="terminal-183878303-r1" x="378.2" y="44.4" textLength="158.6" clip-path="url(#terminal-183878303-line-1)">&#160;to&#160;continue.</text><text class="terminal-183878303-r1" x="878.4" y="44.4" textLength="12.2" clip-path="url(#terminal-183878303-line-1)">
72
+ </text><text class="terminal-183878303-r1" x="878.4" y="68.8" textLength="12.2" clip-path="url(#terminal-183878303-line-2)">
73
+ </text><text class="terminal-183878303-r1" x="0" y="93.2" textLength="24.4" clip-path="url(#terminal-183878303-line-3)">$&#160;</text><text class="terminal-183878303-r2" x="24.4" y="93.2" textLength="170.8" clip-path="url(#terminal-183878303-line-3)">dev-tip&#160;resume</text><text class="terminal-183878303-r1" x="878.4" y="93.2" textLength="12.2" clip-path="url(#terminal-183878303-line-3)">
74
+ </text><text class="terminal-183878303-r5" x="0" y="117.6" textLength="158.6" clip-path="url(#terminal-183878303-line-4)">Tips&#160;resumed.</text><text class="terminal-183878303-r1" x="878.4" y="117.6" textLength="12.2" clip-path="url(#terminal-183878303-line-4)">
75
+ </text>
76
+ </g>
77
+ </g>
78
+ </svg>
@@ -0,0 +1,156 @@
1
+ <svg class="rich-terminal" viewBox="0 0 897 635.5999999999999" xmlns="http://www.w3.org/2000/svg">
2
+ <!-- Generated with Rich https://www.textualize.io -->
3
+ <style>
4
+
5
+ @font-face {
6
+ font-family: "Fira Code";
7
+ src: local("FiraCode-Regular"),
8
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
9
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
10
+ font-style: normal;
11
+ font-weight: 400;
12
+ }
13
+ @font-face {
14
+ font-family: "Fira Code";
15
+ src: local("FiraCode-Bold"),
16
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
17
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
18
+ font-style: bold;
19
+ font-weight: 700;
20
+ }
21
+
22
+ .terminal-2122747316-matrix {
23
+ font-family: Fira Code, monospace;
24
+ font-size: 20px;
25
+ line-height: 24.4px;
26
+ font-variant-east-asian: full-width;
27
+ }
28
+
29
+ .terminal-2122747316-title {
30
+ font-size: 18px;
31
+ font-weight: bold;
32
+ font-family: arial;
33
+ }
34
+
35
+ .terminal-2122747316-r1 { fill: #c5c8c6;font-weight: bold }
36
+ .terminal-2122747316-r2 { fill: #c5c8c6 }
37
+ .terminal-2122747316-r3 { fill: #98a84b }
38
+ .terminal-2122747316-r4 { fill: #868887 }
39
+ .terminal-2122747316-r5 { fill: #68a0b3;font-weight: bold }
40
+ .terminal-2122747316-r6 { fill: #ff2627;font-style: italic; }
41
+ .terminal-2122747316-r7 { fill: #d0b344 }
42
+ </style>
43
+
44
+ <defs>
45
+ <clipPath id="terminal-2122747316-clip-terminal">
46
+ <rect x="0" y="0" width="877.4" height="584.5999999999999" />
47
+ </clipPath>
48
+ <clipPath id="terminal-2122747316-line-0">
49
+ <rect x="0" y="1.5" width="878.4" height="24.65"/>
50
+ </clipPath>
51
+ <clipPath id="terminal-2122747316-line-1">
52
+ <rect x="0" y="25.9" width="878.4" height="24.65"/>
53
+ </clipPath>
54
+ <clipPath id="terminal-2122747316-line-2">
55
+ <rect x="0" y="50.3" width="878.4" height="24.65"/>
56
+ </clipPath>
57
+ <clipPath id="terminal-2122747316-line-3">
58
+ <rect x="0" y="74.7" width="878.4" height="24.65"/>
59
+ </clipPath>
60
+ <clipPath id="terminal-2122747316-line-4">
61
+ <rect x="0" y="99.1" width="878.4" height="24.65"/>
62
+ </clipPath>
63
+ <clipPath id="terminal-2122747316-line-5">
64
+ <rect x="0" y="123.5" width="878.4" height="24.65"/>
65
+ </clipPath>
66
+ <clipPath id="terminal-2122747316-line-6">
67
+ <rect x="0" y="147.9" width="878.4" height="24.65"/>
68
+ </clipPath>
69
+ <clipPath id="terminal-2122747316-line-7">
70
+ <rect x="0" y="172.3" width="878.4" height="24.65"/>
71
+ </clipPath>
72
+ <clipPath id="terminal-2122747316-line-8">
73
+ <rect x="0" y="196.7" width="878.4" height="24.65"/>
74
+ </clipPath>
75
+ <clipPath id="terminal-2122747316-line-9">
76
+ <rect x="0" y="221.1" width="878.4" height="24.65"/>
77
+ </clipPath>
78
+ <clipPath id="terminal-2122747316-line-10">
79
+ <rect x="0" y="245.5" width="878.4" height="24.65"/>
80
+ </clipPath>
81
+ <clipPath id="terminal-2122747316-line-11">
82
+ <rect x="0" y="269.9" width="878.4" height="24.65"/>
83
+ </clipPath>
84
+ <clipPath id="terminal-2122747316-line-12">
85
+ <rect x="0" y="294.3" width="878.4" height="24.65"/>
86
+ </clipPath>
87
+ <clipPath id="terminal-2122747316-line-13">
88
+ <rect x="0" y="318.7" width="878.4" height="24.65"/>
89
+ </clipPath>
90
+ <clipPath id="terminal-2122747316-line-14">
91
+ <rect x="0" y="343.1" width="878.4" height="24.65"/>
92
+ </clipPath>
93
+ <clipPath id="terminal-2122747316-line-15">
94
+ <rect x="0" y="367.5" width="878.4" height="24.65"/>
95
+ </clipPath>
96
+ <clipPath id="terminal-2122747316-line-16">
97
+ <rect x="0" y="391.9" width="878.4" height="24.65"/>
98
+ </clipPath>
99
+ <clipPath id="terminal-2122747316-line-17">
100
+ <rect x="0" y="416.3" width="878.4" height="24.65"/>
101
+ </clipPath>
102
+ <clipPath id="terminal-2122747316-line-18">
103
+ <rect x="0" y="440.7" width="878.4" height="24.65"/>
104
+ </clipPath>
105
+ <clipPath id="terminal-2122747316-line-19">
106
+ <rect x="0" y="465.1" width="878.4" height="24.65"/>
107
+ </clipPath>
108
+ <clipPath id="terminal-2122747316-line-20">
109
+ <rect x="0" y="489.5" width="878.4" height="24.65"/>
110
+ </clipPath>
111
+ <clipPath id="terminal-2122747316-line-21">
112
+ <rect x="0" y="513.9" width="878.4" height="24.65"/>
113
+ </clipPath>
114
+ <clipPath id="terminal-2122747316-line-22">
115
+ <rect x="0" y="538.3" width="878.4" height="24.65"/>
116
+ </clipPath>
117
+ </defs>
118
+
119
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="895" height="633.6" rx="8"/><text class="terminal-2122747316-title" fill="#c5c8c6" text-anchor="middle" x="447" y="27">dev-tip&#160;status</text>
120
+ <g transform="translate(26,22)">
121
+ <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
122
+ <circle cx="22" cy="0" r="7" fill="#febc2e"/>
123
+ <circle cx="44" cy="0" r="7" fill="#28c840"/>
124
+ </g>
125
+
126
+ <g transform="translate(9, 41)" clip-path="url(#terminal-2122747316-clip-terminal)">
127
+
128
+ <g class="terminal-2122747316-matrix">
129
+ <text class="terminal-2122747316-r1" x="0" y="20" textLength="170.8" clip-path="url(#terminal-2122747316-line-0)">dev-tip&#160;status</text><text class="terminal-2122747316-r2" x="878.4" y="20" textLength="12.2" clip-path="url(#terminal-2122747316-line-0)">
130
+ </text><text class="terminal-2122747316-r2" x="878.4" y="44.4" textLength="12.2" clip-path="url(#terminal-2122747316-line-1)">
131
+ </text><text class="terminal-2122747316-r2" x="0" y="68.8" textLength="134.2" clip-path="url(#terminal-2122747316-line-2)">&#160;&#160;Hook:&#160;&#160;&#160;&#160;</text><text class="terminal-2122747316-r3" x="134.2" y="68.8" textLength="109.8" clip-path="url(#terminal-2122747316-line-2)">installed</text><text class="terminal-2122747316-r1" x="256.2" y="68.8" textLength="12.2" clip-path="url(#terminal-2122747316-line-2)">(</text><text class="terminal-2122747316-r2" x="268.4" y="68.8" textLength="73.2" clip-path="url(#terminal-2122747316-line-2)">.zshrc</text><text class="terminal-2122747316-r1" x="341.6" y="68.8" textLength="12.2" clip-path="url(#terminal-2122747316-line-2)">)</text><text class="terminal-2122747316-r2" x="878.4" y="68.8" textLength="12.2" clip-path="url(#terminal-2122747316-line-2)">
132
+ </text><text class="terminal-2122747316-r2" x="0" y="93.2" textLength="134.2" clip-path="url(#terminal-2122747316-line-3)">&#160;&#160;Paused:&#160;&#160;</text><text class="terminal-2122747316-r3" x="134.2" y="93.2" textLength="24.4" clip-path="url(#terminal-2122747316-line-3)">no</text><text class="terminal-2122747316-r2" x="878.4" y="93.2" textLength="12.2" clip-path="url(#terminal-2122747316-line-3)">
133
+ </text><text class="terminal-2122747316-r2" x="878.4" y="117.6" textLength="12.2" clip-path="url(#terminal-2122747316-line-4)">
134
+ </text><text class="terminal-2122747316-r1" x="0" y="142" textLength="97.6" clip-path="url(#terminal-2122747316-line-5)">&#160;&#160;Config</text><text class="terminal-2122747316-r2" x="878.4" y="142" textLength="12.2" clip-path="url(#terminal-2122747316-line-5)">
135
+ </text><text class="terminal-2122747316-r2" x="0" y="166.4" textLength="244" clip-path="url(#terminal-2122747316-line-6)">&#160;&#160;&#160;&#160;topic:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-2122747316-r4" x="244" y="166.4" textLength="36.6" clip-path="url(#terminal-2122747316-line-6)">any</text><text class="terminal-2122747316-r2" x="878.4" y="166.4" textLength="12.2" clip-path="url(#terminal-2122747316-line-6)">
136
+ </text><text class="terminal-2122747316-r2" x="0" y="190.8" textLength="244" clip-path="url(#terminal-2122747316-line-7)">&#160;&#160;&#160;&#160;level:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-2122747316-r4" x="244" y="190.8" textLength="36.6" clip-path="url(#terminal-2122747316-line-7)">any</text><text class="terminal-2122747316-r2" x="878.4" y="190.8" textLength="12.2" clip-path="url(#terminal-2122747316-line-7)">
137
+ </text><text class="terminal-2122747316-r2" x="0" y="215.2" textLength="244" clip-path="url(#terminal-2122747316-line-8)">&#160;&#160;&#160;&#160;every_commands:&#160;</text><text class="terminal-2122747316-r5" x="244" y="215.2" textLength="24.4" clip-path="url(#terminal-2122747316-line-8)">15</text><text class="terminal-2122747316-r2" x="878.4" y="215.2" textLength="12.2" clip-path="url(#terminal-2122747316-line-8)">
138
+ </text><text class="terminal-2122747316-r2" x="0" y="239.6" textLength="244" clip-path="url(#terminal-2122747316-line-9)">&#160;&#160;&#160;&#160;every_minutes:&#160;&#160;</text><text class="terminal-2122747316-r5" x="244" y="239.6" textLength="24.4" clip-path="url(#terminal-2122747316-line-9)">30</text><text class="terminal-2122747316-r2" x="878.4" y="239.6" textLength="12.2" clip-path="url(#terminal-2122747316-line-9)">
139
+ </text><text class="terminal-2122747316-r2" x="0" y="264" textLength="244" clip-path="url(#terminal-2122747316-line-10)">&#160;&#160;&#160;&#160;quiet:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="terminal-2122747316-r6" x="244" y="264" textLength="61" clip-path="url(#terminal-2122747316-line-10)">False</text><text class="terminal-2122747316-r2" x="878.4" y="264" textLength="12.2" clip-path="url(#terminal-2122747316-line-10)">
140
+ </text><text class="terminal-2122747316-r2" x="878.4" y="288.4" textLength="12.2" clip-path="url(#terminal-2122747316-line-11)">
141
+ </text><text class="terminal-2122747316-r1" x="0" y="312.8" textLength="48.8" clip-path="url(#terminal-2122747316-line-12)">&#160;&#160;AI</text><text class="terminal-2122747316-r2" x="878.4" y="312.8" textLength="12.2" clip-path="url(#terminal-2122747316-line-12)">
142
+ </text><text class="terminal-2122747316-r2" x="0" y="337.2" textLength="244" clip-path="url(#terminal-2122747316-line-13)">&#160;&#160;&#160;&#160;provider:&#160;gemini</text><text class="terminal-2122747316-r2" x="878.4" y="337.2" textLength="12.2" clip-path="url(#terminal-2122747316-line-13)">
143
+ </text><text class="terminal-2122747316-r2" x="0" y="361.6" textLength="170.8" clip-path="url(#terminal-2122747316-line-14)">&#160;&#160;&#160;&#160;model:&#160;&#160;&#160;&#160;</text><text class="terminal-2122747316-r4" x="170.8" y="361.6" textLength="85.4" clip-path="url(#terminal-2122747316-line-14)">default</text><text class="terminal-2122747316-r2" x="878.4" y="361.6" textLength="12.2" clip-path="url(#terminal-2122747316-line-14)">
144
+ </text><text class="terminal-2122747316-r2" x="0" y="386" textLength="219.6" clip-path="url(#terminal-2122747316-line-15)">&#160;&#160;&#160;&#160;key:&#160;&#160;&#160;&#160;&#160;&#160;AIza</text><text class="terminal-2122747316-r7" x="219.6" y="386" textLength="36.6" clip-path="url(#terminal-2122747316-line-15)">...</text><text class="terminal-2122747316-r2" x="256.2" y="386" textLength="48.8" clip-path="url(#terminal-2122747316-line-15)">X9kM</text><text class="terminal-2122747316-r2" x="878.4" y="386" textLength="12.2" clip-path="url(#terminal-2122747316-line-15)">
145
+ </text><text class="terminal-2122747316-r2" x="878.4" y="410.4" textLength="12.2" clip-path="url(#terminal-2122747316-line-16)">
146
+ </text><text class="terminal-2122747316-r1" x="0" y="434.8" textLength="85.4" clip-path="url(#terminal-2122747316-line-17)">&#160;&#160;Cache</text><text class="terminal-2122747316-r2" x="878.4" y="434.8" textLength="12.2" clip-path="url(#terminal-2122747316-line-17)">
147
+ </text><text class="terminal-2122747316-r2" x="0" y="459.2" textLength="219.6" clip-path="url(#terminal-2122747316-line-18)">&#160;&#160;&#160;&#160;cached&#160;keys:&#160;&#160;</text><text class="terminal-2122747316-r5" x="219.6" y="459.2" textLength="12.2" clip-path="url(#terminal-2122747316-line-18)">2</text><text class="terminal-2122747316-r2" x="878.4" y="459.2" textLength="12.2" clip-path="url(#terminal-2122747316-line-18)">
148
+ </text><text class="terminal-2122747316-r2" x="0" y="483.6" textLength="219.6" clip-path="url(#terminal-2122747316-line-19)">&#160;&#160;&#160;&#160;total&#160;tips:&#160;&#160;&#160;</text><text class="terminal-2122747316-r5" x="219.6" y="483.6" textLength="24.4" clip-path="url(#terminal-2122747316-line-19)">20</text><text class="terminal-2122747316-r2" x="878.4" y="483.6" textLength="12.2" clip-path="url(#terminal-2122747316-line-19)">
149
+ </text><text class="terminal-2122747316-r2" x="0" y="508" textLength="244" clip-path="url(#terminal-2122747316-line-20)">&#160;&#160;&#160;&#160;cooldown:&#160;&#160;&#160;&#160;&#160;no</text><text class="terminal-2122747316-r2" x="878.4" y="508" textLength="12.2" clip-path="url(#terminal-2122747316-line-20)">
150
+ </text><text class="terminal-2122747316-r2" x="878.4" y="532.4" textLength="12.2" clip-path="url(#terminal-2122747316-line-21)">
151
+ </text><text class="terminal-2122747316-r1" x="0" y="556.8" textLength="109.8" clip-path="url(#terminal-2122747316-line-22)">&#160;&#160;History</text><text class="terminal-2122747316-r2" x="878.4" y="556.8" textLength="12.2" clip-path="url(#terminal-2122747316-line-22)">
152
+ </text><text class="terminal-2122747316-r2" x="0" y="581.2" textLength="183" clip-path="url(#terminal-2122747316-line-23)">&#160;&#160;&#160;&#160;tips&#160;seen:&#160;</text><text class="terminal-2122747316-r5" x="183" y="581.2" textLength="24.4" clip-path="url(#terminal-2122747316-line-23)">47</text><text class="terminal-2122747316-r2" x="878.4" y="581.2" textLength="12.2" clip-path="url(#terminal-2122747316-line-23)">
153
+ </text>
154
+ </g>
155
+ </g>
156
+ </svg>
@@ -0,0 +1,87 @@
1
+ <svg class="rich-terminal" viewBox="0 0 897 245.2" xmlns="http://www.w3.org/2000/svg">
2
+ <!-- Generated with Rich https://www.textualize.io -->
3
+ <style>
4
+
5
+ @font-face {
6
+ font-family: "Fira Code";
7
+ src: local("FiraCode-Regular"),
8
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
9
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
10
+ font-style: normal;
11
+ font-weight: 400;
12
+ }
13
+ @font-face {
14
+ font-family: "Fira Code";
15
+ src: local("FiraCode-Bold"),
16
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
17
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
18
+ font-style: bold;
19
+ font-weight: 700;
20
+ }
21
+
22
+ .terminal-2291773011-matrix {
23
+ font-family: Fira Code, monospace;
24
+ font-size: 20px;
25
+ line-height: 24.4px;
26
+ font-variant-east-asian: full-width;
27
+ }
28
+
29
+ .terminal-2291773011-title {
30
+ font-size: 18px;
31
+ font-weight: bold;
32
+ font-family: arial;
33
+ }
34
+
35
+ .terminal-2291773011-r1 { fill: #c5c8c6 }
36
+ .terminal-2291773011-r2 { fill: #868887 }
37
+ </style>
38
+
39
+ <defs>
40
+ <clipPath id="terminal-2291773011-clip-terminal">
41
+ <rect x="0" y="0" width="877.4" height="194.2" />
42
+ </clipPath>
43
+ <clipPath id="terminal-2291773011-line-0">
44
+ <rect x="0" y="1.5" width="878.4" height="24.65"/>
45
+ </clipPath>
46
+ <clipPath id="terminal-2291773011-line-1">
47
+ <rect x="0" y="25.9" width="878.4" height="24.65"/>
48
+ </clipPath>
49
+ <clipPath id="terminal-2291773011-line-2">
50
+ <rect x="0" y="50.3" width="878.4" height="24.65"/>
51
+ </clipPath>
52
+ <clipPath id="terminal-2291773011-line-3">
53
+ <rect x="0" y="74.7" width="878.4" height="24.65"/>
54
+ </clipPath>
55
+ <clipPath id="terminal-2291773011-line-4">
56
+ <rect x="0" y="99.1" width="878.4" height="24.65"/>
57
+ </clipPath>
58
+ <clipPath id="terminal-2291773011-line-5">
59
+ <rect x="0" y="123.5" width="878.4" height="24.65"/>
60
+ </clipPath>
61
+ <clipPath id="terminal-2291773011-line-6">
62
+ <rect x="0" y="147.9" width="878.4" height="24.65"/>
63
+ </clipPath>
64
+ </defs>
65
+
66
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="895" height="243.2" rx="8"/><text class="terminal-2291773011-title" fill="#c5c8c6" text-anchor="middle" x="447" y="27">dev-tip</text>
67
+ <g transform="translate(26,22)">
68
+ <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
69
+ <circle cx="22" cy="0" r="7" fill="#febc2e"/>
70
+ <circle cx="44" cy="0" r="7" fill="#28c840"/>
71
+ </g>
72
+
73
+ <g transform="translate(9, 41)" clip-path="url(#terminal-2291773011-clip-terminal)">
74
+
75
+ <g class="terminal-2291773011-matrix">
76
+ <text class="terminal-2291773011-r1" x="878.4" y="20" textLength="12.2" clip-path="url(#terminal-2291773011-line-0)">
77
+ </text><text class="terminal-2291773011-r2" x="0" y="44.4" textLength="732" clip-path="url(#terminal-2291773011-line-1)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;🐍&#160;python&#160;·&#160;beginner&#160;·&#160;Use&#160;enumerate()&#160;instead&#160;of</text><text class="terminal-2291773011-r1" x="878.4" y="44.4" textLength="12.2" clip-path="url(#terminal-2291773011-line-1)">
78
+ </text><text class="terminal-2291773011-r2" x="0" y="68.8" textLength="292.8" clip-path="url(#terminal-2291773011-line-2)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;range(len())</text><text class="terminal-2291773011-r1" x="878.4" y="68.8" textLength="12.2" clip-path="url(#terminal-2291773011-line-2)">
79
+ </text><text class="terminal-2291773011-r1" x="878.4" y="93.2" textLength="12.2" clip-path="url(#terminal-2291773011-line-3)">
80
+ </text><text class="terminal-2291773011-r2" x="0" y="117.6" textLength="878.4" clip-path="url(#terminal-2291773011-line-4)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Instead&#160;of&#160;`for&#160;i&#160;in&#160;range(len(items))`,&#160;use&#160;`for&#160;i,&#160;item&#160;in</text><text class="terminal-2291773011-r1" x="878.4" y="117.6" textLength="12.2" clip-path="url(#terminal-2291773011-line-4)">
81
+ </text><text class="terminal-2291773011-r2" x="0" y="142" textLength="878.4" clip-path="url(#terminal-2291773011-line-5)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;enumerate(items)`.&#160;It&#x27;s&#160;more&#160;Pythonic&#160;and&#160;gives&#160;you&#160;both&#160;the</text><text class="terminal-2291773011-r1" x="878.4" y="142" textLength="12.2" clip-path="url(#terminal-2291773011-line-5)">
82
+ </text><text class="terminal-2291773011-r2" x="0" y="166.4" textLength="341.6" clip-path="url(#terminal-2291773011-line-6)">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;index&#160;and&#160;value.</text><text class="terminal-2291773011-r1" x="878.4" y="166.4" textLength="12.2" clip-path="url(#terminal-2291773011-line-6)">
83
+ </text><text class="terminal-2291773011-r1" x="878.4" y="190.8" textLength="12.2" clip-path="url(#terminal-2291773011-line-7)">
84
+ </text>
85
+ </g>
86
+ </g>
87
+ </svg>
@@ -168,7 +168,7 @@ def enable(
168
168
  f"Tips will appear every {every_commands} commands "
169
169
  f"or {every_minutes} minutes."
170
170
  )
171
- console.print(f"Restart your {shell} or run: [bold]source {rc_file}[/bold]")
171
+ console.print(f"Reload your shell: [bold]exec {shell}[/bold]")
172
172
 
173
173
 
174
174
  def disable() -> None:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cli-dev-tip"
3
- version = "0.1.0"
3
+ version = "0.1.2"
4
4
  description = "Bite-sized developer tips in your terminal"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -3,29 +3,8 @@ revision = 3
3
3
  requires-python = ">=3.10"
4
4
 
5
5
  [[package]]
6
- name = "click"
7
- version = "8.3.1"
8
- source = { registry = "https://pypi.org/simple" }
9
- dependencies = [
10
- { name = "colorama", marker = "sys_platform == 'win32'" },
11
- ]
12
- sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065, upload-time = "2025-11-15T20:45:42.706Z" }
13
- wheels = [
14
- { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274, upload-time = "2025-11-15T20:45:41.139Z" },
15
- ]
16
-
17
- [[package]]
18
- name = "colorama"
19
- version = "0.4.6"
20
- source = { registry = "https://pypi.org/simple" }
21
- sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" }
22
- wheels = [
23
- { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" },
24
- ]
25
-
26
- [[package]]
27
- name = "dev-tip"
28
- version = "0.1.0"
6
+ name = "cli-dev-tip"
7
+ version = "0.1.1"
29
8
  source = { editable = "." }
30
9
  dependencies = [
31
10
  { name = "pyyaml" },
@@ -48,6 +27,27 @@ requires-dist = [
48
27
  [package.metadata.requires-dev]
49
28
  dev = [{ name = "pytest" }]
50
29
 
30
+ [[package]]
31
+ name = "click"
32
+ version = "8.3.1"
33
+ source = { registry = "https://pypi.org/simple" }
34
+ dependencies = [
35
+ { name = "colorama", marker = "sys_platform == 'win32'" },
36
+ ]
37
+ sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065, upload-time = "2025-11-15T20:45:42.706Z" }
38
+ wheels = [
39
+ { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274, upload-time = "2025-11-15T20:45:41.139Z" },
40
+ ]
41
+
42
+ [[package]]
43
+ name = "colorama"
44
+ version = "0.4.6"
45
+ source = { registry = "https://pypi.org/simple" }
46
+ sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" }
47
+ wheels = [
48
+ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" },
49
+ ]
50
+
51
51
  [[package]]
52
52
  name = "exceptiongroup"
53
53
  version = "1.3.1"
File without changes
File without changes
File without changes
File without changes