usecli 0.1.57__tar.gz → 0.1.58__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.57 → usecli-0.1.58}/PKG-INFO +1 -1
  2. {usecli-0.1.57 → usecli-0.1.58}/pyproject.toml +1 -1
  3. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/__init__.py +11 -0
  4. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/shared/config/manager.py +5 -5
  5. {usecli-0.1.57 → usecli-0.1.58}/LICENSE +0 -0
  6. {usecli-0.1.57 → usecli-0.1.58}/README.md +0 -0
  7. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/__init__.py +0 -0
  8. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/README.md +0 -0
  9. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/__init__.py +0 -0
  10. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/custom/README.md +0 -0
  11. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/custom/__init__.py +0 -0
  12. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/defaults/__init__.py +0 -0
  13. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/defaults/base/__init__.py +0 -0
  14. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/defaults/base/about_command.py +0 -0
  15. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/defaults/base/help_command.py +0 -0
  16. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/defaults/base/inspire_command.py +0 -0
  17. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/defaults/base/internal/__init__.py +0 -0
  18. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/defaults/base/internal/fzf_command.py +0 -0
  19. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/defaults/core/__init__.py +0 -0
  20. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/defaults/core/utils.py +0 -0
  21. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/defaults/make/__init__.py +0 -0
  22. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/defaults/make/make_command.py +0 -0
  23. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/defaults/make/make_theme_command.py +0 -0
  24. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/commands/init_command.py +0 -0
  25. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/config/__init__.py +0 -0
  26. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/config/colors.py +0 -0
  27. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/__init__.py +0 -0
  28. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/base_command.py +0 -0
  29. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/error/__init__.py +0 -0
  30. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/error/handler.py +0 -0
  31. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/error/utils.py +0 -0
  32. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/exceptions/__init__.py +0 -0
  33. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/exceptions/base.py +0 -0
  34. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/exceptions/config.py +0 -0
  35. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/exceptions/usage.py +0 -0
  36. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/exceptions/validation.py +0 -0
  37. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/ui/__init__.py +0 -0
  38. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/ui/list.py +0 -0
  39. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/ui/title.py +0 -0
  40. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/ui/title.txt +0 -0
  41. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/validators/__init__.py +0 -0
  42. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/validators/network.py +0 -0
  43. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/validators/numeric.py +0 -0
  44. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/validators/path.py +0 -0
  45. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/core/validators/string.py +0 -0
  46. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/services/__init__.py +0 -0
  47. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/services/command_service.py +0 -0
  48. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/templates/command.py.j2 +0 -0
  49. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/templates/theme.toml.j2 +0 -0
  50. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/templates/usecli.config.toml.j2 +0 -0
  51. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/themes/ayu_dark.toml +0 -0
  52. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/themes/catppuccin_frappe.toml +0 -0
  53. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/themes/catppuccin_latte.toml +0 -0
  54. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/themes/catppuccin_macchiato.toml +0 -0
  55. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/themes/catppuccin_mocha.toml +0 -0
  56. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/themes/default.toml +0 -0
  57. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/themes/dracula.toml +0 -0
  58. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/themes/gruvbox_dark.toml +0 -0
  59. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/themes/nord.toml +0 -0
  60. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/themes/tokyo_night.toml +0 -0
  61. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/utils/__init__.py +0 -0
  62. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/utils/interactive/__init__.py +0 -0
  63. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/cli/utils/interactive/terminal_menu.py +0 -0
  64. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/menu.py +0 -0
  65. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/params.py +0 -0
  66. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/shared/__init__.py +0 -0
  67. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/shared/config/__init__.py +0 -0
  68. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/shared/config/globals.py +0 -0
  69. {usecli-0.1.57 → usecli-0.1.58}/src/usecli/ui.py +0 -0
  70. {usecli-0.1.57 → usecli-0.1.58}/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.57
3
+ Version: 0.1.58
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.57"
3
+ version = "0.1.58"
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" }]
@@ -310,6 +310,17 @@ def run_app(
310
310
 
311
311
  def main() -> None:
312
312
  """Run the CLI application with custom error handling."""
313
+ config = get_config()
314
+ command_name = config._get_command_name()
315
+ if command_name == "usecli" and not config.is_usecli_direct_dependency():
316
+ console.print(
317
+ "[bold red]Error:[/bold red] usecli is not a direct dependency of this project."
318
+ )
319
+ console.print(
320
+ "Add it to your [cyan]pyproject.toml[/cyan] dependencies or dependency-groups."
321
+ )
322
+ sys.exit(1)
323
+
313
324
  try:
314
325
  app()
315
326
  except Exit:
@@ -659,14 +659,10 @@ class ConfigManager:
659
659
  """Check if usecli is a direct dependency of the current project.
660
660
 
661
661
  Returns True when:
662
- - The current command IS usecli (framework mode)
662
+ - The current project IS usecli (name matches)
663
663
  - usecli appears in pyproject.toml [project.dependencies]
664
664
  - usecli appears in pyproject.toml [dependency-groups]
665
665
  """
666
- command_name = self._get_command_name()
667
- if command_name == "usecli":
668
- return True
669
-
670
666
  if not self.pyproject_path.exists():
671
667
  return False
672
668
 
@@ -676,6 +672,10 @@ class ConfigManager:
676
672
  except (tomllib.TOMLDecodeError, OSError):
677
673
  return False
678
674
 
675
+ project_name = data.get("project", {}).get("name", "")
676
+ if isinstance(project_name, str) and project_name.strip().lower() == "usecli":
677
+ return True
678
+
679
679
  for dep in data.get("project", {}).get("dependencies", []):
680
680
  if isinstance(dep, str) and dep.strip().lower().startswith("usecli"):
681
681
  return True
File without changes
File without changes
File without changes
File without changes
File without changes