mcli-framework 7.9.7__py3-none-any.whl → 7.10.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 (80) hide show
  1. mcli/app/commands_cmd.py +161 -15
  2. mcli/lib/custom_commands.py +126 -6
  3. mcli/ml/backtesting/run.py +3 -5
  4. mcli/ml/models/ensemble_models.py +0 -1
  5. mcli/ml/models/recommendation_models.py +0 -1
  6. mcli/ml/optimization/optimize.py +4 -6
  7. mcli/ml/serving/serve.py +2 -2
  8. mcli/ml/training/train.py +7 -14
  9. mcli/workflow/doc_convert.py +112 -82
  10. {mcli_framework-7.9.7.dist-info → mcli_framework-7.10.0.dist-info}/METADATA +1 -1
  11. {mcli_framework-7.9.7.dist-info → mcli_framework-7.10.0.dist-info}/RECORD +15 -80
  12. mcli/__init__.py +0 -160
  13. mcli/__main__.py +0 -14
  14. mcli/app/__init__.py +0 -23
  15. mcli/app/model/__init__.py +0 -0
  16. mcli/app/video/__init__.py +0 -5
  17. mcli/chat/__init__.py +0 -34
  18. mcli/lib/__init__.py +0 -0
  19. mcli/lib/api/__init__.py +0 -0
  20. mcli/lib/auth/__init__.py +0 -1
  21. mcli/lib/config/__init__.py +0 -1
  22. mcli/lib/erd/__init__.py +0 -25
  23. mcli/lib/files/__init__.py +0 -0
  24. mcli/lib/fs/__init__.py +0 -1
  25. mcli/lib/logger/__init__.py +0 -3
  26. mcli/lib/performance/__init__.py +0 -17
  27. mcli/lib/pickles/__init__.py +0 -1
  28. mcli/lib/secrets/__init__.py +0 -10
  29. mcli/lib/shell/__init__.py +0 -0
  30. mcli/lib/toml/__init__.py +0 -1
  31. mcli/lib/watcher/__init__.py +0 -0
  32. mcli/ml/__init__.py +0 -16
  33. mcli/ml/api/__init__.py +0 -30
  34. mcli/ml/api/routers/__init__.py +0 -27
  35. mcli/ml/auth/__init__.py +0 -41
  36. mcli/ml/backtesting/__init__.py +0 -33
  37. mcli/ml/cli/__init__.py +0 -5
  38. mcli/ml/config/__init__.py +0 -33
  39. mcli/ml/configs/__init__.py +0 -16
  40. mcli/ml/dashboard/__init__.py +0 -12
  41. mcli/ml/dashboard/components/__init__.py +0 -7
  42. mcli/ml/dashboard/pages/__init__.py +0 -6
  43. mcli/ml/data_ingestion/__init__.py +0 -29
  44. mcli/ml/database/__init__.py +0 -40
  45. mcli/ml/experimentation/__init__.py +0 -29
  46. mcli/ml/features/__init__.py +0 -39
  47. mcli/ml/mlops/__init__.py +0 -19
  48. mcli/ml/models/__init__.py +0 -90
  49. mcli/ml/monitoring/__init__.py +0 -25
  50. mcli/ml/optimization/__init__.py +0 -27
  51. mcli/ml/predictions/__init__.py +0 -5
  52. mcli/ml/preprocessing/__init__.py +0 -24
  53. mcli/ml/scripts/__init__.py +0 -1
  54. mcli/ml/serving/__init__.py +0 -1
  55. mcli/ml/trading/__init__.py +0 -63
  56. mcli/ml/training/__init__.py +0 -7
  57. mcli/mygroup/__init__.py +0 -3
  58. mcli/public/__init__.py +0 -1
  59. mcli/public/commands/__init__.py +0 -2
  60. mcli/self/__init__.py +0 -3
  61. mcli/workflow/__init__.py +0 -0
  62. mcli/workflow/daemon/__init__.py +0 -15
  63. mcli/workflow/dashboard/__init__.py +0 -5
  64. mcli/workflow/docker/__init__.py +0 -0
  65. mcli/workflow/file/__init__.py +0 -0
  66. mcli/workflow/gcloud/__init__.py +0 -1
  67. mcli/workflow/git_commit/__init__.py +0 -0
  68. mcli/workflow/interview/__init__.py +0 -0
  69. mcli/workflow/politician_trading/__init__.py +0 -4
  70. mcli/workflow/registry/__init__.py +0 -0
  71. mcli/workflow/repo/__init__.py +0 -0
  72. mcli/workflow/scheduler/__init__.py +0 -25
  73. mcli/workflow/search/__init__.py +0 -0
  74. mcli/workflow/sync/__init__.py +0 -5
  75. mcli/workflow/videos/__init__.py +0 -1
  76. mcli/workflow/wakatime/__init__.py +0 -80
  77. {mcli_framework-7.9.7.dist-info → mcli_framework-7.10.0.dist-info}/WHEEL +0 -0
  78. {mcli_framework-7.9.7.dist-info → mcli_framework-7.10.0.dist-info}/entry_points.txt +0 -0
  79. {mcli_framework-7.9.7.dist-info → mcli_framework-7.10.0.dist-info}/licenses/LICENSE +0 -0
  80. {mcli_framework-7.9.7.dist-info → mcli_framework-7.10.0.dist-info}/top_level.txt +0 -0
@@ -65,7 +65,6 @@ FORMAT_ALIASES = {
65
65
 
66
66
  class ConversionMethod(Enum):
67
67
  """Available conversion methods"""
68
-
69
68
  PANDOC = "pandoc"
70
69
  NBCONVERT = "nbconvert"
71
70
  PANDOC_LATEX = "pandoc_latex"
@@ -75,7 +74,6 @@ class ConversionMethod(Enum):
75
74
  @dataclass
76
75
  class ConversionStrategy:
77
76
  """Represents a conversion strategy with command and description"""
78
-
79
77
  method: ConversionMethod
80
78
  description: str
81
79
  check_command: Optional[str] = None
@@ -138,7 +136,11 @@ def cleanup_temp_conversion(temp_dir: Path, preserve_output: Optional[Path] = No
138
136
 
139
137
 
140
138
  def get_conversion_strategies(
141
- input_path: Path, output_path: Path, from_format: str, to_format: str, pandoc_args: str = ""
139
+ input_path: Path,
140
+ output_path: Path,
141
+ from_format: str,
142
+ to_format: str,
143
+ pandoc_args: str = ""
142
144
  ) -> List[ConversionStrategy]:
143
145
  """
144
146
  Get ordered list of conversion strategies to try based on input/output formats.
@@ -150,60 +152,60 @@ def get_conversion_strategies(
150
152
  # Special handling for Jupyter notebook to PDF (notoriously problematic)
151
153
  if from_format == "ipynb" and to_format == "pdf":
152
154
  # Strategy 1: nbconvert (most reliable for notebooks)
153
- strategies.append(
154
- ConversionStrategy(
155
- method=ConversionMethod.NBCONVERT,
156
- description="jupyter nbconvert (best for notebooks)",
157
- check_command="jupyter-nbconvert",
158
- )
159
- )
155
+ strategies.append(ConversionStrategy(
156
+ method=ConversionMethod.NBCONVERT,
157
+ description="jupyter nbconvert (best for notebooks)",
158
+ check_command="jupyter-nbconvert"
159
+ ))
160
160
 
161
161
  # Strategy 2: pandoc with pdflatex
162
- strategies.append(
163
- ConversionStrategy(
164
- method=ConversionMethod.PANDOC_LATEX, description="pandoc with pdflatex engine"
165
- )
166
- )
162
+ strategies.append(ConversionStrategy(
163
+ method=ConversionMethod.PANDOC_LATEX,
164
+ description="pandoc with pdflatex engine"
165
+ ))
167
166
 
168
167
  # Strategy 3: pandoc via HTML intermediate
169
- strategies.append(
170
- ConversionStrategy(
171
- method=ConversionMethod.PANDOC_HTML_INTERMEDIATE,
172
- description="pandoc via HTML intermediate (wkhtmltopdf)",
173
- )
174
- )
168
+ strategies.append(ConversionStrategy(
169
+ method=ConversionMethod.PANDOC_HTML_INTERMEDIATE,
170
+ description="pandoc via HTML intermediate (wkhtmltopdf)"
171
+ ))
175
172
 
176
173
  # Strategy 4: standard pandoc
177
- strategies.append(
178
- ConversionStrategy(method=ConversionMethod.PANDOC, description="pandoc default method")
179
- )
174
+ strategies.append(ConversionStrategy(
175
+ method=ConversionMethod.PANDOC,
176
+ description="pandoc default method"
177
+ ))
180
178
 
181
179
  # Jupyter to other formats
182
180
  elif from_format == "ipynb":
183
181
  # Try nbconvert first for notebooks
184
- strategies.append(
185
- ConversionStrategy(
186
- method=ConversionMethod.NBCONVERT,
187
- description="jupyter nbconvert",
188
- check_command="jupyter-nbconvert",
189
- )
190
- )
191
- strategies.append(ConversionStrategy(method=ConversionMethod.PANDOC, description="pandoc"))
182
+ strategies.append(ConversionStrategy(
183
+ method=ConversionMethod.NBCONVERT,
184
+ description="jupyter nbconvert",
185
+ check_command="jupyter-nbconvert"
186
+ ))
187
+ strategies.append(ConversionStrategy(
188
+ method=ConversionMethod.PANDOC,
189
+ description="pandoc"
190
+ ))
192
191
 
193
192
  # PDF output (general)
194
193
  elif to_format == "pdf":
195
- strategies.append(
196
- ConversionStrategy(
197
- method=ConversionMethod.PANDOC_LATEX, description="pandoc with LaTeX"
198
- )
199
- )
200
- strategies.append(
201
- ConversionStrategy(method=ConversionMethod.PANDOC, description="pandoc default")
202
- )
194
+ strategies.append(ConversionStrategy(
195
+ method=ConversionMethod.PANDOC_LATEX,
196
+ description="pandoc with LaTeX"
197
+ ))
198
+ strategies.append(ConversionStrategy(
199
+ method=ConversionMethod.PANDOC,
200
+ description="pandoc default"
201
+ ))
203
202
 
204
203
  # Default: just use pandoc
205
204
  else:
206
- strategies.append(ConversionStrategy(method=ConversionMethod.PANDOC, description="pandoc"))
205
+ strategies.append(ConversionStrategy(
206
+ method=ConversionMethod.PANDOC,
207
+ description="pandoc"
208
+ ))
207
209
 
208
210
  return strategies
209
211
 
@@ -214,7 +216,7 @@ def execute_conversion_strategy(
214
216
  output_path: Path,
215
217
  from_format: str,
216
218
  to_format: str,
217
- pandoc_args: str = "",
219
+ pandoc_args: str = ""
218
220
  ) -> Tuple[bool, str]:
219
221
  """
220
222
  Execute a specific conversion strategy in a temp directory.
@@ -229,25 +231,29 @@ def execute_conversion_strategy(
229
231
  if strategy.method == ConversionMethod.NBCONVERT:
230
232
  # Check if nbconvert is available
231
233
  check = subprocess.run(
232
- ["jupyter", "nbconvert", "--version"], capture_output=True, timeout=5
234
+ ["jupyter", "nbconvert", "--version"],
235
+ capture_output=True,
236
+ timeout=5
233
237
  )
234
238
  if check.returncode != 0:
235
239
  return False, "jupyter nbconvert not available"
236
240
 
237
241
  # Build nbconvert command (run in temp directory)
238
242
  cmd = [
239
- "jupyter",
240
- "nbconvert",
241
- "--to",
242
- to_format,
243
- "--output",
244
- str(temp_output),
245
- str(temp_input),
243
+ "jupyter", "nbconvert",
244
+ "--to", to_format,
245
+ "--output", str(temp_output),
246
+ str(temp_input)
246
247
  ]
247
248
 
248
249
  # Run in temp directory
249
250
  result = subprocess.run(
250
- cmd, capture_output=True, text=True, check=True, timeout=120, cwd=str(temp_dir)
251
+ cmd,
252
+ capture_output=True,
253
+ text=True,
254
+ check=True,
255
+ timeout=120,
256
+ cwd=str(temp_dir)
251
257
  )
252
258
 
253
259
  elif strategy.method == ConversionMethod.PANDOC_LATEX:
@@ -255,17 +261,20 @@ def execute_conversion_strategy(
255
261
  cmd = [
256
262
  "pandoc",
257
263
  str(temp_input),
258
- "-f",
259
- from_format,
260
- "-o",
261
- str(temp_output),
262
- "--pdf-engine=xelatex",
264
+ "-f", from_format,
265
+ "-o", str(temp_output),
266
+ "--pdf-engine=xelatex"
263
267
  ]
264
268
  if pandoc_args:
265
269
  cmd.extend(pandoc_args.split())
266
270
 
267
271
  result = subprocess.run(
268
- cmd, capture_output=True, text=True, check=True, timeout=120, cwd=str(temp_dir)
272
+ cmd,
273
+ capture_output=True,
274
+ text=True,
275
+ check=True,
276
+ timeout=120,
277
+ cwd=str(temp_dir)
269
278
  )
270
279
 
271
280
  elif strategy.method == ConversionMethod.PANDOC_HTML_INTERMEDIATE:
@@ -276,30 +285,47 @@ def execute_conversion_strategy(
276
285
  cmd_html = [
277
286
  "pandoc",
278
287
  str(temp_input),
279
- "-f",
280
- from_format,
281
- "-t",
282
- "html",
283
- "-o",
284
- str(html_temp),
285
- "--standalone",
288
+ "-f", from_format,
289
+ "-t", "html",
290
+ "-o", str(html_temp),
291
+ "--standalone"
286
292
  ]
287
293
  result = subprocess.run(
288
- cmd_html, capture_output=True, text=True, timeout=120, cwd=str(temp_dir)
294
+ cmd_html,
295
+ capture_output=True,
296
+ text=True,
297
+ timeout=120,
298
+ cwd=str(temp_dir)
289
299
  )
290
300
  if result.returncode != 0:
291
301
  return False, f"HTML intermediate failed: {result.stderr}"
292
302
 
293
303
  # Step 2: Convert HTML to PDF
294
- cmd = ["pandoc", str(html_temp), "-f", "html", "-t", "pdf", "-o", str(temp_output)]
304
+ cmd = [
305
+ "pandoc",
306
+ str(html_temp),
307
+ "-f", "html",
308
+ "-t", "pdf",
309
+ "-o", str(temp_output)
310
+ ]
295
311
 
296
312
  result = subprocess.run(
297
- cmd, capture_output=True, text=True, check=True, timeout=120, cwd=str(temp_dir)
313
+ cmd,
314
+ capture_output=True,
315
+ text=True,
316
+ check=True,
317
+ timeout=120,
318
+ cwd=str(temp_dir)
298
319
  )
299
320
 
300
321
  else: # PANDOC
301
322
  # Standard pandoc conversion
302
- cmd = ["pandoc", str(temp_input), "-f", from_format, "-o", str(temp_output)]
323
+ cmd = [
324
+ "pandoc",
325
+ str(temp_input),
326
+ "-f", from_format,
327
+ "-o", str(temp_output)
328
+ ]
303
329
  # Use xelatex for PDF conversions (better Unicode support)
304
330
  if to_format == "pdf":
305
331
  cmd.append("--pdf-engine=xelatex")
@@ -307,7 +333,12 @@ def execute_conversion_strategy(
307
333
  cmd.extend(pandoc_args.split())
308
334
 
309
335
  result = subprocess.run(
310
- cmd, capture_output=True, text=True, check=True, timeout=120, cwd=str(temp_dir)
336
+ cmd,
337
+ capture_output=True,
338
+ text=True,
339
+ check=True,
340
+ timeout=120,
341
+ cwd=str(temp_dir)
311
342
  )
312
343
 
313
344
  # Copy output file to final destination
@@ -386,7 +417,9 @@ def init():
386
417
  else:
387
418
  # Try installing via pip
388
419
  result = subprocess.run(
389
- ["pip3", "install", "jupyter", "nbconvert"], capture_output=True, text=True
420
+ ["pip3", "install", "jupyter", "nbconvert"],
421
+ capture_output=True,
422
+ text=True
390
423
  )
391
424
  if result.returncode == 0:
392
425
  success(" ✅ jupyter & nbconvert installed successfully")
@@ -404,13 +437,13 @@ def init():
404
437
  info(" ℹ️ This is a large download (~100MB) and may take a few minutes")
405
438
  try:
406
439
  result = subprocess.run(
407
- ["brew", "install", "--cask", "basictex"], capture_output=True, text=True
440
+ ["brew", "install", "--cask", "basictex"],
441
+ capture_output=True,
442
+ text=True
408
443
  )
409
444
  if result.returncode == 0:
410
445
  success(" ✅ BasicTeX installed successfully")
411
- info(
412
- " ℹ️ You may need to restart your terminal or run: eval $(/usr/libexec/path_helper)"
413
- )
446
+ info(" ℹ️ You may need to restart your terminal or run: eval $(/usr/libexec/path_helper)")
414
447
  info("")
415
448
  info(" 📦 Installing LaTeX packages for document conversion...")
416
449
  info(" ℹ️ This requires sudo access and may take a few minutes")
@@ -479,9 +512,7 @@ def init():
479
512
  @click.argument("path")
480
513
  @click.option("--output-dir", "-o", help="Output directory (defaults to same directory as input)")
481
514
  @click.option("--pandoc-args", "-a", help="Additional pandoc arguments", default="")
482
- @click.option(
483
- "--no-fallback", is_flag=True, help="Disable fallback strategies (use only primary method)"
484
- )
515
+ @click.option("--no-fallback", is_flag=True, help="Disable fallback strategies (use only primary method)")
485
516
  def convert(from_format, to_format, path, output_dir, pandoc_args, no_fallback):
486
517
  """
487
518
  Convert documents with automatic fallback strategies.
@@ -595,15 +626,14 @@ def convert(from_format, to_format, path, output_dir, pandoc_args, no_fallback):
595
626
  info(f" ⚙️ Using: {strategy.description}")
596
627
 
597
628
  success_flag, error_msg = execute_conversion_strategy(
598
- strategy, input_path, output_path, from_format_mapped, to_format_mapped, pandoc_args
629
+ strategy, input_path, output_path,
630
+ from_format_mapped, to_format_mapped, pandoc_args
599
631
  )
600
632
 
601
633
  if success_flag:
602
634
  conversion_succeeded = True
603
635
  method_name = strategy.description
604
- conversion_methods_used[method_name] = (
605
- conversion_methods_used.get(method_name, 0) + 1
606
- )
636
+ conversion_methods_used[method_name] = conversion_methods_used.get(method_name, 0) + 1
607
637
  success(f" ✅ Created: {output_path}")
608
638
  if i > 0:
609
639
  info(f" ℹ️ Succeeded with fallback method #{i + 1}")
@@ -740,7 +770,7 @@ echo ""
740
770
  commands_dir = get_custom_commands_dir()
741
771
  cleanup_path = commands_dir / "doc-convert-cleanup.sh"
742
772
 
743
- with open(cleanup_path, "w") as f:
773
+ with open(cleanup_path, 'w') as f:
744
774
  f.write(cleanup_script)
745
775
 
746
776
  # Make it executable
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcli-framework
3
- Version: 7.9.7
3
+ Version: 7.10.0
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>
@@ -1,33 +1,24 @@
1
- mcli/__init__.py,sha256=xpjnyDicXuVi2_qT12Xq610ri8Raz7eIKqS16W1A4To,6859
2
- mcli/__main__.py,sha256=nKdf3WqtXi5PhWhZGjpXKAT3a2yGUYkYCBgSLxk4hSQ,295
3
1
  mcli/cli.py,sha256=6KTyXn-pmVkAbCDu59PbiNKBwNra5su31ujFFZ6CBOM,389
4
2
  mcli/config.toml,sha256=263yEVvP_W9F2zOLssUBgy7amKaRAFQuBrfxcMhKxaQ,1706
5
- mcli/app/__init__.py,sha256=D4RiKk2gOEXwanbe_jXyNSb5zdgNi47kahtskMnEwjY,489
6
- mcli/app/commands_cmd.py,sha256=gixyyrMV4wDLeTRRDlUx1NG46ceIswsIV3u-zPvtNjw,58655
3
+ mcli/app/commands_cmd.py,sha256=H5lEuMTQOE-DKBWIBBbz12LQS40n-fCq_hwWH8uGh3c,63961
7
4
  mcli/app/completion_helpers.py,sha256=e62C6w2N-XoD66GYYHgtvKKoD3kYMuIeBBGzVKbuL04,7497
8
5
  mcli/app/main.py,sha256=aFQbKMTqClswmwwxpbS5zxVXOXcZMvF27LO19x1X7Cg,19208
9
6
  mcli/app/model_cmd.py,sha256=LQQD8FaebFoaJGK3u_kt19wZ3HJyo_ecwSMYyC2xIp8,2497
10
- mcli/app/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
7
  mcli/app/model/model.py,sha256=EUGu_td-hRlbf4OElkdk1-0p7WyuG7sZmb-Ux2-J9KY,39061
12
- mcli/app/video/__init__.py,sha256=PxCZQrtClwNQr1RaF8Q3iXlLeQlnEAI9NO8LGcQQuvk,66
13
8
  mcli/app/video/video.py,sha256=3TL8vG3XSKzH_Iyy-IHPZOwNtT7js0VqVVNwIgfDvpk,41910
14
- mcli/chat/__init__.py,sha256=DHCTGHCe2tYUj1e1tIAWJFU9u7VbyR1PVWlBFf0Okww,750
15
9
  mcli/chat/chat.py,sha256=tk4laKe2uSVg9JukacSNTQhCFRlzYbaz1Qdkg8Mu_Bw,102138
16
10
  mcli/chat/command_rag.py,sha256=Ee8usPyRDRYDWpQ79dI7xbxM8Ljxsy_ym_MnL37nPAo,19368
17
11
  mcli/chat/enhanced_chat.py,sha256=e3odh5klewDHIjfNOyvifLzCdHrysDc2IvNVHzTPIh4,27072
18
12
  mcli/chat/system_controller.py,sha256=SuGvnIh2QObvM1DMicF3gGyeBkbz_xXS-hOOHjWx5j4,39114
19
13
  mcli/chat/system_integration.py,sha256=xQ11thOUswPg8r1HZkId6U3bTCOtMYngt0-mUYYXpt4,40196
20
- mcli/lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- mcli/lib/custom_commands.py,sha256=PCC3uRLN6bcIKCh7GJ98vuNm5R2o9xRRCvCMQcIhj0o,14489
14
+ mcli/lib/custom_commands.py,sha256=FcM-Ng05AB1qLaNltw0bRv2qFDUMUV5jzrmbo6dWeII,19591
22
15
  mcli/lib/lib.py,sha256=-CFUfmcubYBxt3LDBY0uj9DF232pz8MPDu-Qg0Ocy8M,850
23
16
  mcli/lib/paths.py,sha256=k6sDwvD8QRzBkBOllvXkokameumpTjpJ7pQrP7z1en0,2455
24
- mcli/lib/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
17
  mcli/lib/api/api.py,sha256=sPgAIYC8Z7AWV2TCBssNSKotbRggBqNLsbfzbjkhmUY,18558
26
18
  mcli/lib/api/daemon_client.py,sha256=Nq8sVvNKyIGvWp9G_O3NEFo9JDqA1TEx5FOB7iqslB4,7415
27
19
  mcli/lib/api/daemon_client_local.py,sha256=cki6-ErWtyVRk12BYB5hFZMGc8HisHFze_vRNlydnOI,1749
28
20
  mcli/lib/api/daemon_decorator.py,sha256=j3He9jd-uL7n2_iUpCdjfKHaqe_tDPKPIoL8VpYMzUw,7677
29
21
  mcli/lib/api/mcli_decorators.py,sha256=HzCwVgFsPKpunLmlScrHmrtEqbX2Ek2ly8uoWBGKR0M,29084
30
- mcli/lib/auth/__init__.py,sha256=eJkY6rWNOAUBmSd4G1_U6h7i472druKEtBdVmgFZVPg,20
31
22
  mcli/lib/auth/auth.py,sha256=x23xXErGcQpO2JzyRM-KZGJA_MJt6Rf3XuZFyInUVsI,2123
32
23
  mcli/lib/auth/aws_manager.py,sha256=NiyKRazdABUwbp-BpC1soAygMaoVAyFWKRgxyjWZm7w,959
33
24
  mcli/lib/auth/azure_manager.py,sha256=itPgOg_6irFVGSjjHHcBJZqnpQR7h265zadtGWU611U,1125
@@ -37,27 +28,19 @@ mcli/lib/auth/key_manager.py,sha256=pH-I_CPoe4-GXZqyKq31wODCogRN5KER9aKRSTO1a_o,
37
28
  mcli/lib/auth/mcli_manager.py,sha256=CP35tlgbqKyabesocICeiCmJyG_8oBfi4DN-yUbUvKc,2817
38
29
  mcli/lib/auth/token_manager.py,sha256=-o_HC_oIVbPqRRERZzspAIYA5T4w9BCOa95JInY0FYI,2226
39
30
  mcli/lib/auth/token_util.py,sha256=UicmPEh3Uo8cpVWz4-zU6Qk4cHiTWwtVxLVadY8MTqk,35039
40
- mcli/lib/config/__init__.py,sha256=A00lpnUKg-q3y_b-cN3jKF9urkGTGjb2Yz_gGc9WCLs,22
41
31
  mcli/lib/config/config.py,sha256=wUxo1EpkSGDifrsaPs9uQ1MXdpAI2096Yg6OVUTD94I,1332
42
32
  mcli/lib/discovery/__init__.py,sha256=ud-dDGXdCPUxoSP4qYFFnOy-cxf3mZAKmfWmZmqPJ7Q,37
43
33
  mcli/lib/discovery/command_discovery.py,sha256=ZLiJO3SQAaF9yU5nfUkEfKL6ak53TMWgPkB0G6j-M9M,9741
44
- mcli/lib/erd/__init__.py,sha256=6AxyAADoSdYPwTu-qxZGcP8QuR6Ta0YtP9E84DcIq9o,641
45
34
  mcli/lib/erd/erd.py,sha256=zr9C6RPaCPX2qDJqOe2VA5pfTL5UF3Kj5M8BLFnNrUc,51843
46
35
  mcli/lib/erd/generate_graph.py,sha256=wpSZpn2W9zQ6XaLBjq_2AJv20Sol-L1if92quypp7Ac,15596
47
- mcli/lib/files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
36
  mcli/lib/files/files.py,sha256=8z87uR1nOaTXtn7ExdKZMGgaHpk6cR9FJ1JvuYV2qJw,2538
49
- mcli/lib/fs/__init__.py,sha256=sfBKN5f9o7k0ua1fPUgd6gQw1fWBjXys8TcIRxBIwns,18
50
37
  mcli/lib/fs/fs.py,sha256=b-u6t3hps-XpKOndhsnNE5tVFATwuxpdD_oilpfwAe4,2823
51
- mcli/lib/logger/__init__.py,sha256=JpOwVk6nDPi14ToVpsAy02a2J5mECjtLngpm8vdIDHU,57
52
38
  mcli/lib/logger/logger.py,sha256=FdQBknaMqaqf1KP25lspvmIvMd_S6QLGjf8ZPPQ0ukI,24388
53
- mcli/lib/performance/__init__.py,sha256=5HakI_6eO9y_KnQ0Pwqk_dYng9puecfB0GRLdeNyEaY,327
54
39
  mcli/lib/performance/optimizer.py,sha256=erOp0shbvE7obM5-ljj3Fgz8S4ws9UghslFNSi34Qh0,14938
55
40
  mcli/lib/performance/rust_bridge.py,sha256=y_8WLvWkDbHAT06ma_qwaGDDS8d0oJNOj4tj5P_yxuE,16744
56
41
  mcli/lib/performance/uvloop_config.py,sha256=wyI5pQnec2RAhgm52HJ1AxYGFa3bjTa-CjhOqB2Oucc,4736
57
- mcli/lib/pickles/__init__.py,sha256=b7l9CLv8Aua5sROYAaA4raxpWTKSJxUumTLqmzlkb-I,33
58
42
  mcli/lib/pickles/pickles.py,sha256=O9dLJfyxViX-IyionbcjcsxHnq42XiLaAorsUrx9oZU,1448
59
43
  mcli/lib/search/cached_vectorizer.py,sha256=ShBSTqoyGNGTNAII34okxl4chzy7hqhO2R-jtTEF1_0,17996
60
- mcli/lib/secrets/__init__.py,sha256=amoAq00syRdQuII3BnvizGmhXbf6vZNN2qnrHtBROvA,241
61
44
  mcli/lib/secrets/commands.py,sha256=-PovQ4X1QV3LxqO3hRBIG8JkqA0SJlA_skcg-xCxg-M,6169
62
45
  mcli/lib/secrets/manager.py,sha256=kjHNQ7_TeQlF1ZyfhfKZ00Mu1wn06Vw6K8FQL0nyU1s,6698
63
46
  mcli/lib/secrets/repl.py,sha256=rmBFVi8lB4r3pRnicpX318IaTrtshPEaBqC-PZaMs0Y,10351
@@ -65,23 +48,17 @@ mcli/lib/secrets/store.py,sha256=vl-K_OjqlNIvypf4BCwCbtNZPk91QngNYqhwWwKupDw,783
65
48
  mcli/lib/services/data_pipeline.py,sha256=UwDpAByOL_PDMjD76aOTmCyStd_QBmCngZBMXVerR5Y,16475
66
49
  mcli/lib/services/lsh_client.py,sha256=sJSXlWBqnhNQy7TtYMmcAwBceUp45rYa_HgdyYF0WtI,16799
67
50
  mcli/lib/services/redis_service.py,sha256=5QwSB-FMIS1zdTNp8VSOrZfr_wrUK10Bfe2N1ZTy-90,12730
68
- mcli/lib/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
51
  mcli/lib/shell/shell.py,sha256=W7lowu75SnFsb0y8ZIDIawfcPUuJkT3_rI1IKU_c6Wk,4692
70
- mcli/lib/toml/__init__.py,sha256=P2Ngf_JC1TEwBDFgtUwy0G0l3j7lxJGzXzSlP2IKtRM,33
71
52
  mcli/lib/toml/toml.py,sha256=p05tXgndxIlsA_l60ivmrE5hK92-Sf2u-adERrvIJPk,1115
72
53
  mcli/lib/ui/styling.py,sha256=WkVmsaKKRefnMywY-hcVgTPB2z86ynzjx2NP5A9Ayj0,1390
73
54
  mcli/lib/ui/visual_effects.py,sha256=SCcpOq53brTTsdmOZUcWorvVCrTM9Y_1bT7WM039RzM,24764
74
- mcli/lib/watcher/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
55
  mcli/lib/watcher/watcher.py,sha256=WDslwiDmgBoQWFHis-ExwIR1ZrQAuGXio-rYEX8Tp7M,6045
76
- mcli/ml/__init__.py,sha256=jcnEqVcmXtEJPKLaAhoW1cSxB7TgnSSvyGchgRnResY,427
77
56
  mcli/ml/cache.py,sha256=ZrZcWhkUUvgX5QxCn1HpmiV5h3_Jx0ByuFwYferYqvs,12066
78
57
  mcli/ml/logging.py,sha256=abscO_D2CFalVE05wzYDQ_vv9OSzeUoYvdb5LS4J_bA,2436
79
58
  mcli/ml/tasks.py,sha256=vUJG8RxjVxDHrTsdawBf_k5_GiV0GhC4cP52fA4teEo,12584
80
- mcli/ml/api/__init__.py,sha256=7-xFCqH9b2OcpiMpVFbL4YKcNTVBiF-Tgd00cXNYtK0,590
81
59
  mcli/ml/api/app.py,sha256=t2wDVZ6Rwq6MzWzxmjJJ_vZBFkW2xbbSG1ykVS_8SA4,6543
82
60
  mcli/ml/api/middleware.py,sha256=mRHWaW2cC53dvGQBCFDddsRincgkCpRODAidNaTgXu8,7336
83
61
  mcli/ml/api/schemas.py,sha256=JkJO0Wk4N2gpydH8R4mOw6e5SouetiGePiLWi7n0B74,1523
84
- mcli/ml/api/routers/__init__.py,sha256=iq1Jo0YyiH12G1Y1pqTi82ZomF1AKH3Sz7dtDq7Qzf0,470
85
62
  mcli/ml/api/routers/admin_router.py,sha256=YcFR_drT0otq2EDRu8dqy5pcebEWQHMr4efsmP4DJ0Q,356
86
63
  mcli/ml/api/routers/auth_router.py,sha256=aYF_uZaOWIMt6_bNCWFBoFxxhY5rpmdEQRbUZGCTPQ8,6799
87
64
  mcli/ml/api/routers/backtest_router.py,sha256=08dn6N_HldhMIGpUJQo5yAlCqieEV2iZvjwge9gQ0fg,340
@@ -92,23 +69,17 @@ mcli/ml/api/routers/portfolio_router.py,sha256=ivUocm3SEteKus0eM-cPlyd2oE45zrAo8
92
69
  mcli/ml/api/routers/prediction_router.py,sha256=lwTVr1V2llpaE4UPecLzWce-06GY5ab3xnbjpgNN8aI,8350
93
70
  mcli/ml/api/routers/trade_router.py,sha256=adSuYIWhn3b7qspk9vaSfWIHb54tdDVjz4YFJoCdhQU,427
94
71
  mcli/ml/api/routers/websocket_router.py,sha256=tz8TQKe7O7mqU6BxW3BP-rfvYKWNnTOZ9wEGbWEuK1o,2504
95
- mcli/ml/auth/__init__.py,sha256=752HtirlsZOAYl7k53j4wLt6gOlVHhHlQkdU5cd2T_4,844
96
72
  mcli/ml/auth/auth_manager.py,sha256=_UUt42YCMKxCEfOxuw4rGMVjh6BQEP0dbLOP_EzSvFQ,12307
97
73
  mcli/ml/auth/models.py,sha256=Ww6lMLVGxtH6Biru5z4efSULCudQFXgmUWgVPTfUCwo,4398
98
74
  mcli/ml/auth/permissions.py,sha256=9N8Q6zQ-0-WcErVxviVzHELpzurBAby02wI3C1YziF0,8400
99
- mcli/ml/backtesting/__init__.py,sha256=z0UVuZlXatyJr4eh4tpF-8ytJbmBmLMtNr6TmnbN4hU,717
100
75
  mcli/ml/backtesting/backtest_engine.py,sha256=bmgHd1MBHQT4ddgWMdOQH8cFw8M_iiLqde6Yga2Q2ys,19016
101
76
  mcli/ml/backtesting/performance_metrics.py,sha256=M4qe9QYYserwuCSMMMKwsT6-GEJbH4rHDl66NO31IC0,14674
102
- mcli/ml/backtesting/run.py,sha256=SuVhgxHmFXZaLao_MHh_ezVuw_xPS7-aCyKluftJZNc,1807
103
- mcli/ml/cli/__init__.py,sha256=ZUo2l2VBEZTMW2lqyWGqIwqiKgRX46GinXQfvdAoH0Y,76
77
+ mcli/ml/backtesting/run.py,sha256=j_a5-ZOywbUKehERwtRsn_0hBLHQI4dsaPcMTYblGIs,1804
104
78
  mcli/ml/cli/main.py,sha256=9U_cgB4M0AtWCghB5H0388v41sZ-qvJwcMdSKh2_SO0,15664
105
- mcli/ml/config/__init__.py,sha256=br-ihnAUIOIyQMXGZIB3xX_y2XB3uXBZyMzRa0lwopE,611
106
79
  mcli/ml/config/settings.py,sha256=mdq16Q9guy0nWn2INCgXPfUwqKK76Dl-7agoIsN2a-8,14216
107
- mcli/ml/configs/__init__.py,sha256=clmYdo-CIWU5k3XEcWyX_MV0vTBUlKm7_0zkp7czr2s,405
108
80
  mcli/ml/configs/dvc_config.py,sha256=LWOg4di1MpZED18YJznhYJwWsQ5i5k73RMxZT7-poHw,7663
109
81
  mcli/ml/configs/mlflow_config.py,sha256=GvoBqxdBU6eIAghjPKqXz00n5j3Z8grdk0DFZwilIS8,4476
110
82
  mcli/ml/configs/mlops_manager.py,sha256=4CfqJnqLZjFl4Han3BAQ2ozOZmO8q47lWEnObn_Q5F4,9891
111
- mcli/ml/dashboard/__init__.py,sha256=4oG7D14atTxtif37b0NOGzkDZoOKRzTVz3YT4Kau9CY,204
112
83
  mcli/ml/dashboard/app.py,sha256=gVlQSdAJtanYyOItOtnUckmsZtC3glDWwHR8aFMTPMk,14516
113
84
  mcli/ml/dashboard/app_integrated.py,sha256=qKWnUorlLOVp8U-y_2eMzlZHEzu0ms0uNSbRE0vnOqM,113119
114
85
  mcli/ml/dashboard/app_supabase.py,sha256=bctGY2VBMU4h371AnV9n2k1DqE-8foxmCSYzhXq8REo,22252
@@ -120,11 +91,9 @@ mcli/ml/dashboard/streamlit_extras_utils.py,sha256=sxMWXtx7TuWUKxvU7nH42gm-lpY1l
120
91
  mcli/ml/dashboard/styles.py,sha256=rKsFOIzpj2dXAbFiBSfwYFSiiH9U_QCiopWSzYzzNSE,1325
121
92
  mcli/ml/dashboard/utils.py,sha256=vQ5TmOWoMny1cupALMsZNYJdxfVys-Dpe1zF5W2Du5I,7221
122
93
  mcli/ml/dashboard/warning_suppression.py,sha256=Ktj6JpE93lUqgbKTdXmIao7lcSglKTF4KKTM7FJjotA,1284
123
- mcli/ml/dashboard/components/__init__.py,sha256=WKSDw5TZ153XyqG0c1HHXbwF2R9RZcIOwctZ43lkM70,157
124
94
  mcli/ml/dashboard/components/charts.py,sha256=uJ3hHCoG7EHtqv2auwrVI3EvXeJ5KwXG4UlIbu9znBQ,5758
125
95
  mcli/ml/dashboard/components/metrics.py,sha256=ttLyZLd6U-PIcrXneQys889eibgDzo7UFfIM9_KcQe8,2947
126
96
  mcli/ml/dashboard/components/tables.py,sha256=uahXRCIIf-_9yk3sPnEl-vBHVels_ZxJs_OLPTYpt1E,7482
127
- mcli/ml/dashboard/pages/__init__.py,sha256=9kDVfDJ05KIjGQjBojDruyF_j7BfgW7WxHR9W3js-mc,179
128
97
  mcli/ml/dashboard/pages/cicd.py,sha256=oQEUTpx9HsEwMKXg7qPXVkXFsrG2zXRrUFoTMmKCMPM,14976
129
98
  mcli/ml/dashboard/pages/debug_dependencies.py,sha256=4uhc6KEs2_RO3HLI6zx3yNTd8YTMOZ1AlnBmrRnn1Zc,13551
130
99
  mcli/ml/dashboard/pages/gravity_viz.py,sha256=LEQQtPdcC-BW3I_YgTn6OgzS4blr9JfiLbaJo4ELOYQ,29754
@@ -134,70 +103,52 @@ mcli/ml/dashboard/pages/scrapers_and_logs.py,sha256=E0IPND9B4sBAl-0xJZ2Ha_LZ7g6n
134
103
  mcli/ml/dashboard/pages/test_portfolio.py,sha256=ILbIBNkFO47_KEf53ok8nrvR1ByGD25M85aiL_ne6z4,20806
135
104
  mcli/ml/dashboard/pages/trading.py,sha256=sc6vITzyXt7nvVRrb6zBzABIBp9mXA9rvWy-7fTkpZQ,31256
136
105
  mcli/ml/dashboard/pages/workflows.py,sha256=rX5X8yt66hHbuj6yry9A29UUpibeqFbd3AZzi3B9SLE,21311
137
- mcli/ml/data_ingestion/__init__.py,sha256=YnPlYy3z3t1S14Sx3fUtez5goCUsUrbZQ_Ka6re7MbM,755
138
106
  mcli/ml/data_ingestion/api_connectors.py,sha256=LRd4gfSX9vGF8otBNH9wrjftfv5fPH4C_K6tqDdZUb0,16083
139
107
  mcli/ml/data_ingestion/data_pipeline.py,sha256=9gbQY0j2A6tevmQW4l_2DOxv_RQsRc8USkrhWHth-94,18854
140
108
  mcli/ml/data_ingestion/stream_processor.py,sha256=2D0SELKKEaa8OXzFN8e75KyA3-za39zrYR2aYG5bYkA,15809
141
- mcli/ml/database/__init__.py,sha256=vnT3wEn6oErYTwok7XN4cE0n1XMn7sHU4sWOfXf6_YU,680
142
109
  mcli/ml/database/models.py,sha256=cNo3p5GvVPr3CTvUz4NlXW_onbksCPE0Ur6DeFrysVA,21680
143
110
  mcli/ml/database/session.py,sha256=_pZPtbOs0VEgXaz8OEyUARncXq56fbU4Xl5Jj9L6udo,11781
144
111
  mcli/ml/database/migrations/env.py,sha256=4_etswi4KhEhnSWMLuEHRBovb5URDmeIP0IjhHD7pj8,2432
145
- mcli/ml/experimentation/__init__.py,sha256=IEd2uEGOvpbXuIoX-ETFhOvHhjzjkVWUg_P4fQKaFBA,557
146
112
  mcli/ml/experimentation/ab_testing.py,sha256=VMuwxsuyMmEwTKL69uUhlVZHvmF1wxEhRPZAOAKa0CI,32062
147
- mcli/ml/features/__init__.py,sha256=jZ6KC5hiDmUVutexJcZw7OUMaafiOBYHqYOfzqirOqQ,1003
148
113
  mcli/ml/features/ensemble_features.py,sha256=tZlQjzccjbBVxBSAL6B9KXARAxkY3ZnEci_IzFecOC4,22942
149
114
  mcli/ml/features/political_features.py,sha256=et_KBjqlAzsuDYp6XQWCzqsMIsp4r07L3S1-dNCELN4,24889
150
115
  mcli/ml/features/recommendation_engine.py,sha256=MZhaJgEeR9N8eqJU-GgxnE861ttOsyKaNaz9Omu5k6I,30982
151
116
  mcli/ml/features/stock_features.py,sha256=VFww_bguT2uZn07AMuj3PiFA9E0k7riLOyGu6qHs5FI,21979
152
117
  mcli/ml/features/test_feature_engineering.py,sha256=BH-Gaj3m-phbvBBWvKnCnG3mZzlbd1C5i9LIkk_vdc0,12008
153
- mcli/ml/mlops/__init__.py,sha256=rKHRMKOU99uCMl_GSxmPr-dNKLscbD-CSRw7gkJEEjg,563
154
118
  mcli/ml/mlops/data_versioning.py,sha256=AAPy30IR6T7NclQYxFx_KDp22zx6VA7tu5VJsbuNycE,14968
155
119
  mcli/ml/mlops/experiment_tracker.py,sha256=_5EUNuTsiHtGLA_S6xPcS78wOVktu3Bkl2k9BAWYKRA,13472
156
120
  mcli/ml/mlops/model_serving.py,sha256=GCN53jZiz62vlH-ST8RLbZ2ZFBqvAAXUW33fJgdpFvk,16929
157
121
  mcli/ml/mlops/pipeline_orchestrator.py,sha256=2JU2ORNjLjRRLIXN7UzR5_Hq1vmie89H4ZXKq8kIoJU,23514
158
- mcli/ml/models/__init__.py,sha256=pZbjBBG8GJanXgX3txg8cst2PzLY22X_LtyFhsq71Jo,2377
159
122
  mcli/ml/models/base_models.py,sha256=eYSf1EQo5w0zInyypl9Qt_2St8mw1rCvS_gVLAsQyYI,10344
160
- mcli/ml/models/ensemble_models.py,sha256=RR85792gFqD4MX7oWaL7aLibqRK5t9TEaRaL9wGzp8A,22713
161
- mcli/ml/models/recommendation_models.py,sha256=7r79zBXwOCFJPz2bKcF1lR6sCrJqyvPBrMX8jcL5sXM,17138
123
+ mcli/ml/models/ensemble_models.py,sha256=qyddEf3Pl2ESNE-BFCu-WvMmpgkpPh2ur1pH-YQvmrE,22712
124
+ mcli/ml/models/recommendation_models.py,sha256=ZStqlSHICKzHMYcEuudc0iHA2GrcxuyScuQtan-LwPg,17137
162
125
  mcli/ml/models/test_models.py,sha256=_amqLeqFF1X8dCBSgIx8Jt4h4XdLqcPZNW2uq4Hd_Ow,15762
163
- mcli/ml/monitoring/__init__.py,sha256=DGsaxZQaFqZ-qkkOIfV4yoDx6dBdit1wvXG5P8qDBgU,473
164
126
  mcli/ml/monitoring/drift_detection.py,sha256=MlRWvqDqUYddXsCzFS4bPdMNC2xKkwA1Ghrdf1z0LRE,26112
165
127
  mcli/ml/monitoring/metrics.py,sha256=lC1npD1TzmhTz47WzAH6-jgCrFSvkPiMbo9TacsP0tI,1028
166
- mcli/ml/optimization/__init__.py,sha256=LqWont1FqQblM_1GNsVkahTHjQJ7SafX-JNLOXurUlU,633
167
- mcli/ml/optimization/optimize.py,sha256=7H5X4ATKys010d-ZiOCZUxFwQqXmRy7dUbykqMvv_LM,1945
128
+ mcli/ml/optimization/optimize.py,sha256=fknlTSVKnLT15bdkIswk9Wp8xhU23N1qAp7u4tSG3w8,1946
168
129
  mcli/ml/optimization/portfolio_optimizer.py,sha256=QxkLegU9T7Yv52ZBFtXdeRbS7ybxmKA6uK5d7yJkyNA,31298
169
- mcli/ml/predictions/__init__.py,sha256=yA_0mn390awKiI1r3pR71fDa8_mqd3RGUlcCrwymaiM,129
170
130
  mcli/ml/predictions/monte_carlo.py,sha256=33kqyqYzMAmXXDdq5q3LLSTqqKjAoJdFYuiD3J8ApmU,13630
171
131
  mcli/ml/predictions/prediction_engine.py,sha256=E_0BZH73syKUimYOaHiSI1RSzFQohx_CPOmzbdR4V-A,8680
172
- mcli/ml/preprocessing/__init__.py,sha256=55wxpxXPp-QPlY2zs5wi9qfAwIZD9mxZMwhmFzGUr_0,721
173
132
  mcli/ml/preprocessing/data_cleaners.py,sha256=vFa7aZIg_4MANjM1Ww06qj6YcrdD6u5srFqXWYOf6z8,17283
174
133
  mcli/ml/preprocessing/feature_extractors.py,sha256=xduPETE0L-0bw6uaXFdR4zsqJbUW_LkJckbNBMyoFPw,17307
175
134
  mcli/ml/preprocessing/ml_pipeline.py,sha256=XButx7aHIywgfpwfGOMpZLRk-bg5WRYDfeOsxE5WlPs,14203
176
135
  mcli/ml/preprocessing/politician_trading_preprocessor.py,sha256=woyZGaV6jD4cK9Xk71hWk7Lmay9v-MbO_dzHlkwGSMc,21901
177
136
  mcli/ml/preprocessing/test_preprocessing.py,sha256=4BJFTTB5D62hdP3HzjO0-Sc7eq5JzATcXvYk2uw7MBc,9576
178
- mcli/ml/scripts/__init__.py,sha256=_ToblHT7nJhsbO7IQXjBj6OJHrjynfhlE60Ku_yvFB4,25
179
137
  mcli/ml/scripts/populate_sample_data.py,sha256=TBiTQpiUWeNkT2X5H5IEd-v4lM507JMXw3nAD0Iq62g,7811
180
- mcli/ml/serving/__init__.py,sha256=7PCP9bIcVjkuO_llrWwHaCtIhPEwREu0-XA7BYIAm2o,47
181
- mcli/ml/serving/serve.py,sha256=bMpUJoCjKLP0WFr65cRC9auu72KkewZMFKw4B4lszTo,1401
138
+ mcli/ml/serving/serve.py,sha256=tZFQg87bvGjHyAXnXstMbREpMTkuve_FwFRdeIxnek8,1404
182
139
  mcli/ml/tests/test_integration.py,sha256=c5XhNIn-3vQsN_k5tAYCEb-VpZc58kPSJPhsokmvUgo,15956
183
140
  mcli/ml/tests/test_training_dashboard.py,sha256=fCNyNdVQzARE6LYdZwQJAFr3dO8GAG-u0dJhW-sFpLU,14013
184
- mcli/ml/trading/__init__.py,sha256=Y7ANy3NZ_6zOKxXUj3xOXFAX7WXQ8jUvIveoH1jCKGM,1484
185
141
  mcli/ml/trading/alpaca_client.py,sha256=WPPyrAbeWRIpRG-XLLgiBYJun9J7wlwTIJoeY5qkNiI,14694
186
142
  mcli/ml/trading/migrations.py,sha256=lFmmQivegr428xUudPw5XygChbEvXBtN4vZX2WxYhKw,6091
187
143
  mcli/ml/trading/models.py,sha256=qzGOYJTXL2m6lqWTdODwn0fOAECihIt8zTpaQqTwn00,14387
188
144
  mcli/ml/trading/paper_trading.py,sha256=7faoabOOv3BdIDmrzPkLF_zTmWwZspq588sU9_m_ja8,13862
189
145
  mcli/ml/trading/risk_management.py,sha256=7eygbQaC1sfJlFvyInOc4MQtwxmU5lDnj28UcrfkBCk,15572
190
146
  mcli/ml/trading/trading_service.py,sha256=TguV7E_P5E8oGyGHOU2wEemh0iVepqitL4zjulm6NBE,20896
191
- mcli/ml/training/__init__.py,sha256=ldDLgyrpgU6B5pQhBMmC5Xt_sP7jgvpSwqHK8VJzGos,278
192
- mcli/ml/training/train.py,sha256=6sh83Sr6HiIfIMYuOQZpgHzviiFIyVIOrBynTAg36GY,2718
147
+ mcli/ml/training/train.py,sha256=_lZLAPQvdQ1_vKyrokR1mm4ZRNXx57lNea-8cD0CmlY,2718
193
148
  mcli/ml/training/train_model.py,sha256=_brE4ud0R9xfT5x3IpxgMhmakvbLbxqN82Ix4ycxSSo,16861
194
- mcli/mygroup/__init__.py,sha256=nXHIIt-BAROSr-22u567KklVcdcHQU19G2efSEIpmHU,35
195
149
  mcli/mygroup/test_cmd.py,sha256=WjzgoH1WFa79wc8A7O6UMuJfookLfgciUNcCMbKHAQQ,21
196
- mcli/public/__init__.py,sha256=h7ykT8kSrTfYJ6HWBV3YLrUi8VEhNWzkfmGZ1kKdtJU,49
197
150
  mcli/public/public.py,sha256=t9BkO1XV7s3YcoH0bbIpyjZ05UX_vBjaKtKkuDX7wZ0,114
198
- mcli/public/commands/__init__.py,sha256=0WGm1i4t1uifkC_5FmbQ2r03q53yrZ3KnoWOd2M7dEA,103
199
151
  mcli/public/oi/oi.py,sha256=SQabQWQ1pE67pWYEHwIDc3R93DARJfB6VHk7qxWx9xo,308
200
- mcli/self/__init__.py,sha256=7hCrgaRb4oAgAf-kcyzqhJ5LFpW19jwF5bxowR4LwjY,41
201
152
  mcli/self/completion_cmd.py,sha256=FKNVc_4ikWTGbDHybiNZGdxrggvt6A6q1rnzuyFVzVM,7754
202
153
  mcli/self/logs_cmd.py,sha256=SCzZ4VZs6p42hksun_w4WN33xIZgmq7RjdWX8P2WcT4,15056
203
154
  mcli/self/redis_cmd.py,sha256=Cl0LQ3Mqt27gLeb542_xw6bJBbIE-CBmWyMmaUTSk8c,9426
@@ -206,11 +157,9 @@ mcli/self/store_cmd.py,sha256=O6arjRr4qWQKh1QyVWtzyXq5R7yZEBL87FSI59Db7IY,13320
206
157
  mcli/self/test_cmd.py,sha256=WjzgoH1WFa79wc8A7O6UMuJfookLfgciUNcCMbKHAQQ,21
207
158
  mcli/self/visual_cmd.py,sha256=jXighahHxeM9HANQ2Brk6nKFgi2ZuQBOBH7PE5xhebk,9428
208
159
  mcli/self/zsh_cmd.py,sha256=63jKmfjhJp2zxJL2c37OdtdzDrnOreXXfyARN7TyfzU,8294
209
- mcli/workflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
210
- mcli/workflow/doc_convert.py,sha256=X7ZCYbGCBZLv6WkxAgHfVOkD-6k-euo6qIaPgaKiwhA,25972
160
+ mcli/workflow/doc_convert.py,sha256=0_js7NbY8V9zWzcJiLB5Y5ZuX5LZubJmLWMp7DAC9mU,26381
211
161
  mcli/workflow/lsh_integration.py,sha256=jop80DUjdOSxmqPb-gX_OBep5f1twViv-pXmkcFqBPY,13314
212
162
  mcli/workflow/workflow.py,sha256=P_W5LOB3lowvvlfEp3mGwS3eNq4tpbiUY-poFulAF9E,393
213
- mcli/workflow/daemon/__init__.py,sha256=iDounKzoQhHcgHwK1kFJHnPPhn09JFzvSEpXRZDSnxU,565
214
163
  mcli/workflow/daemon/async_command_database.py,sha256=pvfKYjt0Jg1EPwJ1p2C0M3bsBWvjEs4Ok-Y6-jY0qVI,24873
215
164
  mcli/workflow/daemon/async_process_manager.py,sha256=hDehiYuWnBOv8LbMLTDEi4DVyrwm8YrrYF8Ca5P66A4,21374
216
165
  mcli/workflow/daemon/client.py,sha256=W2uuat08b75m2SNRybWJ0xiNt0NfU43HorqziYzaxvQ,16849
@@ -220,17 +169,11 @@ mcli/workflow/daemon/enhanced_daemon.py,sha256=rqnAUVskxgdroyjgZdPldDGGYaMgSE0gh
220
169
  mcli/workflow/daemon/process_cli.py,sha256=FGaDpLtoxuUgNP61OzFAeU4sRu2hMNRrz1zRH-wyxgo,8696
221
170
  mcli/workflow/daemon/process_manager.py,sha256=He2Hjvnf8_6Gd982BpHss7rsD7Sl_h4KDkmRhHZEa5M,15200
222
171
  mcli/workflow/daemon/test_daemon.py,sha256=Fc_X9dauAtc10WHtVarKdMZnRJOVYDeKRR1RbTVE-wA,8741
223
- mcli/workflow/dashboard/__init__.py,sha256=Mll3vUhkhaJWMVxtBhRC6VVqMI_z795PhGGIEIqW34o,96
224
172
  mcli/workflow/dashboard/dashboard_cmd.py,sha256=AwgECXyE9W9l1JSWLziXXeAzKTa6KLx0tOrirblUMd4,5595
225
- mcli/workflow/docker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
173
  mcli/workflow/docker/docker.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
227
- mcli/workflow/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
228
- mcli/workflow/gcloud/__init__.py,sha256=-WO-8AfhL7EdAHSmzNm8bvioxMBfwFjKrpCuXWrTWdU,27
229
174
  mcli/workflow/gcloud/config.toml,sha256=4_bImtrmmYxIFguQ4xRMgziMr_HVO80piWcyflXgWkU,697
230
175
  mcli/workflow/gcloud/gcloud.py,sha256=haTm4klifiSdYhQzDvtojkOCfsmFcB-zy2g8ZRkzBCk,1568
231
- mcli/workflow/git_commit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
232
176
  mcli/workflow/git_commit/ai_service.py,sha256=IMmMKH7x8aWt-PTpYksNmslb7DdPZIiCbaCao7rItdI,12189
233
- mcli/workflow/interview/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
234
177
  mcli/workflow/model_service/client.py,sha256=wWYde_zR6_o6SP6oePwkHKmEVBtELrP8uKyZNTBWwVc,20888
235
178
  mcli/workflow/model_service/download_and_run_efficient_models.py,sha256=UlKs_Oq_1Vn5qFP28ALCF6CVMTqcRT8hG5quHeGHLIc,9898
236
179
  mcli/workflow/model_service/lightweight_embedder.py,sha256=82B0tYOYVTB3rdC-7XYEMnkw4Q_K0-p3LeyvdaP6ro8,14165
@@ -245,7 +188,6 @@ mcli/workflow/model_service/test_example.py,sha256=aMSNRyjz5ian6cmHQt_sE5-q10V82
245
188
  mcli/workflow/model_service/test_integration.py,sha256=PMylaOOab-mzkx_Si-gNwRzc_3tTs-9eMD8SOQUiJwM,4553
246
189
  mcli/workflow/model_service/test_new_features.py,sha256=5mMluJX5qjVC6HHtppGw1HemcDws9kKA5J1Xmrou8jU,4297
247
190
  mcli/workflow/openai/openai.py,sha256=Zv7nsFUQqLeg5jJaYKp6wsXZsb7b5pzjF8HQLpJkIaI,2769
248
- mcli/workflow/politician_trading/__init__.py,sha256=U7EYsjbIWsmQZBZH_yd-DlzeK6NyLpSeESIVQQRwFDw,113
249
191
  mcli/workflow/politician_trading/config.py,sha256=8lI--VX9EK1VdjllnkpoQKJwzBR8YPtnBgPHu33P6Jc,4398
250
192
  mcli/workflow/politician_trading/connectivity.py,sha256=jJGWpqetAto7_LGYkCUAJWo5ETl_3Gx4jX8eO4Ah3JI,18945
251
193
  mcli/workflow/politician_trading/data_sources.py,sha256=Ol-I35pXn5GEulQ8UWDw4N9kdk--4bWLSEbWL1ZkEdQ,30992
@@ -264,25 +206,18 @@ mcli/workflow/politician_trading/scrapers_us_states.py,sha256=iMpEs7HjfhXI0MwXTn
264
206
  mcli/workflow/politician_trading/seed_database.py,sha256=C0UybjVJkay9KSTwWorynXBHWW25eLrLqQrBJZC05AQ,17332
265
207
  mcli/workflow/politician_trading/supabase_functions.py,sha256=7RXZuFsbc82-nwv54XdO19gkrI1sWJsuNn4LRKLw3T0,10089
266
208
  mcli/workflow/politician_trading/workflow.py,sha256=LxWKLnim5ttFtPTYgPtt4qlBpeAFoj7TUH-0tl15IDk,36262
267
- mcli/workflow/registry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
268
209
  mcli/workflow/registry/registry.py,sha256=MbiabMfrvbFvD8K1c9ucmXCSdfqZa1PUBedwStz9UgA,5249
269
- mcli/workflow/repo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
270
210
  mcli/workflow/repo/repo.py,sha256=sk-hOzAa1IL1YSTSetgq-k-x0XRpGVGksSa095Q0JkM,8055
271
- mcli/workflow/scheduler/__init__.py,sha256=wKnYDtvu_U0ImY1Ki0_371K4eVzdDEvs2q-dh594OLY,618
272
211
  mcli/workflow/scheduler/cron_parser.py,sha256=pG9b7emjbBQ_-xNjauTUaeFoKZV_X-oCN5mpq18HyTs,7548
273
212
  mcli/workflow/scheduler/job.py,sha256=UMKDbxTR01TaYKNTMaReIm33R_HghvHWovQC1IEGyRI,6613
274
213
  mcli/workflow/scheduler/monitor.py,sha256=63TClZQyxbJyx5Sf3q1v8BgO6YPvWQNZYfCixM66Qik,5031
275
214
  mcli/workflow/scheduler/persistence.py,sha256=SU8-F5wTpTercZvTeAXKlGI7gwHyfmYDhX2_KnEYnjs,11592
276
215
  mcli/workflow/scheduler/scheduler.py,sha256=1Ujq9VgL1rSTCAtshuLA2_sodW6HOj0MEZem7Ga-kic,23351
277
- mcli/workflow/search/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
278
- mcli/workflow/sync/__init__.py,sha256=vYjpzxC1OTFvhp2sgBqzrujUhghb4MtFNxrsPNDkUcc,104
279
216
  mcli/workflow/sync/test_cmd.py,sha256=neVgs9zEnKSxlvzDpFkuCGucqnzjrShm2OvJtHibslg,10009
280
- mcli/workflow/videos/__init__.py,sha256=aV3DEoO7qdKJY4odWKoQbOKDQq4ludTeCLnZcupOFIM,25
281
- mcli/workflow/wakatime/__init__.py,sha256=wKG8cVIHVtMPhNRFGFtX43bRnocHqOMMkFMkmW-M6pU,2626
282
217
  mcli/workflow/wakatime/wakatime.py,sha256=sEjsUKa3-XyE8Ni6sAb_D3GAY5jDcA30KknW9YTbLTA,142
283
- mcli_framework-7.9.7.dist-info/licenses/LICENSE,sha256=sahwAMfrJv2-V66HNPTp7A9UmMjxtyejwTZZoWQvEcI,1075
284
- mcli_framework-7.9.7.dist-info/METADATA,sha256=w4aPp_QKzIIoS3R1E7lrNrcXInAps5OXNja2QuiIhEY,16418
285
- mcli_framework-7.9.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
286
- mcli_framework-7.9.7.dist-info/entry_points.txt,sha256=dYrZbDIm-KUPsl1wfv600Kx_8sMy89phMkCihbDRgP8,261
287
- mcli_framework-7.9.7.dist-info/top_level.txt,sha256=_bnO8J2EUkliWivey_1le0UrnocFKmyVMQjbQ8iVXjc,5
288
- mcli_framework-7.9.7.dist-info/RECORD,,
218
+ mcli_framework-7.10.0.dist-info/licenses/LICENSE,sha256=sahwAMfrJv2-V66HNPTp7A9UmMjxtyejwTZZoWQvEcI,1075
219
+ mcli_framework-7.10.0.dist-info/METADATA,sha256=c8JMqCuG8rD8u-1eMM4iElNqE-xRy9dA1sHskxI6trY,16419
220
+ mcli_framework-7.10.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
221
+ mcli_framework-7.10.0.dist-info/entry_points.txt,sha256=dYrZbDIm-KUPsl1wfv600Kx_8sMy89phMkCihbDRgP8,261
222
+ mcli_framework-7.10.0.dist-info/top_level.txt,sha256=_bnO8J2EUkliWivey_1le0UrnocFKmyVMQjbQ8iVXjc,5
223
+ mcli_framework-7.10.0.dist-info/RECORD,,