usecli 0.1.66__tar.gz → 0.1.67__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 (70) hide show
  1. {usecli-0.1.66 → usecli-0.1.67}/PKG-INFO +1 -1
  2. {usecli-0.1.66 → usecli-0.1.67}/pyproject.toml +1 -1
  3. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/__init__.py +23 -7
  4. {usecli-0.1.66 → usecli-0.1.67}/LICENSE +0 -0
  5. {usecli-0.1.66 → usecli-0.1.67}/README.md +0 -0
  6. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/__init__.py +0 -0
  7. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/README.md +0 -0
  8. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/__init__.py +0 -0
  9. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/custom/README.md +0 -0
  10. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/custom/__init__.py +0 -0
  11. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/defaults/__init__.py +0 -0
  12. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/defaults/base/__init__.py +0 -0
  13. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/defaults/base/about_command.py +0 -0
  14. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/defaults/base/help_command.py +0 -0
  15. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/defaults/base/inspire_command.py +0 -0
  16. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/defaults/base/internal/__init__.py +0 -0
  17. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/defaults/base/internal/fzf_command.py +0 -0
  18. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/defaults/core/__init__.py +0 -0
  19. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/defaults/core/utils.py +0 -0
  20. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/defaults/make/__init__.py +0 -0
  21. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/defaults/make/make_command.py +0 -0
  22. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/defaults/make/make_theme_command.py +0 -0
  23. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/commands/init_command.py +0 -0
  24. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/config/__init__.py +0 -0
  25. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/config/colors.py +0 -0
  26. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/__init__.py +0 -0
  27. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/base_command.py +0 -0
  28. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/error/__init__.py +0 -0
  29. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/error/handler.py +0 -0
  30. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/error/utils.py +0 -0
  31. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/exceptions/__init__.py +0 -0
  32. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/exceptions/base.py +0 -0
  33. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/exceptions/config.py +0 -0
  34. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/exceptions/usage.py +0 -0
  35. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/exceptions/validation.py +0 -0
  36. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/ui/__init__.py +0 -0
  37. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/ui/list.py +0 -0
  38. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/ui/title.py +0 -0
  39. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/ui/title.txt +0 -0
  40. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/validators/__init__.py +0 -0
  41. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/validators/network.py +0 -0
  42. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/validators/numeric.py +0 -0
  43. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/validators/path.py +0 -0
  44. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/core/validators/string.py +0 -0
  45. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/services/__init__.py +0 -0
  46. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/services/command_service.py +0 -0
  47. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/templates/command.py.j2 +0 -0
  48. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/templates/theme.toml.j2 +0 -0
  49. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/templates/usecli.config.toml.j2 +0 -0
  50. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/themes/ayu_dark.toml +0 -0
  51. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/themes/catppuccin_frappe.toml +0 -0
  52. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/themes/catppuccin_latte.toml +0 -0
  53. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/themes/catppuccin_macchiato.toml +0 -0
  54. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/themes/catppuccin_mocha.toml +0 -0
  55. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/themes/default.toml +0 -0
  56. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/themes/dracula.toml +0 -0
  57. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/themes/gruvbox_dark.toml +0 -0
  58. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/themes/nord.toml +0 -0
  59. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/themes/tokyo_night.toml +0 -0
  60. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/utils/__init__.py +0 -0
  61. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/utils/interactive/__init__.py +0 -0
  62. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/cli/utils/interactive/terminal_menu.py +0 -0
  63. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/menu.py +0 -0
  64. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/params.py +0 -0
  65. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/shared/__init__.py +0 -0
  66. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/shared/config/__init__.py +0 -0
  67. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/shared/config/globals.py +0 -0
  68. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/shared/config/manager.py +0 -0
  69. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/ui.py +0 -0
  70. {usecli-0.1.66 → usecli-0.1.67}/src/usecli/usecli.config.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: usecli
3
- Version: 0.1.66
3
+ Version: 0.1.67
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>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "usecli"
3
- version = "0.1.66"
3
+ version = "0.1.67"
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" }]
@@ -165,25 +165,29 @@ def _ensure_cli_initialized() -> None:
165
165
  )
166
166
 
167
167
  def invoke(self, ctx):
168
- from click.exceptions import BadParameter, ClickException, Exit, UsageError
168
+ from click.exceptions import Exit
169
+
170
+ _TyperBadParameter = globals()["_TyperBadParameter"]
171
+ _TyperUsageError = globals()["_TyperUsageError"]
172
+ _TyperClickException = globals()["_TyperClickException"]
169
173
 
170
174
  try:
171
175
  return super().invoke(ctx)
172
176
  except Exit:
173
177
  sys.exit(0)
174
- except BadParameter as e:
178
+ except _TyperBadParameter as e:
175
179
  from usecli.cli.core.exceptions import UsecliBadParameter
176
180
 
177
181
  styled_error = UsecliBadParameter(e.message, ctx=e.ctx, param=e.param)
178
182
  styled_error.show()
179
183
  sys.exit(styled_error.exit_code)
180
- except UsageError as e:
184
+ except _TyperUsageError as e:
181
185
  from usecli.cli.core.exceptions import UsecliUsageError
182
186
 
183
187
  styled_error = UsecliUsageError(e.message, ctx=e.ctx)
184
188
  styled_error.show()
185
189
  sys.exit(styled_error.exit_code)
186
- except ClickException as e:
190
+ except _TyperClickException as e:
187
191
  if hasattr(e, "show"):
188
192
  e.show()
189
193
  sys.exit(e.exit_code if hasattr(e, "exit_code") else 1)
@@ -419,6 +423,12 @@ def main() -> None:
419
423
  _ensure_cli_initialized()
420
424
  _resolve_help()
421
425
 
426
+ # Use typer's exception classes if available (they're subclasses of click's)
427
+ # typer raises its own exceptions which may not match click's exactly
428
+ _TyperBadParameter = globals().get("_TyperBadParameter", BadParameter)
429
+ _TyperUsageError = globals().get("_TyperUsageError", UsageError)
430
+ _TyperClickException = globals().get("_TyperClickException", ClickException)
431
+
422
432
  from usecli.shared.config.manager import get_config
423
433
 
424
434
  config = get_config()
@@ -439,22 +449,28 @@ def main() -> None:
439
449
  _get_app()()
440
450
  except Exit:
441
451
  sys.exit(0)
442
- except BadParameter as e:
452
+ except _TyperBadParameter as e:
443
453
  from usecli.cli.core.exceptions import UsecliBadParameter
444
454
 
445
455
  styled_error = UsecliBadParameter(e.message, ctx=e.ctx, param=e.param)
446
456
  styled_error.show()
447
457
  sys.exit(styled_error.exit_code)
448
- except UsageError as e:
458
+ except _TyperUsageError as e:
449
459
  from usecli.cli.core.exceptions import UsecliUsageError
450
460
 
451
461
  styled_error = UsecliUsageError(e.message, ctx=e.ctx)
452
462
  styled_error.show()
453
463
  sys.exit(styled_error.exit_code)
454
- except ClickException as e:
464
+ except _TyperClickException as e:
455
465
  if hasattr(e, "show"):
456
466
  e.show()
457
467
  sys.exit(e.exit_code if hasattr(e, "exit_code") else 1)
468
+ except Exception as e:
469
+ from usecli.cli.core.exceptions import UsecliUsageError
470
+
471
+ styled_error = UsecliUsageError(str(e))
472
+ styled_error.show()
473
+ sys.exit(1)
458
474
 
459
475
 
460
476
  if __name__ == "__main__":
File without changes
File without changes
File without changes
File without changes
File without changes