mcli-framework 7.8.4__py3-none-any.whl → 7.9.0__py3-none-any.whl

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.

Potentially problematic release.


This version of mcli-framework might be problematic. Click here for more details.

Files changed (81) hide show
  1. mcli/__init__.py +160 -0
  2. mcli/__main__.py +14 -0
  3. mcli/app/__init__.py +23 -0
  4. mcli/app/main.py +10 -17
  5. mcli/app/model/__init__.py +0 -0
  6. mcli/app/model_cmd.py +57 -472
  7. mcli/app/video/__init__.py +5 -0
  8. mcli/chat/__init__.py +34 -0
  9. mcli/lib/__init__.py +0 -0
  10. mcli/lib/api/__init__.py +0 -0
  11. mcli/lib/auth/__init__.py +1 -0
  12. mcli/lib/config/__init__.py +1 -0
  13. mcli/lib/erd/__init__.py +25 -0
  14. mcli/lib/files/__init__.py +0 -0
  15. mcli/lib/fs/__init__.py +1 -0
  16. mcli/lib/lib.py +8 -1
  17. mcli/lib/logger/__init__.py +3 -0
  18. mcli/lib/performance/__init__.py +17 -0
  19. mcli/lib/pickles/__init__.py +1 -0
  20. mcli/lib/secrets/__init__.py +10 -0
  21. mcli/lib/secrets/commands.py +185 -0
  22. mcli/lib/secrets/manager.py +213 -0
  23. mcli/lib/secrets/repl.py +297 -0
  24. mcli/lib/secrets/store.py +246 -0
  25. mcli/lib/shell/__init__.py +0 -0
  26. mcli/lib/toml/__init__.py +1 -0
  27. mcli/lib/watcher/__init__.py +0 -0
  28. mcli/ml/__init__.py +16 -0
  29. mcli/ml/api/__init__.py +30 -0
  30. mcli/ml/api/routers/__init__.py +27 -0
  31. mcli/ml/auth/__init__.py +41 -0
  32. mcli/ml/backtesting/__init__.py +33 -0
  33. mcli/ml/cli/__init__.py +5 -0
  34. mcli/ml/config/__init__.py +33 -0
  35. mcli/ml/configs/__init__.py +16 -0
  36. mcli/ml/dashboard/__init__.py +12 -0
  37. mcli/ml/dashboard/components/__init__.py +7 -0
  38. mcli/ml/dashboard/pages/__init__.py +6 -0
  39. mcli/ml/data_ingestion/__init__.py +29 -0
  40. mcli/ml/database/__init__.py +40 -0
  41. mcli/ml/experimentation/__init__.py +29 -0
  42. mcli/ml/features/__init__.py +39 -0
  43. mcli/ml/mlops/__init__.py +19 -0
  44. mcli/ml/models/__init__.py +90 -0
  45. mcli/ml/monitoring/__init__.py +25 -0
  46. mcli/ml/optimization/__init__.py +27 -0
  47. mcli/ml/predictions/__init__.py +5 -0
  48. mcli/ml/preprocessing/__init__.py +24 -0
  49. mcli/ml/scripts/__init__.py +1 -0
  50. mcli/ml/trading/__init__.py +63 -0
  51. mcli/ml/training/__init__.py +7 -0
  52. mcli/mygroup/__init__.py +3 -0
  53. mcli/public/__init__.py +1 -0
  54. mcli/public/commands/__init__.py +2 -0
  55. mcli/self/__init__.py +3 -0
  56. mcli/self/self_cmd.py +8 -0
  57. mcli/self/zsh_cmd.py +259 -0
  58. mcli/workflow/__init__.py +0 -0
  59. mcli/workflow/daemon/__init__.py +15 -0
  60. mcli/workflow/dashboard/__init__.py +5 -0
  61. mcli/workflow/docker/__init__.py +0 -0
  62. mcli/workflow/file/__init__.py +0 -0
  63. mcli/workflow/gcloud/__init__.py +1 -0
  64. mcli/workflow/git_commit/__init__.py +0 -0
  65. mcli/workflow/interview/__init__.py +0 -0
  66. mcli/workflow/politician_trading/__init__.py +4 -0
  67. mcli/workflow/registry/__init__.py +0 -0
  68. mcli/workflow/repo/__init__.py +0 -0
  69. mcli/workflow/scheduler/__init__.py +25 -0
  70. mcli/workflow/search/__init__.py +0 -0
  71. mcli/workflow/sync/__init__.py +5 -0
  72. mcli/workflow/videos/__init__.py +1 -0
  73. mcli/workflow/wakatime/__init__.py +80 -0
  74. {mcli_framework-7.8.4.dist-info → mcli_framework-7.9.0.dist-info}/METADATA +2 -1
  75. {mcli_framework-7.8.4.dist-info → mcli_framework-7.9.0.dist-info}/RECORD +79 -12
  76. mcli/app/chat_cmd.py +0 -42
  77. mcli/test/test_cmd.py +0 -20
  78. {mcli_framework-7.8.4.dist-info → mcli_framework-7.9.0.dist-info}/WHEEL +0 -0
  79. {mcli_framework-7.8.4.dist-info → mcli_framework-7.9.0.dist-info}/entry_points.txt +0 -0
  80. {mcli_framework-7.8.4.dist-info → mcli_framework-7.9.0.dist-info}/licenses/LICENSE +0 -0
  81. {mcli_framework-7.8.4.dist-info → mcli_framework-7.9.0.dist-info}/top_level.txt +0 -0
mcli/__init__.py ADDED
@@ -0,0 +1,160 @@
1
+ # logger.info("I am in mcli.__init__.py")
2
+ import sys
3
+
4
+ try:
5
+ from mcli.app import main
6
+
7
+ # from mcli.public import *
8
+ # from mcli.private import *
9
+ # Import the complete Click superset decorators
10
+ from mcli.lib.api.mcli_decorators import BOOL # mcli.BOOL - Click BOOL type
11
+ from mcli.lib.api.mcli_decorators import FLOAT # mcli.FLOAT - Click FLOAT type
12
+ from mcli.lib.api.mcli_decorators import INT # mcli.INT - Click INT type
13
+ from mcli.lib.api.mcli_decorators import STRING # mcli.STRING - Click STRING type
14
+ from mcli.lib.api.mcli_decorators import UNPROCESSED # mcli.UNPROCESSED - Click UNPROCESSED
15
+ from mcli.lib.api.mcli_decorators import UUID # mcli.UUID - Click UUID type
16
+ from mcli.lib.api.mcli_decorators import Abort # mcli.Abort - Click Abort
17
+ from mcli.lib.api.mcli_decorators import BadParameter # mcli.BadParameter - Click BadParameter
18
+ from mcli.lib.api.mcli_decorators import Choice # mcli.Choice - Click Choice type
19
+ from mcli.lib.api.mcli_decorators import File # mcli.File - Click File type
20
+ from mcli.lib.api.mcli_decorators import FloatRange # mcli.FloatRange - Click FloatRange type
21
+ from mcli.lib.api.mcli_decorators import IntRange # mcli.IntRange - Click IntRange type
22
+ from mcli.lib.api.mcli_decorators import ParamType # mcli.ParamType - Click ParamType
23
+ from mcli.lib.api.mcli_decorators import Path # mcli.Path - Click Path type
24
+ from mcli.lib.api.mcli_decorators import UsageError # mcli.UsageError - Click UsageError
25
+ from mcli.lib.api.mcli_decorators import api # @mcli.api - Legacy API decorator
26
+ from mcli.lib.api.mcli_decorators import (
27
+ api_command, # @mcli.api_command - Convenience for API endpoints
28
+ )
29
+ from mcli.lib.api.mcli_decorators import argument # @mcli.argument - Click argument decorator
30
+ from mcli.lib.api.mcli_decorators import (
31
+ background, # @mcli.background - Legacy background decorator
32
+ )
33
+ from mcli.lib.api.mcli_decorators import (
34
+ background_command, # @mcli.background_command - Convenience for background
35
+ )
36
+ from mcli.lib.api.mcli_decorators import clear # mcli.clear - Click clear
37
+ from mcli.lib.api.mcli_decorators import (
38
+ cli_with_api, # @mcli.cli_with_api - Legacy combined decorator
39
+ )
40
+ from mcli.lib.api.mcli_decorators import (
41
+ command, # @mcli.command - Complete Click command with API/background
42
+ )
43
+ from mcli.lib.api.mcli_decorators import confirm # mcli.confirm - Click confirmation
44
+ from mcli.lib.api.mcli_decorators import echo # mcli.echo - Click echo function
45
+ from mcli.lib.api.mcli_decorators import edit # mcli.edit - Click editor
46
+ from mcli.lib.api.mcli_decorators import (
47
+ format_filename, # mcli.format_filename - Click filename
48
+ )
49
+ from mcli.lib.api.mcli_decorators import get_app # mcli.get_app - Click app
50
+ from mcli.lib.api.mcli_decorators import get_app_dir # mcli.get_app_dir - Click app directory
51
+ from mcli.lib.api.mcli_decorators import (
52
+ get_binary_stream, # mcli.get_binary_stream - Click binary stream
53
+ )
54
+ from mcli.lib.api.mcli_decorators import (
55
+ get_current_context, # mcli.get_current_context - Click context
56
+ )
57
+ from mcli.lib.api.mcli_decorators import (
58
+ get_network_credentials, # mcli.get_network_credentials - Click network
59
+ )
60
+ from mcli.lib.api.mcli_decorators import get_os_args # mcli.get_os_args - Click OS args
61
+ from mcli.lib.api.mcli_decorators import (
62
+ get_terminal_size, # mcli.get_terminal_size - Click terminal size
63
+ )
64
+ from mcli.lib.api.mcli_decorators import (
65
+ get_text_stream, # mcli.get_text_stream - Click text stream
66
+ )
67
+ from mcli.lib.api.mcli_decorators import getchar # mcli.getchar - Click character input
68
+ from mcli.lib.api.mcli_decorators import (
69
+ group, # @mcli.group - Complete Click group with API support
70
+ )
71
+ from mcli.lib.api.mcli_decorators import launch # mcli.launch - Click launch
72
+ from mcli.lib.api.mcli_decorators import open_file # mcli.open_file - Click file operations
73
+ from mcli.lib.api.mcli_decorators import option # @mcli.option - Click option decorator
74
+ from mcli.lib.api.mcli_decorators import pause # mcli.pause - Click pause
75
+ from mcli.lib.api.mcli_decorators import progressbar # mcli.progressbar - Click progress bar
76
+ from mcli.lib.api.mcli_decorators import prompt # mcli.prompt - Click prompt
77
+ from mcli.lib.api.mcli_decorators import secho # mcli.secho - Click styled echo
78
+ from mcli.lib.api.mcli_decorators import style # mcli.style - Click styling
79
+ from mcli.lib.api.mcli_decorators import unstyle # mcli.unstyle - Click unstyle
80
+ from mcli.lib.api.mcli_decorators import ( # Core decorators (complete Click superset); Click re-exports (complete subsume); Click types (complete subsume); Convenience decorators; Legacy decorators (for backward compatibility); Server management; Configuration; Convenience functions
81
+ disable_api_server,
82
+ enable_api_server,
83
+ get_api_config,
84
+ health_check,
85
+ is_background_available,
86
+ is_server_running,
87
+ start_server,
88
+ status_check,
89
+ stop_server,
90
+ )
91
+
92
+ # Make everything available at the top level (complete Click subsume)
93
+ __all__ = [
94
+ "main",
95
+ # Core decorators (complete Click superset)
96
+ "command",
97
+ "group",
98
+ # Click re-exports (complete subsume)
99
+ "option",
100
+ "argument",
101
+ "echo",
102
+ "get_current_context",
103
+ "get_app",
104
+ "launch",
105
+ "open_file",
106
+ "get_os_args",
107
+ "get_binary_stream",
108
+ "get_text_stream",
109
+ "format_filename",
110
+ "getchar",
111
+ "pause",
112
+ "clear",
113
+ "style",
114
+ "unstyle",
115
+ "secho",
116
+ "edit",
117
+ "confirm",
118
+ "prompt",
119
+ "progressbar",
120
+ "get_terminal_size",
121
+ "get_app_dir",
122
+ "get_network_credentials",
123
+ # Click types (complete subsume)
124
+ "Path",
125
+ "Choice",
126
+ "IntRange",
127
+ "FloatRange",
128
+ "UNPROCESSED",
129
+ "STRING",
130
+ "INT",
131
+ "FLOAT",
132
+ "BOOL",
133
+ "UUID",
134
+ "File",
135
+ "ParamType",
136
+ "BadParameter",
137
+ "UsageError",
138
+ "Abort",
139
+ # Convenience decorators
140
+ "api_command",
141
+ "background_command",
142
+ # Legacy decorators (for backward compatibility)
143
+ "api",
144
+ "background",
145
+ "cli_with_api",
146
+ # Server management
147
+ "start_server",
148
+ "stop_server",
149
+ "is_server_running",
150
+ "is_background_available",
151
+ "get_api_config",
152
+ "enable_api_server",
153
+ "disable_api_server",
154
+ "health_check",
155
+ "status_check",
156
+ ]
157
+
158
+ except ImportError:
159
+ # from .app import main
160
+ sys.exit(1)
mcli/__main__.py ADDED
@@ -0,0 +1,14 @@
1
+ # logger.info("I am in mcli.__init__.py")
2
+
3
+ try:
4
+ from mcli.app.main import main as main_func
5
+
6
+ # from mcli.public import *
7
+ # from mcli.private import *
8
+ except ImportError:
9
+ from .app.main import main as main_func
10
+
11
+ __all__ = ["main_func"]
12
+
13
+ if __name__ == "__main__":
14
+ main_func()
mcli/app/__init__.py ADDED
@@ -0,0 +1,23 @@
1
+ # src/mcli/app/__init__.py
2
+ import importlib
3
+ from pathlib import Path
4
+
5
+ from mcli.lib.logger.logger import get_logger
6
+
7
+ logger = get_logger(__name__)
8
+
9
+ logger.info("Initializing mcli.app package")
10
+
11
+ # Import main function
12
+ try:
13
+ from .main import main
14
+
15
+ logger.info("Successfully imported main from .main")
16
+ except ImportError as e:
17
+ logger.error(f"Failed to import main: {e}")
18
+ import traceback
19
+
20
+ logger.error(f"Traceback: {traceback.format_exc()}")
21
+ raise
22
+
23
+ __all__ = ["main"]
mcli/app/main.py CHANGED
@@ -12,8 +12,6 @@ from typing import List, Optional
12
12
  import click
13
13
  import tomli
14
14
 
15
- # Import chat command group
16
- from mcli.app.chat_cmd import chat
17
15
  from mcli.lib.logger.logger import disable_runtime_tracing, enable_runtime_tracing, get_logger
18
16
  from mcli.lib.ui.styling import info, success
19
17
 
@@ -346,14 +344,14 @@ def _add_lazy_commands(app: click.Group):
346
344
  except Exception as e:
347
345
  logger.debug(f"Could not load self commands: {e}")
348
346
 
349
- # Test group - load immediately for testing commands
347
+ # Library utilities and secrets management
350
348
  try:
351
- from mcli.test.test_cmd import test_group
349
+ from mcli.lib.lib import lib
352
350
 
353
- app.add_command(test_group, name="test")
354
- logger.debug("Added test group commands")
351
+ app.add_command(lib, name="lib")
352
+ logger.debug("Added lib commands")
355
353
  except Exception as e:
356
- logger.debug(f"Could not load test commands: {e}")
354
+ logger.debug(f"Could not load lib commands: {e}")
357
355
 
358
356
  # Add workflow with completion-aware lazy loading
359
357
  try:
@@ -377,16 +375,11 @@ def _add_lazy_commands(app: click.Group):
377
375
  app.add_command(workflow_group, name="workflow")
378
376
 
379
377
  # Lazy load other heavy commands that are used less frequently
380
- lazy_commands = {
381
- "chat": {
382
- "import_path": "mcli.app.chat_cmd.chat",
383
- "help": "Start an interactive chat session with the MCLI Chat Assistant.",
384
- },
385
- "model": {
386
- "import_path": "mcli.app.model_cmd.model",
387
- "help": "Model management commands for offline and online model usage",
388
- },
389
- }
378
+ # NOTE: chat and model commands have been removed
379
+ # - chat: removed from core commands
380
+ # - model: moved to ~/.mcli/commands workflow
381
+ # - test: removed from core commands
382
+ lazy_commands = {}
390
383
 
391
384
  for cmd_name, cmd_info in lazy_commands.items():
392
385
  # Skip workflow since we already added it with completion support
File without changes