usecli 0.1.29__tar.gz → 0.1.30__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 (69) hide show
  1. {usecli-0.1.29 → usecli-0.1.30}/PKG-INFO +8 -2
  2. {usecli-0.1.29 → usecli-0.1.30}/README.md +7 -1
  3. {usecli-0.1.29 → usecli-0.1.30}/pyproject.toml +1 -1
  4. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/base_command.py +3 -1
  5. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/exceptions/usage.py +17 -2
  6. {usecli-0.1.29 → usecli-0.1.30}/LICENSE +0 -0
  7. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/__init__.py +0 -0
  8. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/__init__.py +0 -0
  9. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/README.md +0 -0
  10. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/__init__.py +0 -0
  11. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/custom/README.md +0 -0
  12. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/custom/__init__.py +0 -0
  13. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/defaults/__init__.py +0 -0
  14. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/defaults/base/__init__.py +0 -0
  15. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/defaults/base/about_command.py +0 -0
  16. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/defaults/base/help_command.py +0 -0
  17. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/defaults/base/inspire_command.py +0 -0
  18. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/defaults/base/internal/__init__.py +0 -0
  19. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/defaults/base/internal/fzf_command.py +0 -0
  20. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/defaults/core/__init__.py +0 -0
  21. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/defaults/core/utils.py +0 -0
  22. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/defaults/make/__init__.py +0 -0
  23. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/defaults/make/make_command.py +0 -0
  24. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/defaults/make/make_theme_command.py +0 -0
  25. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/commands/init_command.py +0 -0
  26. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/config/__init__.py +0 -0
  27. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/config/colors.py +0 -0
  28. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/__init__.py +0 -0
  29. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/error/__init__.py +0 -0
  30. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/error/handler.py +0 -0
  31. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/error/utils.py +0 -0
  32. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/exceptions/__init__.py +0 -0
  33. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/exceptions/base.py +0 -0
  34. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/exceptions/config.py +0 -0
  35. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/exceptions/validation.py +0 -0
  36. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/skill_generator.py +0 -0
  37. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/ui/__init__.py +0 -0
  38. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/ui/list.py +0 -0
  39. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/ui/title.py +0 -0
  40. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/validators/__init__.py +0 -0
  41. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/validators/network.py +0 -0
  42. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/validators/numeric.py +0 -0
  43. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/validators/path.py +0 -0
  44. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/core/validators/string.py +0 -0
  45. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/services/__init__.py +0 -0
  46. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/services/command_service.py +0 -0
  47. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/templates/command.py.j2 +0 -0
  48. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/templates/theme.toml.j2 +0 -0
  49. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/templates/usecli.toml.j2 +0 -0
  50. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/themes/ayu_dark.toml +0 -0
  51. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/themes/catppuccin_frappe.toml +0 -0
  52. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/themes/catppuccin_latte.toml +0 -0
  53. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/themes/catppuccin_macchiato.toml +0 -0
  54. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/themes/catppuccin_mocha.toml +0 -0
  55. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/themes/default.toml +0 -0
  56. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/themes/dracula.toml +0 -0
  57. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/themes/gruvbox_dark.toml +0 -0
  58. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/themes/nord.toml +0 -0
  59. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/themes/tokyo_night.toml +0 -0
  60. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/utils/__init__.py +0 -0
  61. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/utils/interactive/__init__.py +0 -0
  62. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/cli/utils/interactive/terminal_menu.py +0 -0
  63. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/menu.py +0 -0
  64. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/params.py +0 -0
  65. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/shared/__init__.py +0 -0
  66. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/shared/config/__init__.py +0 -0
  67. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/shared/config/globals.py +0 -0
  68. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/shared/config/manager.py +0 -0
  69. {usecli-0.1.29 → usecli-0.1.30}/src/usecli/ui.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: usecli
3
- Version: 0.1.29
3
+ Version: 0.1.30
4
4
  Summary: A powerful Python CLI framework for building beautiful, developer-friendly command-line tools.
5
5
  Author: Edward Boswell
6
6
  Author-email: Edward Boswell <thememium@gmail.com>
@@ -77,12 +77,18 @@ useCli A powerful Python CLI framework for building beautiful, developer-friendl
77
77
 
78
78
  ## Quick Start
79
79
 
80
- ### Install usecli:
80
+ ### Install usecli with uv (recommended)
81
81
 
82
82
  ```sh
83
83
  uv add usecli
84
84
  ```
85
85
 
86
+ ### Install with pip (alternative)
87
+
88
+ ```sh
89
+ pip install usecli
90
+ ```
91
+
86
92
  ### Initialize
87
93
 
88
94
  ```sh
@@ -48,12 +48,18 @@ useCli A powerful Python CLI framework for building beautiful, developer-friendl
48
48
 
49
49
  ## Quick Start
50
50
 
51
- ### Install usecli:
51
+ ### Install usecli with uv (recommended)
52
52
 
53
53
  ```sh
54
54
  uv add usecli
55
55
  ```
56
56
 
57
+ ### Install with pip (alternative)
58
+
59
+ ```sh
60
+ pip install usecli
61
+ ```
62
+
57
63
  ### Initialize
58
64
 
59
65
  ```sh
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "usecli"
3
- version = "0.1.29"
3
+ version = "0.1.30"
4
4
  description = "A powerful Python CLI framework for building beautiful, developer-friendly command-line tools."
5
5
  readme = "README.md"
6
6
  authors = [{ name = "Edward Boswell", email = "thememium@gmail.com" }]
@@ -12,6 +12,7 @@ from rich.console import Console
12
12
  from typer.core import TyperCommand
13
13
 
14
14
  from usecli.cli.config.colors import COLOR
15
+ from usecli.cli.core.ui.title import get_script_command_name
15
16
 
16
17
  if TYPE_CHECKING:
17
18
  from click.core import Context as ClickContext
@@ -223,7 +224,8 @@ class CustomHelpCommand(TyperCommand):
223
224
  ]
224
225
 
225
226
  arg_usage = " ".join(rf"\[{name.upper()}]" for name in argument_names)
226
- usage = f" [bold {COLOR.WARNING}]usecli {self.name}[/bold {COLOR.WARNING}] [bold {COLOR.PRIMARY}][OPTIONS]{f' {arg_usage}' if arg_usage else ''}[/bold {COLOR.PRIMARY}]"
227
+ command_name = get_script_command_name(default="usecli") or "usecli"
228
+ usage = f" [bold {COLOR.WARNING}]{command_name} {self.name}[/bold {COLOR.WARNING}] [bold {COLOR.PRIMARY}][OPTIONS]{f' {arg_usage}' if arg_usage else ''}[/bold {COLOR.PRIMARY}]"
227
229
 
228
230
  console.print()
229
231
  console.print(f"[bold {COLOR.SECONDARY}]Usage:[/bold {COLOR.SECONDARY}]")
@@ -5,14 +5,29 @@ from __future__ import annotations
5
5
  import sys
6
6
  from typing import IO
7
7
 
8
+ from click.core import Context as ClickContext
8
9
  from click.exceptions import BadParameter, UsageError
9
10
  from rich.console import Console
10
11
 
11
12
  from usecli.cli.config.colors import COLOR
13
+ from usecli.cli.core.ui.title import get_script_command_name
12
14
 
13
15
  console = Console(stderr=True)
14
16
 
15
17
 
18
+ def _get_help_text_with_command_name(ctx: ClickContext) -> str:
19
+ command_name = get_script_command_name(default=getattr(ctx, "info_name", None))
20
+ if not command_name:
21
+ return ctx.get_help()
22
+
23
+ original_info_name = getattr(ctx, "info_name", None)
24
+ try:
25
+ ctx.info_name = command_name
26
+ return ctx.get_help()
27
+ finally:
28
+ ctx.info_name = original_info_name
29
+
30
+
16
31
  class UsecliUsageError(UsageError):
17
32
  """Usage error with styled output and full command help.
18
33
 
@@ -35,7 +50,7 @@ class UsecliUsageError(UsageError):
35
50
 
36
51
  if self.ctx:
37
52
  console.print()
38
- help_text = self.ctx.get_help()
53
+ help_text = _get_help_text_with_command_name(self.ctx)
39
54
  console.print(help_text)
40
55
 
41
56
 
@@ -64,5 +79,5 @@ class UsecliBadParameter(BadParameter):
64
79
  console.print(f"{error_prefix} {error_msg}")
65
80
 
66
81
  if self.ctx:
67
- help_text = self.ctx.get_help()
82
+ help_text = _get_help_text_with_command_name(self.ctx)
68
83
  console.print(help_text)
File without changes
File without changes
File without changes
File without changes
File without changes