mcli-framework 7.8.5__py3-none-any.whl → 7.9.1__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.

@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env python3
2
+ """Entry point for model serving CLI."""
3
+
4
+ import click
5
+
6
+ from mcli.lib.ui.styling import error, info, success
7
+
8
+
9
+ @click.group(name="mcli-serve", help="Model serving CLI for MCLI ML models")
10
+ def cli():
11
+ """Main CLI group for model serving."""
12
+ pass
13
+
14
+
15
+ @cli.command(name="start", help="Start model serving server")
16
+ @click.option("--model", required=True, help="Model to serve")
17
+ @click.option("--port", default=8000, help="Port to serve on")
18
+ @click.option("--host", default="0.0.0.0", help="Host to bind to")
19
+ def start_server(model: str, port: int, host: str):
20
+ """Start the model serving server."""
21
+ info(f"Starting model server for: {model}")
22
+ info(f"Serving on {host}:{port}")
23
+
24
+ # TODO: Implement actual model serving
25
+ error("Model serving functionality not yet implemented")
26
+
27
+
28
+ @cli.command(name="stop", help="Stop model serving server")
29
+ def stop_server():
30
+ """Stop the model serving server."""
31
+ info("Stopping model server...")
32
+ # TODO: Implement server stopping
33
+ error("Server stopping not yet implemented")
34
+
35
+
36
+ @cli.command(name="status", help="Check server status")
37
+ def server_status():
38
+ """Check the status of the model server."""
39
+ info("Checking server status...")
40
+ # TODO: Implement status check
41
+ error("Status check not yet implemented")
42
+
43
+
44
+ def main():
45
+ """Main entry point."""
46
+ cli()
47
+
48
+
49
+ if __name__ == "__main__":
50
+ main()
@@ -0,0 +1,73 @@
1
+ #!/usr/bin/env python3
2
+ """Entry point for model training CLI."""
3
+
4
+ import click
5
+
6
+ from mcli.lib.ui.styling import error, info, success
7
+
8
+
9
+ @click.group(name="mcli-train", help="Model training CLI for MCLI ML system")
10
+ def cli():
11
+ """Main CLI group for model training."""
12
+ pass
13
+
14
+
15
+ @cli.command(name="model", help="Train a model")
16
+ @click.option("--model-type", required=True, help="Type of model to train")
17
+ @click.option("--dataset", required=True, help="Path to training dataset")
18
+ @click.option("--epochs", default=100, help="Number of training epochs")
19
+ @click.option("--batch-size", default=32, help="Batch size for training")
20
+ @click.option("--learning-rate", default=0.001, help="Learning rate")
21
+ @click.option("--output-dir", help="Directory to save trained model")
22
+ def train_model(model_type: str, dataset: str, epochs: int, batch_size: int, learning_rate: float, output_dir: str):
23
+ """Train a model with the specified parameters."""
24
+ info(f"Training {model_type} model")
25
+ info(f"Dataset: {dataset}")
26
+ info(f"Epochs: {epochs}, Batch size: {batch_size}, Learning rate: {learning_rate}")
27
+
28
+ # TODO: Implement actual training logic
29
+ error("Model training functionality not yet implemented")
30
+
31
+
32
+ @cli.command(name="resume", help="Resume training from checkpoint")
33
+ @click.option("--checkpoint", required=True, help="Path to checkpoint file")
34
+ @click.option("--epochs", default=50, help="Additional epochs to train")
35
+ def resume_training(checkpoint: str, epochs: int):
36
+ """Resume training from a checkpoint."""
37
+ info(f"Resuming training from: {checkpoint}")
38
+ info(f"Additional epochs: {epochs}")
39
+
40
+ # TODO: Implement resume functionality
41
+ error("Resume training not yet implemented")
42
+
43
+
44
+ @cli.command(name="politician-trading", help="Train politician trading prediction model")
45
+ @click.option("--output-dir", default="models", help="Directory to save trained model")
46
+ def train_politician_trading(output_dir: str):
47
+ """Train the politician trading prediction model."""
48
+ info("Training politician trading prediction model...")
49
+
50
+ try:
51
+ # Import the actual training function
52
+ from mcli.ml.training.train_model import train_politician_trading_model
53
+
54
+ # Run the training
55
+ metrics = train_politician_trading_model(output_dir)
56
+
57
+ if metrics:
58
+ success(f"Training completed! Final loss: {metrics.get('final_loss', 'N/A')}")
59
+ else:
60
+ error("Training failed")
61
+ except ImportError:
62
+ error("Politician trading model training not available")
63
+ except Exception as e:
64
+ error(f"Training failed: {str(e)}")
65
+
66
+
67
+ def main():
68
+ """Main entry point."""
69
+ cli()
70
+
71
+
72
+ if __name__ == "__main__":
73
+ main()
mcli/self/self_cmd.py CHANGED
@@ -1029,6 +1029,14 @@ try:
1029
1029
  except ImportError as e:
1030
1030
  logger.debug(f"Could not load redis command: {e}")
1031
1031
 
1032
+ try:
1033
+ from mcli.self.zsh_cmd import zsh_group
1034
+
1035
+ self_app.add_command(zsh_group, name="zsh")
1036
+ logger.debug("Added zsh command to self group")
1037
+ except ImportError as e:
1038
+ logger.debug(f"Could not load zsh command: {e}")
1039
+
1032
1040
  try:
1033
1041
  from mcli.self.visual_cmd import visual
1034
1042
 
mcli/self/zsh_cmd.py ADDED
@@ -0,0 +1,259 @@
1
+ """
2
+ ZSH-specific commands and utilities for MCLI.
3
+ """
4
+
5
+ import os
6
+ import subprocess
7
+ from pathlib import Path
8
+ from typing import Optional
9
+
10
+ import click
11
+
12
+ from mcli.lib.logger.logger import get_logger
13
+
14
+ logger = get_logger(__name__)
15
+ from mcli.lib.ui.styling import error, info, success, warning
16
+
17
+
18
+ @click.group(name="zsh", help="ZSH shell integration and utilities")
19
+ def zsh_group():
20
+ """ZSH-specific commands and utilities."""
21
+ pass
22
+
23
+
24
+ @zsh_group.command(name="config", help="Configure ZSH for optimal MCLI experience")
25
+ @click.option("--force", is_flag=True, help="Force reconfiguration even if already set up")
26
+ def zsh_config(force: bool):
27
+ """Configure ZSH with MCLI-specific settings."""
28
+ zshrc = Path.home() / ".zshrc"
29
+
30
+ if not zshrc.exists():
31
+ if click.confirm("No .zshrc found. Create one?"):
32
+ zshrc.touch()
33
+ else:
34
+ warning("Configuration cancelled")
35
+ return
36
+
37
+ configs_added = [] # noqa: F841
38
+
39
+ # Read existing content
40
+ content = zshrc.read_text()
41
+
42
+ # MCLI configuration block
43
+ mcli_block_start = "# BEGIN MCLI ZSH CONFIG"
44
+ mcli_block_end = "# END MCLI ZSH CONFIG"
45
+
46
+ if mcli_block_start in content and not force:
47
+ info("MCLI ZSH configuration already exists. Use --force to reconfigure.")
48
+ return
49
+
50
+ # Remove old block if forcing
51
+ if mcli_block_start in content and force:
52
+ lines = content.split("\n")
53
+ new_lines = []
54
+ in_block = False
55
+
56
+ for line in lines:
57
+ if line.strip() == mcli_block_start:
58
+ in_block = True
59
+ elif line.strip() == mcli_block_end:
60
+ in_block = False
61
+ continue
62
+ elif not in_block:
63
+ new_lines.append(line)
64
+
65
+ content = "\n".join(new_lines)
66
+
67
+ # Build configuration
68
+ config_lines = [
69
+ "",
70
+ mcli_block_start,
71
+ "# MCLI aliases",
72
+ "alias m='mcli'",
73
+ "alias mc='mcli chat'",
74
+ "alias mw='mcli workflow'",
75
+ "alias ms='mcli self'",
76
+ "alias mls='mcli lib secrets'",
77
+ "alias mlsr='mcli lib secrets repl'",
78
+ "",
79
+ "# MCLI environment",
80
+ 'export MCLI_HOME="$HOME/.mcli"',
81
+ 'export PATH="$MCLI_HOME/bin:$PATH"',
82
+ "",
83
+ "# MCLI completion",
84
+ 'fpath=("$HOME/.config/zsh/completions" $fpath)',
85
+ "autoload -U compinit && compinit",
86
+ "",
87
+ "# MCLI prompt integration (optional)",
88
+ '# PS1="%{$fg[cyan]%}[mcli]%{$reset_color%} $PS1"',
89
+ "",
90
+ mcli_block_end,
91
+ "",
92
+ ]
93
+
94
+ # Append configuration
95
+ with zshrc.open("a") as f:
96
+ f.write("\n".join(config_lines))
97
+
98
+ success("ZSH configuration added successfully!")
99
+
100
+ # Install completion if not already installed
101
+ completion_dir = Path.home() / ".config" / "zsh" / "completions"
102
+ completion_file = completion_dir / "_mcli"
103
+
104
+ if not completion_file.exists():
105
+ info("Installing ZSH completion...")
106
+ try:
107
+ subprocess.run(["mcli", "self", "completion", "install", "--shell=zsh"], check=True)
108
+ configs_added.append("completion")
109
+ except subprocess.CalledProcessError:
110
+ warning("Failed to install completion automatically")
111
+
112
+ info("\nConfigured:")
113
+ info(" • Aliases: m, mc, mw, ms, mls, mlsr")
114
+ info(" • Environment variables: MCLI_HOME, PATH")
115
+ info(" • Shell completion support")
116
+ info("\nReload your shell configuration:")
117
+ info(" source ~/.zshrc")
118
+
119
+
120
+ @zsh_group.command(name="aliases", help="Show available ZSH aliases")
121
+ def zsh_aliases():
122
+ """Display MCLI ZSH aliases."""
123
+ aliases = [
124
+ ("m", "mcli", "Main MCLI command"),
125
+ ("mc", "mcli chat", "Open chat interface"),
126
+ ("mw", "mcli workflow", "Workflow commands"),
127
+ ("ms", "mcli self", "Self management commands"),
128
+ ("mls", "mcli lib secrets", "Secrets management"),
129
+ ("mlsr", "mcli lib secrets repl", "Secrets REPL"),
130
+ ]
131
+
132
+ info("MCLI ZSH Aliases:")
133
+ for alias, command, desc in aliases:
134
+ click.echo(f" {alias:<6} → {command:<25} # {desc}")
135
+
136
+
137
+ @zsh_group.command(name="prompt", help="Configure ZSH prompt with MCLI integration")
138
+ @click.option("--style", type=click.Choice(["simple", "powerline", "minimal"]), default="simple")
139
+ def zsh_prompt(style: str):
140
+ """Add MCLI status to ZSH prompt."""
141
+ zshrc = Path.home() / ".zshrc"
142
+
143
+ if not zshrc.exists():
144
+ error("No .zshrc found")
145
+ return
146
+
147
+ prompt_configs = {
148
+ "simple": 'PS1="%{$fg[cyan]%}[mcli]%{$reset_color%} $PS1"',
149
+ "powerline": 'PS1="%{$fg[cyan]%} mcli %{$reset_color%}$PS1"',
150
+ "minimal": 'PS1="◆ $PS1"',
151
+ }
152
+
153
+ config = prompt_configs[style]
154
+
155
+ # Check if prompt section exists
156
+ content = zshrc.read_text()
157
+ prompt_marker = "# MCLI prompt integration"
158
+
159
+ if prompt_marker in content:
160
+ # Update existing prompt
161
+ lines = content.split("\n")
162
+ for i, line in enumerate(lines):
163
+ if line.strip() == prompt_marker:
164
+ if i + 1 < len(lines) and lines[i + 1].startswith("PS1="):
165
+ lines[i + 1] = config
166
+ content = "\n".join(lines)
167
+ zshrc.write_text(content)
168
+ success(f"Updated prompt to {style} style")
169
+ break
170
+ else:
171
+ warning("MCLI ZSH configuration not found. Run 'mcli self zsh config' first.")
172
+
173
+
174
+ @zsh_group.command(name="functions", help="Install useful ZSH functions")
175
+ def zsh_functions():
176
+ """Install MCLI-specific ZSH functions."""
177
+ functions_dir = Path.home() / ".config" / "zsh" / "functions"
178
+ functions_dir.mkdir(parents=True, exist_ok=True)
179
+
180
+ # Create mcli-quick function
181
+ quick_func = functions_dir / "mcli-quick"
182
+ quick_func.write_text(
183
+ """# Quick MCLI command runner
184
+ mcli-quick() {
185
+ local cmd=$1
186
+ shift
187
+ mcli $cmd "$@" | head -20
188
+ }"""
189
+ )
190
+
191
+ # Create mcli-fzf function for fuzzy finding
192
+ fzf_func = functions_dir / "mcli-fzf"
193
+ fzf_func.write_text(
194
+ """# Fuzzy find MCLI commands
195
+ mcli-fzf() {
196
+ local cmd=$(mcli --help | grep -E '^ [a-z]' | awk '{print $1}' | fzf)
197
+ if [[ -n $cmd ]]; then
198
+ print -z "mcli $cmd "
199
+ fi
200
+ }"""
201
+ )
202
+
203
+ # Add to zshrc
204
+ zshrc = Path.home() / ".zshrc"
205
+ if zshrc.exists():
206
+ content = zshrc.read_text()
207
+ fpath_line = f'fpath=("{functions_dir}" $fpath)'
208
+
209
+ if str(functions_dir) not in content:
210
+ with zshrc.open("a") as f:
211
+ f.write(f"\n# MCLI ZSH functions\n{fpath_line}\nautoload -U mcli-quick mcli-fzf\n")
212
+
213
+ success("ZSH functions installed:")
214
+ info(" • mcli-quick: Run MCLI commands with truncated output")
215
+ info(" • mcli-fzf: Fuzzy find MCLI commands (requires fzf)")
216
+
217
+
218
+ @zsh_group.command(name="test", help="Test ZSH integration")
219
+ def zsh_test():
220
+ """Test ZSH integration and configuration."""
221
+ checks = []
222
+
223
+ # Check if running in ZSH
224
+ shell = os.environ.get("SHELL", "")
225
+ if "zsh" in shell:
226
+ checks.append(("ZSH shell detected", True))
227
+ else:
228
+ checks.append(("ZSH shell detected", False))
229
+
230
+ # Check completion
231
+ completion_file = Path.home() / ".config" / "zsh" / "completions" / "_mcli"
232
+ checks.append(("Completion installed", completion_file.exists()))
233
+
234
+ # Check zshrc
235
+ zshrc = Path.home() / ".zshrc"
236
+ if zshrc.exists():
237
+ content = zshrc.read_text()
238
+ checks.append(("MCLI config in .zshrc", "BEGIN MCLI ZSH CONFIG" in content))
239
+ checks.append(("Completion in fpath", ".config/zsh/completions" in content))
240
+ else:
241
+ checks.append((".zshrc exists", False))
242
+
243
+ # Check aliases
244
+ try:
245
+ result = subprocess.run(["zsh", "-c", "alias | grep mcli"], capture_output=True, text=True)
246
+ checks.append(("Aliases configured", result.returncode == 0))
247
+ except:
248
+ checks.append(("Aliases configured", False))
249
+
250
+ # Display results
251
+ info("ZSH Integration Test Results:")
252
+ for check, passed in checks:
253
+ status = "✅" if passed else "❌"
254
+ click.echo(f" {status} {check}")
255
+
256
+ if all(passed for _, passed in checks):
257
+ success("\nAll checks passed! ZSH integration is working correctly.")
258
+ else:
259
+ warning("\nSome checks failed. Run 'mcli self zsh config' to set up integration.")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcli-framework
3
- Version: 7.8.5
3
+ Version: 7.9.1
4
4
  Summary: Portable workflow framework - transform any script into a versioned, schedulable command. Store in ~/.mcli/commands/, version with lockfile, run as daemon or cron job.
5
5
  Author-email: Luis Fernandez de la Vara <luis@lefv.io>
6
6
  Maintainer-email: Luis Fernandez de la Vara <luis@lefv.io>
@@ -48,6 +48,7 @@ Requires-Dist: humanize<5.0.0,>=4.9.0
48
48
  Requires-Dist: psutil<6.0.0,>=5.9.0
49
49
  Requires-Dist: inquirerpy<0.4.0,>=0.3.4
50
50
  Requires-Dist: gitpython<4.0.0,>=3.1.40
51
+ Requires-Dist: prompt-toolkit<4.0.0,>=3.0.0
51
52
  Requires-Dist: aiohttp>=3.9.0
52
53
  Requires-Dist: httpx>=0.28.1
53
54
  Requires-Dist: websockets>=12.0
@@ -5,7 +5,7 @@ mcli/config.toml,sha256=263yEVvP_W9F2zOLssUBgy7amKaRAFQuBrfxcMhKxaQ,1706
5
5
  mcli/app/__init__.py,sha256=D4RiKk2gOEXwanbe_jXyNSb5zdgNi47kahtskMnEwjY,489
6
6
  mcli/app/commands_cmd.py,sha256=gixyyrMV4wDLeTRRDlUx1NG46ceIswsIV3u-zPvtNjw,58655
7
7
  mcli/app/completion_helpers.py,sha256=e62C6w2N-XoD66GYYHgtvKKoD3kYMuIeBBGzVKbuL04,7497
8
- mcli/app/main.py,sha256=3ehRwx_-9M4yOa--CTsRq9EKyN1UukRGKXHSWNmul7I,18944
8
+ mcli/app/main.py,sha256=aFQbKMTqClswmwwxpbS5zxVXOXcZMvF27LO19x1X7Cg,19208
9
9
  mcli/app/model_cmd.py,sha256=OkFxJwZFCO-8IH6j1FPq-32qqhitbDvrUGf3IooBL54,2562
10
10
  mcli/app/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  mcli/app/model/model.py,sha256=EUGu_td-hRlbf4OElkdk1-0p7WyuG7sZmb-Ux2-J9KY,39061
@@ -19,7 +19,7 @@ mcli/chat/system_controller.py,sha256=SuGvnIh2QObvM1DMicF3gGyeBkbz_xXS-hOOHjWx5j
19
19
  mcli/chat/system_integration.py,sha256=xQ11thOUswPg8r1HZkId6U3bTCOtMYngt0-mUYYXpt4,40196
20
20
  mcli/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
21
  mcli/lib/custom_commands.py,sha256=PCC3uRLN6bcIKCh7GJ98vuNm5R2o9xRRCvCMQcIhj0o,14489
22
- mcli/lib/lib.py,sha256=mlp2INx-UKTOECcA7Kens9yNt2gJi7GbKWFmf4cxj0c,632
22
+ mcli/lib/lib.py,sha256=-CFUfmcubYBxt3LDBY0uj9DF232pz8MPDu-Qg0Ocy8M,850
23
23
  mcli/lib/paths.py,sha256=k6sDwvD8QRzBkBOllvXkokameumpTjpJ7pQrP7z1en0,2455
24
24
  mcli/lib/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  mcli/lib/api/api.py,sha256=sPgAIYC8Z7AWV2TCBssNSKotbRggBqNLsbfzbjkhmUY,18558
@@ -57,6 +57,11 @@ mcli/lib/performance/uvloop_config.py,sha256=wyI5pQnec2RAhgm52HJ1AxYGFa3bjTa-Cjh
57
57
  mcli/lib/pickles/__init__.py,sha256=b7l9CLv8Aua5sROYAaA4raxpWTKSJxUumTLqmzlkb-I,33
58
58
  mcli/lib/pickles/pickles.py,sha256=O9dLJfyxViX-IyionbcjcsxHnq42XiLaAorsUrx9oZU,1448
59
59
  mcli/lib/search/cached_vectorizer.py,sha256=ShBSTqoyGNGTNAII34okxl4chzy7hqhO2R-jtTEF1_0,17996
60
+ mcli/lib/secrets/__init__.py,sha256=amoAq00syRdQuII3BnvizGmhXbf6vZNN2qnrHtBROvA,241
61
+ mcli/lib/secrets/commands.py,sha256=-PovQ4X1QV3LxqO3hRBIG8JkqA0SJlA_skcg-xCxg-M,6169
62
+ mcli/lib/secrets/manager.py,sha256=kjHNQ7_TeQlF1ZyfhfKZ00Mu1wn06Vw6K8FQL0nyU1s,6698
63
+ mcli/lib/secrets/repl.py,sha256=rmBFVi8lB4r3pRnicpX318IaTrtshPEaBqC-PZaMs0Y,10351
64
+ mcli/lib/secrets/store.py,sha256=vl-K_OjqlNIvypf4BCwCbtNZPk91QngNYqhwWwKupDw,7838
60
65
  mcli/lib/services/data_pipeline.py,sha256=UwDpAByOL_PDMjD76aOTmCyStd_QBmCngZBMXVerR5Y,16475
61
66
  mcli/lib/services/lsh_client.py,sha256=sJSXlWBqnhNQy7TtYMmcAwBceUp45rYa_HgdyYF0WtI,16799
62
67
  mcli/lib/services/redis_service.py,sha256=5QwSB-FMIS1zdTNp8VSOrZfr_wrUK10Bfe2N1ZTy-90,12730
@@ -92,8 +97,9 @@ mcli/ml/auth/auth_manager.py,sha256=_UUt42YCMKxCEfOxuw4rGMVjh6BQEP0dbLOP_EzSvFQ,
92
97
  mcli/ml/auth/models.py,sha256=Ww6lMLVGxtH6Biru5z4efSULCudQFXgmUWgVPTfUCwo,4398
93
98
  mcli/ml/auth/permissions.py,sha256=9N8Q6zQ-0-WcErVxviVzHELpzurBAby02wI3C1YziF0,8400
94
99
  mcli/ml/backtesting/__init__.py,sha256=z0UVuZlXatyJr4eh4tpF-8ytJbmBmLMtNr6TmnbN4hU,717
95
- mcli/ml/backtesting/backtest_engine.py,sha256=LhUdKYLZ9FHRYmBzmW6HPWJZpwYCqorjjWcwvhyjGEU,19081
100
+ mcli/ml/backtesting/backtest_engine.py,sha256=bmgHd1MBHQT4ddgWMdOQH8cFw8M_iiLqde6Yga2Q2ys,19016
96
101
  mcli/ml/backtesting/performance_metrics.py,sha256=M4qe9QYYserwuCSMMMKwsT6-GEJbH4rHDl66NO31IC0,14674
102
+ mcli/ml/backtesting/run.py,sha256=j_a5-ZOywbUKehERwtRsn_0hBLHQI4dsaPcMTYblGIs,1804
97
103
  mcli/ml/cli/__init__.py,sha256=ZUo2l2VBEZTMW2lqyWGqIwqiKgRX46GinXQfvdAoH0Y,76
98
104
  mcli/ml/cli/main.py,sha256=9U_cgB4M0AtWCghB5H0388v41sZ-qvJwcMdSKh2_SO0,15664
99
105
  mcli/ml/config/__init__.py,sha256=br-ihnAUIOIyQMXGZIB3xX_y2XB3uXBZyMzRa0lwopE,611
@@ -151,13 +157,14 @@ mcli/ml/mlops/model_serving.py,sha256=GCN53jZiz62vlH-ST8RLbZ2ZFBqvAAXUW33fJgdpFv
151
157
  mcli/ml/mlops/pipeline_orchestrator.py,sha256=2JU2ORNjLjRRLIXN7UzR5_Hq1vmie89H4ZXKq8kIoJU,23514
152
158
  mcli/ml/models/__init__.py,sha256=pZbjBBG8GJanXgX3txg8cst2PzLY22X_LtyFhsq71Jo,2377
153
159
  mcli/ml/models/base_models.py,sha256=eYSf1EQo5w0zInyypl9Qt_2St8mw1rCvS_gVLAsQyYI,10344
154
- mcli/ml/models/ensemble_models.py,sha256=dc7mkwVlfDBENN9jXWlsdWVsivHkaSDyCSfOeO_EAaw,22697
155
- mcli/ml/models/recommendation_models.py,sha256=DwARWgBbjYD1owFIu8qi2zaFQA3OBxoKcYw3gUKNw8o,17107
160
+ mcli/ml/models/ensemble_models.py,sha256=qyddEf3Pl2ESNE-BFCu-WvMmpgkpPh2ur1pH-YQvmrE,22712
161
+ mcli/ml/models/recommendation_models.py,sha256=ZStqlSHICKzHMYcEuudc0iHA2GrcxuyScuQtan-LwPg,17137
156
162
  mcli/ml/models/test_models.py,sha256=_amqLeqFF1X8dCBSgIx8Jt4h4XdLqcPZNW2uq4Hd_Ow,15762
157
163
  mcli/ml/monitoring/__init__.py,sha256=DGsaxZQaFqZ-qkkOIfV4yoDx6dBdit1wvXG5P8qDBgU,473
158
164
  mcli/ml/monitoring/drift_detection.py,sha256=MlRWvqDqUYddXsCzFS4bPdMNC2xKkwA1Ghrdf1z0LRE,26112
159
165
  mcli/ml/monitoring/metrics.py,sha256=lC1npD1TzmhTz47WzAH6-jgCrFSvkPiMbo9TacsP0tI,1028
160
166
  mcli/ml/optimization/__init__.py,sha256=LqWont1FqQblM_1GNsVkahTHjQJ7SafX-JNLOXurUlU,633
167
+ mcli/ml/optimization/optimize.py,sha256=fknlTSVKnLT15bdkIswk9Wp8xhU23N1qAp7u4tSG3w8,1946
161
168
  mcli/ml/optimization/portfolio_optimizer.py,sha256=QxkLegU9T7Yv52ZBFtXdeRbS7ybxmKA6uK5d7yJkyNA,31298
162
169
  mcli/ml/predictions/__init__.py,sha256=yA_0mn390awKiI1r3pR71fDa8_mqd3RGUlcCrwymaiM,129
163
170
  mcli/ml/predictions/monte_carlo.py,sha256=33kqyqYzMAmXXDdq5q3LLSTqqKjAoJdFYuiD3J8ApmU,13630
@@ -170,6 +177,8 @@ mcli/ml/preprocessing/politician_trading_preprocessor.py,sha256=woyZGaV6jD4cK9Xk
170
177
  mcli/ml/preprocessing/test_preprocessing.py,sha256=4BJFTTB5D62hdP3HzjO0-Sc7eq5JzATcXvYk2uw7MBc,9576
171
178
  mcli/ml/scripts/__init__.py,sha256=_ToblHT7nJhsbO7IQXjBj6OJHrjynfhlE60Ku_yvFB4,25
172
179
  mcli/ml/scripts/populate_sample_data.py,sha256=TBiTQpiUWeNkT2X5H5IEd-v4lM507JMXw3nAD0Iq62g,7811
180
+ mcli/ml/serving/__init__.py,sha256=ZmEp18149ylWrQBY9lL3hw5Rh1Hpvac0dnIKkvQLTIs,46
181
+ mcli/ml/serving/serve.py,sha256=tZFQg87bvGjHyAXnXstMbREpMTkuve_FwFRdeIxnek8,1404
173
182
  mcli/ml/tests/test_integration.py,sha256=c5XhNIn-3vQsN_k5tAYCEb-VpZc58kPSJPhsokmvUgo,15956
174
183
  mcli/ml/tests/test_training_dashboard.py,sha256=fCNyNdVQzARE6LYdZwQJAFr3dO8GAG-u0dJhW-sFpLU,14013
175
184
  mcli/ml/trading/__init__.py,sha256=Y7ANy3NZ_6zOKxXUj3xOXFAX7WXQ8jUvIveoH1jCKGM,1484
@@ -180,6 +189,7 @@ mcli/ml/trading/paper_trading.py,sha256=7faoabOOv3BdIDmrzPkLF_zTmWwZspq588sU9_m_
180
189
  mcli/ml/trading/risk_management.py,sha256=7eygbQaC1sfJlFvyInOc4MQtwxmU5lDnj28UcrfkBCk,15572
181
190
  mcli/ml/trading/trading_service.py,sha256=TguV7E_P5E8oGyGHOU2wEemh0iVepqitL4zjulm6NBE,20896
182
191
  mcli/ml/training/__init__.py,sha256=ldDLgyrpgU6B5pQhBMmC5Xt_sP7jgvpSwqHK8VJzGos,278
192
+ mcli/ml/training/train.py,sha256=_lZLAPQvdQ1_vKyrokR1mm4ZRNXx57lNea-8cD0CmlY,2718
183
193
  mcli/ml/training/train_model.py,sha256=_brE4ud0R9xfT5x3IpxgMhmakvbLbxqN82Ix4ycxSSo,16861
184
194
  mcli/mygroup/__init__.py,sha256=nXHIIt-BAROSr-22u567KklVcdcHQU19G2efSEIpmHU,35
185
195
  mcli/mygroup/test_cmd.py,sha256=WjzgoH1WFa79wc8A7O6UMuJfookLfgciUNcCMbKHAQQ,21
@@ -191,10 +201,11 @@ mcli/self/__init__.py,sha256=7hCrgaRb4oAgAf-kcyzqhJ5LFpW19jwF5bxowR4LwjY,41
191
201
  mcli/self/completion_cmd.py,sha256=FKNVc_4ikWTGbDHybiNZGdxrggvt6A6q1rnzuyFVzVM,7754
192
202
  mcli/self/logs_cmd.py,sha256=SCzZ4VZs6p42hksun_w4WN33xIZgmq7RjdWX8P2WcT4,15056
193
203
  mcli/self/redis_cmd.py,sha256=Cl0LQ3Mqt27gLeb542_xw6bJBbIE-CBmWyMmaUTSk8c,9426
194
- mcli/self/self_cmd.py,sha256=IhuBxXNvWuUl9gggAW-bLfphA_MJTQ6HDTKjRkGbSEI,37531
204
+ mcli/self/self_cmd.py,sha256=531_8jfX6neSifSl_u3mCG_EcSkQJ9yXcFxklvMFea0,37760
195
205
  mcli/self/store_cmd.py,sha256=O6arjRr4qWQKh1QyVWtzyXq5R7yZEBL87FSI59Db7IY,13320
196
206
  mcli/self/test_cmd.py,sha256=WjzgoH1WFa79wc8A7O6UMuJfookLfgciUNcCMbKHAQQ,21
197
207
  mcli/self/visual_cmd.py,sha256=jXighahHxeM9HANQ2Brk6nKFgi2ZuQBOBH7PE5xhebk,9428
208
+ mcli/self/zsh_cmd.py,sha256=63jKmfjhJp2zxJL2c37OdtdzDrnOreXXfyARN7TyfzU,8294
198
209
  mcli/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
199
210
  mcli/workflow/lsh_integration.py,sha256=jop80DUjdOSxmqPb-gX_OBep5f1twViv-pXmkcFqBPY,13314
200
211
  mcli/workflow/workflow.py,sha256=P_W5LOB3lowvvlfEp3mGwS3eNq4tpbiUY-poFulAF9E,393
@@ -268,9 +279,9 @@ mcli/workflow/sync/test_cmd.py,sha256=neVgs9zEnKSxlvzDpFkuCGucqnzjrShm2OvJtHibsl
268
279
  mcli/workflow/videos/__init__.py,sha256=aV3DEoO7qdKJY4odWKoQbOKDQq4ludTeCLnZcupOFIM,25
269
280
  mcli/workflow/wakatime/__init__.py,sha256=wKG8cVIHVtMPhNRFGFtX43bRnocHqOMMkFMkmW-M6pU,2626
270
281
  mcli/workflow/wakatime/wakatime.py,sha256=sEjsUKa3-XyE8Ni6sAb_D3GAY5jDcA30KknW9YTbLTA,142
271
- mcli_framework-7.8.5.dist-info/licenses/LICENSE,sha256=sahwAMfrJv2-V66HNPTp7A9UmMjxtyejwTZZoWQvEcI,1075
272
- mcli_framework-7.8.5.dist-info/METADATA,sha256=0cVb6nBeHAaVhwARz0Up36ixqhdfliwfLR3cVAVtTC8,16374
273
- mcli_framework-7.8.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
274
- mcli_framework-7.8.5.dist-info/entry_points.txt,sha256=dYrZbDIm-KUPsl1wfv600Kx_8sMy89phMkCihbDRgP8,261
275
- mcli_framework-7.8.5.dist-info/top_level.txt,sha256=_bnO8J2EUkliWivey_1le0UrnocFKmyVMQjbQ8iVXjc,5
276
- mcli_framework-7.8.5.dist-info/RECORD,,
282
+ mcli_framework-7.9.1.dist-info/licenses/LICENSE,sha256=sahwAMfrJv2-V66HNPTp7A9UmMjxtyejwTZZoWQvEcI,1075
283
+ mcli_framework-7.9.1.dist-info/METADATA,sha256=XtQYgMfdHL3asBOiIoODEdKCWZm-7wjt5k-qNQlAA5Q,16418
284
+ mcli_framework-7.9.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
285
+ mcli_framework-7.9.1.dist-info/entry_points.txt,sha256=dYrZbDIm-KUPsl1wfv600Kx_8sMy89phMkCihbDRgP8,261
286
+ mcli_framework-7.9.1.dist-info/top_level.txt,sha256=_bnO8J2EUkliWivey_1le0UrnocFKmyVMQjbQ8iVXjc,5
287
+ mcli_framework-7.9.1.dist-info/RECORD,,