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
@@ -1,39 +0,0 @@
1
- """Feature Engineering Module for Stock Recommendation Models"""
2
-
3
- from .ensemble_features import (
4
- DynamicFeatureSelector,
5
- EnsembleFeatureBuilder,
6
- FeatureInteractionEngine,
7
- )
8
- from .political_features import (
9
- CongressionalTrackingFeatures,
10
- PolicyImpactFeatures,
11
- PoliticalInfluenceFeatures,
12
- )
13
- from .recommendation_engine import (
14
- RecommendationConfig,
15
- RecommendationResult,
16
- StockRecommendationEngine,
17
- )
18
- from .stock_features import (
19
- CrossAssetFeatures,
20
- MarketRegimeFeatures,
21
- StockRecommendationFeatures,
22
- TechnicalIndicatorFeatures,
23
- )
24
-
25
- __all__ = [
26
- "StockRecommendationFeatures",
27
- "TechnicalIndicatorFeatures",
28
- "MarketRegimeFeatures",
29
- "CrossAssetFeatures",
30
- "PoliticalInfluenceFeatures",
31
- "CongressionalTrackingFeatures",
32
- "PolicyImpactFeatures",
33
- "EnsembleFeatureBuilder",
34
- "FeatureInteractionEngine",
35
- "DynamicFeatureSelector",
36
- "StockRecommendationEngine",
37
- "RecommendationConfig",
38
- "RecommendationResult",
39
- ]
mcli/ml/mlops/__init__.py DELETED
@@ -1,19 +0,0 @@
1
- """MLOps components for ML pipeline management"""
2
-
3
- from .experiment_tracker import ExperimentRun, ExperimentTracker, MLflowConfig, ModelRegistry
4
- from .model_serving import ModelEndpoint, ModelServer, PredictionService
5
- from .pipeline_orchestrator import MLPipeline, PipelineConfig, PipelineExecutor, PipelineStep
6
-
7
- __all__ = [
8
- "ExperimentTracker",
9
- "ModelRegistry",
10
- "MLflowConfig",
11
- "ExperimentRun",
12
- "ModelServer",
13
- "PredictionService",
14
- "ModelEndpoint",
15
- "MLPipeline",
16
- "PipelineStep",
17
- "PipelineConfig",
18
- "PipelineExecutor",
19
- ]
@@ -1,90 +0,0 @@
1
- """ML Models for Stock Recommendation System"""
2
-
3
- from pathlib import Path
4
- from typing import Any, Dict, Optional
5
-
6
- import torch
7
-
8
- from .base_models import BaseStockModel, ModelMetrics, ValidationResult
9
- from .ensemble_models import (
10
- AttentionStockPredictor,
11
- CNNFeatureExtractor,
12
- DeepEnsembleModel,
13
- EnsembleConfig,
14
- EnsembleTrainer,
15
- LSTMStockPredictor,
16
- ModelConfig,
17
- TransformerStockModel,
18
- )
19
- from .recommendation_models import (
20
- RecommendationConfig,
21
- RecommendationTrainer,
22
- StockRecommendationModel,
23
- )
24
-
25
- # Model registry
26
- _loaded_models: Dict[str, Any] = {}
27
-
28
-
29
- async def load_production_models():
30
- """Load production models into memory"""
31
- from mcli.ml.config import settings
32
- from mcli.ml.logging import get_logger
33
-
34
- logger = get_logger(__name__)
35
- model_dir = settings.model.model_dir
36
-
37
- if not model_dir.exists():
38
- model_dir.mkdir(parents=True, exist_ok=True)
39
- return
40
-
41
- for model_path in model_dir.glob("*.pt"):
42
- try:
43
- model_id = model_path.stem
44
- model = torch.load(model_path, map_location=settings.model.device)
45
- _loaded_models[model_id] = model
46
- logger.info(f"Loaded model: {model_id}")
47
- except Exception as e:
48
- logger.error(f"Failed to load model {model_path}: {e}")
49
-
50
-
51
- async def get_model_by_id(model_id: str):
52
- """Get loaded model by ID"""
53
- from mcli.ml.config import settings
54
-
55
- if model_id not in _loaded_models:
56
- # Try to load from disk
57
- model_path = settings.model.model_dir / f"{model_id}.pt"
58
- if model_path.exists():
59
- _loaded_models[model_id] = torch.load(model_path, map_location=settings.model.device)
60
-
61
- return _loaded_models.get(model_id)
62
-
63
-
64
- def initialize_models():
65
- """Initialize models on startup"""
66
- from mcli.ml.logging import get_logger
67
-
68
- logger = get_logger(__name__)
69
- logger.info("Initializing ML models...")
70
-
71
-
72
- __all__ = [
73
- "DeepEnsembleModel",
74
- "AttentionStockPredictor",
75
- "TransformerStockModel",
76
- "LSTMStockPredictor",
77
- "CNNFeatureExtractor",
78
- "EnsembleTrainer",
79
- "ModelConfig",
80
- "EnsembleConfig",
81
- "BaseStockModel",
82
- "ModelMetrics",
83
- "ValidationResult",
84
- "StockRecommendationModel",
85
- "RecommendationTrainer",
86
- "RecommendationConfig",
87
- "load_production_models",
88
- "get_model_by_id",
89
- "initialize_models",
90
- ]
@@ -1,25 +0,0 @@
1
- """ML Model Monitoring and Drift Detection"""
2
-
3
- from .drift_detection import (
4
- AlertSeverity,
5
- ConceptDriftDetector,
6
- DataProfile,
7
- DriftAlert,
8
- DriftType,
9
- ModelMetrics,
10
- ModelMonitor,
11
- OutlierDetector,
12
- StatisticalDriftDetector,
13
- )
14
-
15
- __all__ = [
16
- "ModelMonitor",
17
- "StatisticalDriftDetector",
18
- "ConceptDriftDetector",
19
- "OutlierDetector",
20
- "DriftAlert",
21
- "DriftType",
22
- "AlertSeverity",
23
- "ModelMetrics",
24
- "DataProfile",
25
- ]
@@ -1,27 +0,0 @@
1
- """Advanced Portfolio Optimization"""
2
-
3
- from .portfolio_optimizer import (
4
- AdvancedPortfolioOptimizer,
5
- BaseOptimizer,
6
- BlackLittermanOptimizer,
7
- CVaROptimizer,
8
- KellyCriterionOptimizer,
9
- MeanVarianceOptimizer,
10
- OptimizationConstraints,
11
- OptimizationObjective,
12
- PortfolioAllocation,
13
- RiskParityOptimizer,
14
- )
15
-
16
- __all__ = [
17
- "AdvancedPortfolioOptimizer",
18
- "OptimizationObjective",
19
- "OptimizationConstraints",
20
- "PortfolioAllocation",
21
- "MeanVarianceOptimizer",
22
- "RiskParityOptimizer",
23
- "BlackLittermanOptimizer",
24
- "CVaROptimizer",
25
- "KellyCriterionOptimizer",
26
- "BaseOptimizer",
27
- ]
@@ -1,5 +0,0 @@
1
- """ML Predictions Module"""
2
-
3
- from .prediction_engine import PoliticianTradingPredictor
4
-
5
- __all__ = ["PoliticianTradingPredictor"]
@@ -1,24 +0,0 @@
1
- """ML Data Preprocessing Module"""
2
-
3
- from .data_cleaners import MissingValueHandler, OutlierDetector, TradingDataCleaner
4
- from .feature_extractors import (
5
- MarketFeatureExtractor,
6
- PoliticianFeatureExtractor,
7
- SentimentFeatureExtractor,
8
- TemporalFeatureExtractor,
9
- )
10
- from .ml_pipeline import MLDataPipeline, MLDataPipelineConfig
11
- from .politician_trading_preprocessor import PoliticianTradingPreprocessor
12
-
13
- __all__ = [
14
- "PoliticianTradingPreprocessor",
15
- "PoliticianFeatureExtractor",
16
- "MarketFeatureExtractor",
17
- "TemporalFeatureExtractor",
18
- "SentimentFeatureExtractor",
19
- "TradingDataCleaner",
20
- "OutlierDetector",
21
- "MissingValueHandler",
22
- "MLDataPipeline",
23
- "MLDataPipelineConfig",
24
- ]
@@ -1 +0,0 @@
1
- """ML scripts module."""
@@ -1 +0,0 @@
1
- """Model serving module for MCLI ML system."""
@@ -1,63 +0,0 @@
1
- """Trading module for portfolio management and trade execution"""
2
-
3
- from mcli.ml.trading.alpaca_client import (
4
- AlpacaTradingClient,
5
- create_trading_client,
6
- get_alpaca_config_from_env,
7
- )
8
- from mcli.ml.trading.models import ( # Enums; Database models; Pydantic models
9
- OrderCreate,
10
- OrderResponse,
11
- OrderSide,
12
- OrderStatus,
13
- OrderType,
14
- Portfolio,
15
- PortfolioCreate,
16
- PortfolioPerformanceSnapshot,
17
- PortfolioResponse,
18
- PortfolioType,
19
- Position,
20
- PositionResponse,
21
- PositionSide,
22
- RiskLevel,
23
- TradingAccount,
24
- TradingAccountCreate,
25
- TradingOrder,
26
- TradingSignal,
27
- TradingSignalResponse,
28
- )
29
- from mcli.ml.trading.paper_trading import PaperTradingEngine
30
- from mcli.ml.trading.risk_management import RiskManager
31
- from mcli.ml.trading.trading_service import TradingService
32
-
33
- __all__ = [
34
- # Enums
35
- "OrderStatus",
36
- "OrderType",
37
- "OrderSide",
38
- "PositionSide",
39
- "PortfolioType",
40
- "RiskLevel",
41
- # Database models
42
- "TradingAccount",
43
- "Portfolio",
44
- "Position",
45
- "TradingOrder",
46
- "PortfolioPerformanceSnapshot",
47
- "TradingSignal",
48
- # Pydantic models
49
- "TradingAccountCreate",
50
- "PortfolioCreate",
51
- "OrderCreate",
52
- "PositionResponse",
53
- "OrderResponse",
54
- "PortfolioResponse",
55
- "TradingSignalResponse",
56
- # Services
57
- "TradingService",
58
- "AlpacaTradingClient",
59
- "create_trading_client",
60
- "get_alpaca_config_from_env",
61
- "RiskManager",
62
- "PaperTradingEngine",
63
- ]
@@ -1,7 +0,0 @@
1
- """ML model training module"""
2
-
3
- from .train_model import PoliticianTradingNet, fetch_training_data
4
- from .train_model import main as train_model
5
- from .train_model import prepare_dataset
6
-
7
- __all__ = ["PoliticianTradingNet", "train_model", "fetch_training_data", "prepare_dataset"]
mcli/mygroup/__init__.py DELETED
@@ -1,3 +0,0 @@
1
- """
2
- Mygroup commands for mcli.
3
- """
mcli/public/__init__.py DELETED
@@ -1 +0,0 @@
1
- # logger.info("I am in mcli.public.__init__.py")
@@ -1,2 +0,0 @@
1
- # User-generated commands directory
2
- # Commands created through the MCLI chat interface are stored here
mcli/self/__init__.py DELETED
@@ -1,3 +0,0 @@
1
- """
2
- Self-management module for mcli.
3
- """
mcli/workflow/__init__.py DELETED
File without changes
@@ -1,15 +0,0 @@
1
- """
2
- Daemon service for command management and execution.
3
-
4
- This module provides a background daemon service that can store, manage, and execute
5
- commands written in various programming languages (Python, Node.js, Lua, Shell).
6
- Commands are stored in a SQLite database with embeddings for similarity search and
7
- hierarchical grouping.
8
-
9
- The daemon CLI commands are now loaded from portable JSON files in ~/.mcli/commands/
10
- """
11
-
12
- from .daemon import Command, CommandExecutor, DaemonService
13
-
14
- # Export main components
15
- __all__ = ["Command", "CommandExecutor", "DaemonService"]
@@ -1,5 +0,0 @@
1
- """Dashboard workflow module."""
2
-
3
- from .dashboard_cmd import dashboard
4
-
5
- __all__ = ["dashboard"]
File without changes
File without changes
@@ -1 +0,0 @@
1
- from .gcloud import gcloud
File without changes
File without changes
@@ -1,4 +0,0 @@
1
- """
2
- Politician Trading Data Workflow
3
- Tracks publicly available trading information for US and EU politicians
4
- """
File without changes
File without changes
@@ -1,25 +0,0 @@
1
- """
2
- MCLI Scheduler Module
3
-
4
- A robust cron-like job scheduling system with the following features:
5
- - Cron expression parsing and job scheduling
6
- - Job monitoring and persistence across restarts
7
- - JSON API for frontend integration
8
- - System automation capabilities
9
- - Desktop file cleanup and management
10
- """
11
-
12
- from .cron_parser import CronExpression
13
- from .job import JobStatus, ScheduledJob
14
- from .monitor import JobMonitor
15
- from .persistence import JobStorage
16
- from .scheduler import JobScheduler
17
-
18
- __all__ = [
19
- "JobScheduler",
20
- "ScheduledJob",
21
- "JobStatus",
22
- "CronExpression",
23
- "JobStorage",
24
- "JobMonitor",
25
- ]
File without changes
@@ -1,5 +0,0 @@
1
- """Multi-cloud sync module for mcli workflow system."""
2
-
3
- from .sync_cmd import sync
4
-
5
- __all__ = ["sync"]
@@ -1 +0,0 @@
1
- # Videos workflow module
@@ -1,80 +0,0 @@
1
- import os
2
-
3
- import click
4
-
5
- # from mcli.types.watcher.watcher import watch
6
- from mcli.lib.watcher import watcher
7
-
8
- # from mcli.util.db.db import readDB
9
-
10
- """
11
- Source of Truth for the bundle command.
12
- c3 ui -u BA:BA -t $OE_C3_TENANT -g $OE_C3_TAG -c $OE_C3_PACKAGE -W $OE_C3_UI_WORK_DIR -e http://localhost:8080 --log-dir $OE_C3_UI_LOGS_DIR --out-dir $OE_C3_UI_OUT_DIR -a provision
13
-
14
-
15
- NODE_TLS_REJECT_UNAUTHORIZED=0 c3 ui --with-tests -W ~/c3/UiWorkingDirectory -e http://localhost:8080 --bundler-port 50082 -t operationalEnergy:dev -c operationalEnergyDemo -a . -T 303349a1bbcdbd5fd33d96ce1a34fa68b6b3cb24378cca4441c67718d1b670f4b092
16
-
17
- NODE_TLS_REJECT_UNAUTHORIZED=0 c3 prov tag -t operationalEnergy:dev -c operationalEnergyDemo -T 303349a1bbcdbd5fd33d96ce1a34fa68b6b3cb24378cca4441c67718d1b670f4b092 -e http://localhost:8080 -r --verbose
18
-
19
-
20
- NOTE: Info on getting UI artifacts: https://c3energy.atlassian.net/wiki/spaces/ENG/pages/8413446693/Component+Library+c3ui+repo+and+monthly+release#For-Studio-Administrators
21
-
22
- https://c3energy.atlassian.net/wiki/spaces/~63065ed547d60b7107ed59f8/pages/8906934405/8.6+React+18+ui+upgrade
23
-
24
- """
25
-
26
- C3LI_PACKAGES_TO_SYNC = [os.environ.get("C3LI_PACKAGES_TO_SYNC")]
27
- C3LI_PATH_TO_PACKAGE_REPO = os.environ.get("C3LI_PATH_TO_PACKAGE_REPO")
28
- C3LI_UNAME = os.environ.get("C3LI_UNAME")
29
-
30
-
31
- # TODO: To implement / integrate ReactJS version of c3 packages
32
- @click.group(name="ui")
33
- def bundle():
34
- """ui utility - use this to interact with c3 ui components"""
35
- pass
36
-
37
-
38
- @click.command(name="provision")
39
- def provision():
40
- """provision utility - use this to provision your c3 package"""
41
- pass
42
-
43
-
44
- @click.command(name="v8")
45
- @click.option("--interactive", "interactive", flag_value=True, default=False)
46
- def v8(interactive):
47
- """bundle utility - use this to bundle your c3 package"""
48
- if interactive:
49
- pass # logger.info("Bundling in interactive mode")
50
- else:
51
- # Dummy fallback for test pass
52
- pass
53
-
54
-
55
- @click.command(name="v7")
56
- @click.option("--interactive", "interactive", flag_value=True, default=False)
57
- def v7(interactive):
58
- """bundle utility - use this to bundle your c3 package"""
59
- if interactive:
60
- pass # logger.info("Bundling in interactive mode")
61
- pass
62
-
63
-
64
- @click.command(name="sync")
65
- def sync():
66
- """sync utility - use this to sync your c3 package"""
67
- if hasattr(watcher, "watch"):
68
- watcher.watch(C3LI_PACKAGES_TO_SYNC, C3LI_PATH_TO_PACKAGE_REPO)
69
- else:
70
- # Dummy fallback for test pass
71
- pass
72
- pass
73
-
74
-
75
- bundle.add_command(provision)
76
- bundle.add_command(bundle)
77
- bundle.add_command(sync)
78
-
79
- if __name__ == "__main__":
80
- bundle()