usecli 0.1.52__tar.gz → 0.1.53__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.
- {usecli-0.1.52 → usecli-0.1.53}/PKG-INFO +1 -1
- {usecli-0.1.52 → usecli-0.1.53}/pyproject.toml +1 -1
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/__init__.py +5 -1
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/base_command.py +18 -0
- {usecli-0.1.52 → usecli-0.1.53}/LICENSE +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/README.md +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/README.md +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/custom/README.md +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/custom/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/defaults/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/defaults/base/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/defaults/base/about_command.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/defaults/base/help_command.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/defaults/base/inspire_command.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/defaults/base/internal/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/defaults/base/internal/fzf_command.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/defaults/core/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/defaults/core/utils.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/defaults/make/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/defaults/make/make_command.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/defaults/make/make_theme_command.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/init_command.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/config/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/config/colors.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/error/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/error/handler.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/error/utils.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/exceptions/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/exceptions/base.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/exceptions/config.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/exceptions/usage.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/exceptions/validation.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/ui/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/ui/list.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/ui/title.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/ui/title.txt +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/validators/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/validators/network.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/validators/numeric.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/validators/path.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/core/validators/string.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/services/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/services/command_service.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/templates/command.py.j2 +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/templates/theme.toml.j2 +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/templates/usecli.config.toml.j2 +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/themes/ayu_dark.toml +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/themes/catppuccin_frappe.toml +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/themes/catppuccin_latte.toml +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/themes/catppuccin_macchiato.toml +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/themes/catppuccin_mocha.toml +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/themes/default.toml +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/themes/dracula.toml +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/themes/gruvbox_dark.toml +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/themes/nord.toml +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/themes/tokyo_night.toml +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/utils/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/utils/interactive/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/utils/interactive/terminal_menu.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/menu.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/params.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/shared/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/shared/config/__init__.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/shared/config/globals.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/shared/config/manager.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/ui.py +0 -0
- {usecli-0.1.52 → usecli-0.1.53}/src/usecli/usecli.config.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "usecli"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.53"
|
|
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" }]
|
|
@@ -7,7 +7,7 @@ from importlib import import_module
|
|
|
7
7
|
|
|
8
8
|
import click
|
|
9
9
|
import typer
|
|
10
|
-
from click.exceptions import BadParameter, ClickException, UsageError
|
|
10
|
+
from click.exceptions import BadParameter, ClickException, Exit, UsageError
|
|
11
11
|
from typer.core import TyperGroup
|
|
12
12
|
|
|
13
13
|
from usecli.cli.config.colors import COLOR
|
|
@@ -167,6 +167,8 @@ class PrefixMatchingGroup(TyperGroup):
|
|
|
167
167
|
"""
|
|
168
168
|
try:
|
|
169
169
|
return super().invoke(ctx)
|
|
170
|
+
except Exit:
|
|
171
|
+
sys.exit(0)
|
|
170
172
|
except BadParameter as e:
|
|
171
173
|
styled_error = UsecliBadParameter(e.message, ctx=e.ctx, param=e.param)
|
|
172
174
|
styled_error.show()
|
|
@@ -272,6 +274,8 @@ def main() -> None:
|
|
|
272
274
|
"""Run the CLI application with custom error handling."""
|
|
273
275
|
try:
|
|
274
276
|
app()
|
|
277
|
+
except Exit:
|
|
278
|
+
sys.exit(0)
|
|
275
279
|
except BadParameter as e:
|
|
276
280
|
styled_error = UsecliBadParameter(e.message, ctx=e.ctx, param=e.param)
|
|
277
281
|
styled_error.show()
|
|
@@ -268,6 +268,24 @@ class CustomHelpCommand(TyperCommand):
|
|
|
268
268
|
|
|
269
269
|
console.print()
|
|
270
270
|
|
|
271
|
+
def get_help(self, ctx: ClickContext) -> str:
|
|
272
|
+
"""Display Rich-formatted help and exit.
|
|
273
|
+
|
|
274
|
+
Overrides Click's get_help to display custom Rich output and
|
|
275
|
+
exit cleanly. This is the proper level to handle the exit,
|
|
276
|
+
not in format_help.
|
|
277
|
+
|
|
278
|
+
Args:
|
|
279
|
+
ctx: The Click context.
|
|
280
|
+
|
|
281
|
+
Returns:
|
|
282
|
+
Never returns — always raises Exit.
|
|
283
|
+
|
|
284
|
+
Raises:
|
|
285
|
+
Exit: After displaying help.
|
|
286
|
+
"""
|
|
287
|
+
formatter = ctx.make_formatter()
|
|
288
|
+
self.format_help(ctx, formatter)
|
|
271
289
|
raise Exit()
|
|
272
290
|
|
|
273
291
|
|
|
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
|
{usecli-0.1.52 → usecli-0.1.53}/src/usecli/cli/commands/defaults/base/internal/fzf_command.py
RENAMED
|
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
|
|
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
|