clidevkit 0.2.0__tar.gz → 0.2.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.
Files changed (65) hide show
  1. {clidevkit-0.2.0 → clidevkit-0.2.1}/PKG-INFO +46 -57
  2. {clidevkit-0.2.0 → clidevkit-0.2.1}/README.md +45 -56
  3. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/banner.py +26 -0
  4. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidevkit.egg-info/PKG-INFO +46 -57
  5. {clidevkit-0.2.0 → clidevkit-0.2.1}/pyproject.toml +1 -1
  6. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/__init__.py +0 -0
  7. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/actions.py +0 -0
  8. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/app.py +0 -0
  9. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/builtins/__init__.py +0 -0
  10. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/builtins/plugins.py +0 -0
  11. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/cards.py +0 -0
  12. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/cli.py +0 -0
  13. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/colors.py +0 -0
  14. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/config.py +0 -0
  15. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/dashboard.py +0 -0
  16. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/dialogs.py +0 -0
  17. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/events.py +0 -0
  18. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/exceptions.py +0 -0
  19. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/forms.py +0 -0
  20. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/generators/__init__.py +0 -0
  21. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/generators/form.py +0 -0
  22. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/generators/menu.py +0 -0
  23. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/generators/project.py +0 -0
  24. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/generators/workflow.py +0 -0
  25. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/icons.py +0 -0
  26. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/inputs.py +0 -0
  27. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/logger.py +0 -0
  28. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/menus.py +0 -0
  29. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/notifications.py +0 -0
  30. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/pages.py +0 -0
  31. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/plugins.py +0 -0
  32. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/progress.py +0 -0
  33. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/router.py +0 -0
  34. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/scheduler.py +0 -0
  35. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/shell.py +0 -0
  36. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/spinner.py +0 -0
  37. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/state.py +0 -0
  38. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/statusbar.py +0 -0
  39. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/storage.py +0 -0
  40. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/table.py +0 -0
  41. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/tasks.py +0 -0
  42. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/themes.py +0 -0
  43. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/tree.py +0 -0
  44. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/utils.py +0 -0
  45. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/validators.py +0 -0
  46. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidev/workflow.py +0 -0
  47. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidevkit.egg-info/SOURCES.txt +0 -0
  48. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidevkit.egg-info/dependency_links.txt +0 -0
  49. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidevkit.egg-info/entry_points.txt +0 -0
  50. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidevkit.egg-info/requires.txt +0 -0
  51. {clidevkit-0.2.0 → clidevkit-0.2.1}/clidevkit.egg-info/top_level.txt +0 -0
  52. {clidevkit-0.2.0 → clidevkit-0.2.1}/setup.cfg +0 -0
  53. {clidevkit-0.2.0 → clidevkit-0.2.1}/tests/test_actions.py +0 -0
  54. {clidevkit-0.2.0 → clidevkit-0.2.1}/tests/test_app.py +0 -0
  55. {clidevkit-0.2.0 → clidevkit-0.2.1}/tests/test_banner.py +0 -0
  56. {clidevkit-0.2.0 → clidevkit-0.2.1}/tests/test_events.py +0 -0
  57. {clidevkit-0.2.0 → clidevkit-0.2.1}/tests/test_forms.py +0 -0
  58. {clidevkit-0.2.0 → clidevkit-0.2.1}/tests/test_generators.py +0 -0
  59. {clidevkit-0.2.0 → clidevkit-0.2.1}/tests/test_router.py +0 -0
  60. {clidevkit-0.2.0 → clidevkit-0.2.1}/tests/test_shell.py +0 -0
  61. {clidevkit-0.2.0 → clidevkit-0.2.1}/tests/test_state.py +0 -0
  62. {clidevkit-0.2.0 → clidevkit-0.2.1}/tests/test_storage.py +0 -0
  63. {clidevkit-0.2.0 → clidevkit-0.2.1}/tests/test_themes.py +0 -0
  64. {clidevkit-0.2.0 → clidevkit-0.2.1}/tests/test_validators.py +0 -0
  65. {clidevkit-0.2.0 → clidevkit-0.2.1}/tests/test_workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clidevkit
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: A framework for building production-ready CLI apps and Terminal UIs with minimal code.
5
5
  Author-email: Vrushabh Sonawane <shivandmau25@gmail.com>
6
6
  License: MIT
@@ -273,6 +273,51 @@ theme = Theme()
273
273
  theme.primary("blue")
274
274
  theme.success("green")
275
275
  ```
276
+ ### Banner (`clidev/banner.py`)
277
+
278
+ Render text as large ASCII-art block letters — great for app splash
279
+ screens, section headers, or command output.
280
+
281
+ ```python
282
+ app.banner("HI").show()
283
+ ```
284
+
285
+ Customize the symbol used to draw the letters:
286
+
287
+ ```python
288
+ app.banner("DEPLOYED", symbol="@").show()
289
+ ```
290
+
291
+ Or use it standalone (outside an `App` instance):
292
+
293
+ ```python
294
+ from clidev.banner import Banner
295
+
296
+ Banner("HELLO", symbol="*").show()
297
+ ```
298
+
299
+ **Supported characters:** `A-Z` (case-insensitive), `0-9`, and basic
300
+ punctuation (`. , ! ? - :`). Unsupported characters render as blank space
301
+ rather than raising an error.
302
+
303
+ **Constructor options:**
304
+
305
+ | Argument | Default | Description |
306
+ |---|---|---|
307
+ | `text` | — | Text to render (auto-uppercased) |
308
+ | `symbol` | `"#"` | Character used to draw filled pixels |
309
+ | `spacing` | `1` | Blank columns between letters |
310
+ | `theme` | `None` | If set (e.g. via `app.banner(...)`), colors the banner using the theme's primary color |
311
+
312
+ `.render()` returns the raw multi-line string (useful if you want to embed
313
+ it inside a `Card`, log it, or write it to a file) — `.show()` prints it
314
+ directly to the console with theme styling applied.
315
+
316
+ from clidev import App
317
+
318
+ app = App("My App")
319
+ app.banner("MY APP").show()
320
+ ...
276
321
 
277
322
  ### Logging (`clidev/logger.py`)
278
323
 
@@ -381,62 +426,6 @@ field validation, the shell command wrapper, routing/history, the workflow
381
426
  engine, conditional navigation, the event dispatcher, theming, the project
382
427
  generator, and full `App` integration — 85 tests in total.
383
428
 
384
- ---
385
-
386
- ## Project layout
387
-
388
- ```text
389
- clidev/
390
- ├── __init__.py
391
- ├── app.py # Main application
392
- ├── router.py # Navigation
393
- ├── pages.py # Pages
394
- ├── menus.py # Menu engine
395
- ├── forms.py # Forms
396
- ├── inputs.py # Input widgets
397
- ├── validators.py
398
-
399
- ├── state.py # Global state
400
- ├── storage.py # JSON/SQLite/YAML/TOML storage
401
- ├── workflow.py # Workflow engine
402
- ├── events.py # Event dispatcher
403
- ├── actions.py # Conditional navigation
404
-
405
- ├── shell.py # Execute commands
406
- ├── tasks.py # Background tasks
407
- ├── scheduler.py
408
-
409
- ├── progress.py
410
- ├── spinner.py
411
- ├── dashboard.py
412
- ├── table.py
413
- ├── tree.py
414
- ├── cards.py
415
- ├── dialogs.py
416
- ├── notifications.py
417
- ├── statusbar.py
418
-
419
- ├── themes.py
420
- ├── colors.py
421
- ├── icons.py
422
-
423
- ├── logger.py
424
- ├── config.py
425
- ├── plugins.py
426
- ├── utils.py
427
- ├── exceptions.py
428
-
429
- ├── generators/
430
- │ ├── project.py
431
- │ ├── menu.py
432
- │ ├── form.py
433
- │ └── workflow.py
434
-
435
- ├── templates/
436
- ├── builtins/ # Example plugins (GitPlugin, DatabasePlugin)
437
- └── cli.py # "clidev" terminal command
438
- ```
439
-
440
429
  ## Roadmap
441
430
 
442
431
  - Additional storage backends: PostgreSQL, MongoDB, Redis
@@ -243,6 +243,51 @@ theme = Theme()
243
243
  theme.primary("blue")
244
244
  theme.success("green")
245
245
  ```
246
+ ### Banner (`clidev/banner.py`)
247
+
248
+ Render text as large ASCII-art block letters — great for app splash
249
+ screens, section headers, or command output.
250
+
251
+ ```python
252
+ app.banner("HI").show()
253
+ ```
254
+
255
+ Customize the symbol used to draw the letters:
256
+
257
+ ```python
258
+ app.banner("DEPLOYED", symbol="@").show()
259
+ ```
260
+
261
+ Or use it standalone (outside an `App` instance):
262
+
263
+ ```python
264
+ from clidev.banner import Banner
265
+
266
+ Banner("HELLO", symbol="*").show()
267
+ ```
268
+
269
+ **Supported characters:** `A-Z` (case-insensitive), `0-9`, and basic
270
+ punctuation (`. , ! ? - :`). Unsupported characters render as blank space
271
+ rather than raising an error.
272
+
273
+ **Constructor options:**
274
+
275
+ | Argument | Default | Description |
276
+ |---|---|---|
277
+ | `text` | — | Text to render (auto-uppercased) |
278
+ | `symbol` | `"#"` | Character used to draw filled pixels |
279
+ | `spacing` | `1` | Blank columns between letters |
280
+ | `theme` | `None` | If set (e.g. via `app.banner(...)`), colors the banner using the theme's primary color |
281
+
282
+ `.render()` returns the raw multi-line string (useful if you want to embed
283
+ it inside a `Card`, log it, or write it to a file) — `.show()` prints it
284
+ directly to the console with theme styling applied.
285
+
286
+ from clidev import App
287
+
288
+ app = App("My App")
289
+ app.banner("MY APP").show()
290
+ ...
246
291
 
247
292
  ### Logging (`clidev/logger.py`)
248
293
 
@@ -351,62 +396,6 @@ field validation, the shell command wrapper, routing/history, the workflow
351
396
  engine, conditional navigation, the event dispatcher, theming, the project
352
397
  generator, and full `App` integration — 85 tests in total.
353
398
 
354
- ---
355
-
356
- ## Project layout
357
-
358
- ```text
359
- clidev/
360
- ├── __init__.py
361
- ├── app.py # Main application
362
- ├── router.py # Navigation
363
- ├── pages.py # Pages
364
- ├── menus.py # Menu engine
365
- ├── forms.py # Forms
366
- ├── inputs.py # Input widgets
367
- ├── validators.py
368
-
369
- ├── state.py # Global state
370
- ├── storage.py # JSON/SQLite/YAML/TOML storage
371
- ├── workflow.py # Workflow engine
372
- ├── events.py # Event dispatcher
373
- ├── actions.py # Conditional navigation
374
-
375
- ├── shell.py # Execute commands
376
- ├── tasks.py # Background tasks
377
- ├── scheduler.py
378
-
379
- ├── progress.py
380
- ├── spinner.py
381
- ├── dashboard.py
382
- ├── table.py
383
- ├── tree.py
384
- ├── cards.py
385
- ├── dialogs.py
386
- ├── notifications.py
387
- ├── statusbar.py
388
-
389
- ├── themes.py
390
- ├── colors.py
391
- ├── icons.py
392
-
393
- ├── logger.py
394
- ├── config.py
395
- ├── plugins.py
396
- ├── utils.py
397
- ├── exceptions.py
398
-
399
- ├── generators/
400
- │ ├── project.py
401
- │ ├── menu.py
402
- │ ├── form.py
403
- │ └── workflow.py
404
-
405
- ├── templates/
406
- ├── builtins/ # Example plugins (GitPlugin, DatabasePlugin)
407
- └── cli.py # "clidev" terminal command
408
- ```
409
-
410
399
  ## Roadmap
411
400
 
412
401
  - Additional storage backends: PostgreSQL, MongoDB, Redis
@@ -40,6 +40,32 @@ _FONT: dict[str, list[str]] = {
40
40
  "X": ["#...#", ".#.#.", "..#..", ".#.#.", "#...#"],
41
41
  "Y": ["#...#", ".#.#.", "..#..", "..#..", "..#.."],
42
42
  "Z": ["#####", "...#.", "..#..", ".#...", "#####"],
43
+ "a": [".....", ".####", "#...#", "#...#", ".####"],
44
+ "b": ["#....", "#....", "####.", "#...#", "####."],
45
+ "c": [".....", ".####", "#....", "#....", ".####"],
46
+ "d": ["....#", "....#", ".####", "#...#", ".####"],
47
+ "e": [".....", ".###.", "#####", "#....", ".####"],
48
+ "f": ["..##.", ".#...", "###..", ".#...", ".#..."],
49
+ "g": [".....", ".####", "#...#", ".####", "....#"],
50
+ "h": ["#....", "#....", "####.", "#...#", "#...#"],
51
+ "i": ["..#..", ".....", "..#..", "..#..", "..#.."],
52
+ "j": ["...#.", ".....", "...#.", "...#.", "##..."],
53
+ "k": ["#....", "#..#.", "###..", "#..#.", "#...#"],
54
+ "l": ["##...", ".#...", ".#...", ".#...", "###.."],
55
+ "m": [".....", "##.#.", "#.#.#", "#.#.#", "#...#"],
56
+ "n": [".....", "####.", "#...#", "#...#", "#...#"],
57
+ "o": [".....", ".###.", "#...#", "#...#", ".###."],
58
+ "p": [".....", "####.", "#...#", "####.", "#...."],
59
+ "q": [".....", ".####", "#...#", ".####", "....#"],
60
+ "r": [".....", "#.##.", "##...", "#....", "#...."],
61
+ "s": [".....", ".####", "##...", "...##", "####."],
62
+ "t": [".#...", "###..", ".#...", ".#...", "..##."],
63
+ "u": [".....", "#...#", "#...#", "#...#", ".####"],
64
+ "v": [".....", "#...#", "#...#", ".#.#.", "..#.."],
65
+ "w": [".....", "#...#", "#.#.#", "#.#.#", ".#.#."],
66
+ "x": [".....", "#...#", ".#.#.", ".#.#.", "#...#"],
67
+ "y": [".....", "#...#", ".####", "....#", "####."],
68
+ "z": [".....", "#####", "..##.", ".##..", "#####"],
43
69
  "0": [".###.", "#...#", "#...#", "#...#", ".###."],
44
70
  "1": ["..#..", ".##..", "..#..", "..#..", ".###."],
45
71
  "2": [".###.", "#...#", "..##.", ".#...", "#####"],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clidevkit
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: A framework for building production-ready CLI apps and Terminal UIs with minimal code.
5
5
  Author-email: Vrushabh Sonawane <shivandmau25@gmail.com>
6
6
  License: MIT
@@ -273,6 +273,51 @@ theme = Theme()
273
273
  theme.primary("blue")
274
274
  theme.success("green")
275
275
  ```
276
+ ### Banner (`clidev/banner.py`)
277
+
278
+ Render text as large ASCII-art block letters — great for app splash
279
+ screens, section headers, or command output.
280
+
281
+ ```python
282
+ app.banner("HI").show()
283
+ ```
284
+
285
+ Customize the symbol used to draw the letters:
286
+
287
+ ```python
288
+ app.banner("DEPLOYED", symbol="@").show()
289
+ ```
290
+
291
+ Or use it standalone (outside an `App` instance):
292
+
293
+ ```python
294
+ from clidev.banner import Banner
295
+
296
+ Banner("HELLO", symbol="*").show()
297
+ ```
298
+
299
+ **Supported characters:** `A-Z` (case-insensitive), `0-9`, and basic
300
+ punctuation (`. , ! ? - :`). Unsupported characters render as blank space
301
+ rather than raising an error.
302
+
303
+ **Constructor options:**
304
+
305
+ | Argument | Default | Description |
306
+ |---|---|---|
307
+ | `text` | — | Text to render (auto-uppercased) |
308
+ | `symbol` | `"#"` | Character used to draw filled pixels |
309
+ | `spacing` | `1` | Blank columns between letters |
310
+ | `theme` | `None` | If set (e.g. via `app.banner(...)`), colors the banner using the theme's primary color |
311
+
312
+ `.render()` returns the raw multi-line string (useful if you want to embed
313
+ it inside a `Card`, log it, or write it to a file) — `.show()` prints it
314
+ directly to the console with theme styling applied.
315
+
316
+ from clidev import App
317
+
318
+ app = App("My App")
319
+ app.banner("MY APP").show()
320
+ ...
276
321
 
277
322
  ### Logging (`clidev/logger.py`)
278
323
 
@@ -381,62 +426,6 @@ field validation, the shell command wrapper, routing/history, the workflow
381
426
  engine, conditional navigation, the event dispatcher, theming, the project
382
427
  generator, and full `App` integration — 85 tests in total.
383
428
 
384
- ---
385
-
386
- ## Project layout
387
-
388
- ```text
389
- clidev/
390
- ├── __init__.py
391
- ├── app.py # Main application
392
- ├── router.py # Navigation
393
- ├── pages.py # Pages
394
- ├── menus.py # Menu engine
395
- ├── forms.py # Forms
396
- ├── inputs.py # Input widgets
397
- ├── validators.py
398
-
399
- ├── state.py # Global state
400
- ├── storage.py # JSON/SQLite/YAML/TOML storage
401
- ├── workflow.py # Workflow engine
402
- ├── events.py # Event dispatcher
403
- ├── actions.py # Conditional navigation
404
-
405
- ├── shell.py # Execute commands
406
- ├── tasks.py # Background tasks
407
- ├── scheduler.py
408
-
409
- ├── progress.py
410
- ├── spinner.py
411
- ├── dashboard.py
412
- ├── table.py
413
- ├── tree.py
414
- ├── cards.py
415
- ├── dialogs.py
416
- ├── notifications.py
417
- ├── statusbar.py
418
-
419
- ├── themes.py
420
- ├── colors.py
421
- ├── icons.py
422
-
423
- ├── logger.py
424
- ├── config.py
425
- ├── plugins.py
426
- ├── utils.py
427
- ├── exceptions.py
428
-
429
- ├── generators/
430
- │ ├── project.py
431
- │ ├── menu.py
432
- │ ├── form.py
433
- │ └── workflow.py
434
-
435
- ├── templates/
436
- ├── builtins/ # Example plugins (GitPlugin, DatabasePlugin)
437
- └── cli.py # "clidev" terminal command
438
- ```
439
-
440
429
  ## Roadmap
441
430
 
442
431
  - Additional storage backends: PostgreSQL, MongoDB, Redis
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "clidevkit"
7
- version = "0.2.0"
7
+ version = "0.2.1"
8
8
  description = "A framework for building production-ready CLI apps and Terminal UIs with minimal code."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
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
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
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes