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.
- mcli/app/main.py +9 -0
- mcli/lib/lib.py +8 -1
- mcli/lib/secrets/__init__.py +10 -0
- mcli/lib/secrets/commands.py +185 -0
- mcli/lib/secrets/manager.py +213 -0
- mcli/lib/secrets/repl.py +297 -0
- mcli/lib/secrets/store.py +246 -0
- mcli/ml/backtesting/backtest_engine.py +1 -3
- mcli/ml/backtesting/run.py +54 -0
- mcli/ml/models/ensemble_models.py +1 -1
- mcli/ml/models/recommendation_models.py +2 -2
- mcli/ml/optimization/optimize.py +51 -0
- mcli/ml/serving/__init__.py +1 -0
- mcli/ml/serving/serve.py +50 -0
- mcli/ml/training/train.py +73 -0
- mcli/self/self_cmd.py +8 -0
- mcli/self/zsh_cmd.py +259 -0
- {mcli_framework-7.8.5.dist-info → mcli_framework-7.9.1.dist-info}/METADATA +2 -1
- {mcli_framework-7.8.5.dist-info → mcli_framework-7.9.1.dist-info}/RECORD +23 -12
- {mcli_framework-7.8.5.dist-info → mcli_framework-7.9.1.dist-info}/WHEEL +0 -0
- {mcli_framework-7.8.5.dist-info → mcli_framework-7.9.1.dist-info}/entry_points.txt +0 -0
- {mcli_framework-7.8.5.dist-info → mcli_framework-7.9.1.dist-info}/licenses/LICENSE +0 -0
- {mcli_framework-7.8.5.dist-info → mcli_framework-7.9.1.dist-info}/top_level.txt +0 -0
mcli/ml/serving/serve.py
ADDED
|
@@ -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.
|
|
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=
|
|
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
|
|
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=
|
|
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=
|
|
155
|
-
mcli/ml/models/recommendation_models.py,sha256=
|
|
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=
|
|
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.
|
|
272
|
-
mcli_framework-7.
|
|
273
|
-
mcli_framework-7.
|
|
274
|
-
mcli_framework-7.
|
|
275
|
-
mcli_framework-7.
|
|
276
|
-
mcli_framework-7.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|