mcli-framework 7.9.0__tar.gz → 7.9.2__tar.gz
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_framework-7.9.0 → mcli_framework-7.9.2}/PKG-INFO +1 -1
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/pyproject.toml +1 -1
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/backtesting/backtest_engine.py +1 -3
- mcli_framework-7.9.2/src/mcli/ml/backtesting/run.py +54 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/models/ensemble_models.py +1 -1
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/models/recommendation_models.py +2 -2
- mcli_framework-7.9.2/src/mcli/ml/optimization/optimize.py +51 -0
- mcli_framework-7.9.2/src/mcli/ml/serving/serve.py +50 -0
- mcli_framework-7.9.2/src/mcli/ml/training/train.py +73 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli_framework.egg-info/PKG-INFO +1 -1
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli_framework.egg-info/SOURCES.txt +4 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/.github/dependabot.yml +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/.github/workflows/build.yml +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/.github/workflows/ci.yml +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/.github/workflows/ml-pipeline.yml +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/.github/workflows/publish-self-hosted.yml +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/.github/workflows/publish.yml +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/.github/workflows/release.yml +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/.github/workflows/security.yml +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/.github/workflows/test.yml +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/LICENSE +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/MANIFEST.in +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/README.md +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/mcli_rust/Cargo.toml +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/mcli_rust/src/command_parser.rs +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/mcli_rust/src/file_watcher.rs +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/mcli_rust/src/lib.rs +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/mcli_rust/src/process_manager.rs +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/mcli_rust/src/tfidf.rs +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/setup.cfg +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/app/commands_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/app/completion_helpers.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/app/main.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/app/model/model.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/app/model_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/app/video/video.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/chat/chat.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/chat/command_rag.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/chat/enhanced_chat.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/chat/system_controller.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/chat/system_integration.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/cli.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/config.toml +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/api/api.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/api/daemon_client.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/api/daemon_client_local.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/api/daemon_decorator.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/api/mcli_decorators.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/auth/auth.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/auth/aws_manager.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/auth/azure_manager.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/auth/credential_manager.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/auth/gcp_manager.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/auth/key_manager.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/auth/mcli_manager.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/auth/token_manager.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/auth/token_util.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/config/config.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/custom_commands.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/discovery/__init__.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/discovery/command_discovery.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/erd/erd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/erd/generate_graph.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/files/files.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/fs/fs.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/lib.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/logger/logger.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/paths.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/performance/optimizer.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/performance/rust_bridge.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/performance/uvloop_config.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/pickles/pickles.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/search/cached_vectorizer.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/secrets/commands.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/secrets/manager.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/secrets/repl.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/secrets/store.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/services/data_pipeline.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/services/lsh_client.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/services/redis_service.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/shell/shell.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/toml/toml.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/ui/styling.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/ui/visual_effects.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/lib/watcher/watcher.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/api/app.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/api/middleware.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/api/routers/admin_router.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/api/routers/auth_router.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/api/routers/backtest_router.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/api/routers/data_router.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/api/routers/model_router.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/api/routers/monitoring_router.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/api/routers/portfolio_router.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/api/routers/prediction_router.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/api/routers/trade_router.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/api/routers/websocket_router.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/api/schemas.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/auth/auth_manager.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/auth/models.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/auth/permissions.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/backtesting/performance_metrics.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/cache.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/cli/main.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/config/settings.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/configs/dvc_config.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/configs/mlflow_config.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/configs/mlops_manager.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/app.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/app_integrated.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/app_supabase.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/app_training.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/cli.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/common.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/components/charts.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/components/metrics.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/components/tables.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/overview.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/pages/cicd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/pages/debug_dependencies.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/pages/gravity_viz.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/pages/monte_carlo_predictions.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/pages/predictions_enhanced.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/pages/scrapers_and_logs.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/pages/test_portfolio.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/pages/trading.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/pages/workflows.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/streamlit_extras_utils.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/styles.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/utils.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/warning_suppression.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/data_ingestion/api_connectors.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/data_ingestion/data_pipeline.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/data_ingestion/stream_processor.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/database/migrations/env.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/database/models.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/database/session.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/experimentation/ab_testing.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/features/ensemble_features.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/features/political_features.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/features/recommendation_engine.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/features/stock_features.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/features/test_feature_engineering.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/logging.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/mlops/data_versioning.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/mlops/experiment_tracker.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/mlops/model_serving.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/mlops/pipeline_orchestrator.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/models/base_models.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/models/test_models.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/monitoring/drift_detection.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/monitoring/metrics.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/optimization/portfolio_optimizer.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/predictions/monte_carlo.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/predictions/prediction_engine.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/preprocessing/data_cleaners.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/preprocessing/feature_extractors.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/preprocessing/ml_pipeline.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/preprocessing/politician_trading_preprocessor.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/preprocessing/test_preprocessing.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/scripts/populate_sample_data.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/tasks.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/tests/test_integration.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/tests/test_training_dashboard.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/trading/alpaca_client.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/trading/migrations.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/trading/models.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/trading/paper_trading.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/trading/risk_management.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/trading/trading_service.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/training/train_model.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/mygroup/test_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/public/oi/oi.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/public/public.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/self/completion_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/self/logs_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/self/redis_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/self/self_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/self/store_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/self/test_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/self/visual_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/self/zsh_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/daemon/async_command_database.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/daemon/async_process_manager.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/daemon/client.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/daemon/daemon.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/daemon/daemon_api.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/daemon/enhanced_daemon.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/daemon/process_cli.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/daemon/process_manager.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/daemon/test_daemon.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/dashboard/dashboard_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/docker/docker.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/gcloud/config.toml +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/gcloud/gcloud.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/git_commit/ai_service.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/lsh_integration.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/model_service/client.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/model_service/download_and_run_efficient_models.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/model_service/lightweight_embedder.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/model_service/lightweight_model_server.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/model_service/lightweight_test.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/model_service/model_service.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/model_service/ollama_efficient_runner.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/model_service/openai_adapter.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/model_service/pdf_processor.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/model_service/test_efficient_runner.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/model_service/test_example.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/model_service/test_integration.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/model_service/test_new_features.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/openai/openai.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/config.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/connectivity.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/data_sources.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/database.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/demo.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/models.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/monitoring.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/scrapers.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/scrapers_california.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/scrapers_corporate_registry.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/scrapers_eu.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/scrapers_free_sources.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/scrapers_third_party.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/scrapers_uk.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/scrapers_us_states.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/seed_database.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/supabase_functions.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/politician_trading/workflow.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/registry/registry.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/repo/repo.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/scheduler/cron_parser.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/scheduler/job.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/scheduler/monitor.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/scheduler/persistence.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/scheduler/scheduler.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/sync/test_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/wakatime/wakatime.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/workflow/workflow.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli_framework.egg-info/dependency_links.txt +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli_framework.egg-info/entry_points.txt +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli_framework.egg-info/requires.txt +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli_framework.egg-info/top_level.txt +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/cli/test_all_commands.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/cli/test_app_logs_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/cli/test_app_redis_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/cli/test_logs_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/cli/test_main_app.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/cli/test_model_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/cli/test_self_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/cli/test_self_cmd_commands.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/cli/test_self_cmd_plugins.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/cli/test_self_cmd_utilities.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/cli/test_workflow_file.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/cli/test_workflow_gcloud.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/cli/test_workflow_registry.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/conftest.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/demo_generate_graph.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/demo_hierarchical_transform.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/e2e/test_complete_workflows.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/e2e/test_model_workflow.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/e2e/test_new_user_workflow.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/e2e/test_update_workflow.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/fixtures/chat_fixtures.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/fixtures/cli_fixtures.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/fixtures/data_fixtures.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/fixtures/db_fixtures.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/fixtures/model_fixtures.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_agent.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_california_scraper.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_chat_client.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_chat_system.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_congress_scraper.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_daemon_client.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_daemon_server.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_e2e_dashboard_lsh_supabase.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_flask_webapp.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_gcloud_services.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_lsh_client.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_lsh_service.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_ml_auth.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_ml_data_pipeline.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_ml_models.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_ml_pipeline.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_module_imports.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_oi_service.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_politician_trading.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_repo_operations.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_scheduler_integration.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_service_registry.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_supabase_live_connection.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_uk_scraper.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_us_states_scraper.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_video_processing.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_wakatime_api.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_webapp_full.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_workflow.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/integration/test_workflow_commands.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/run_tests.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/test_harness.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/test_openai_adapter.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_api_utils.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_async_process_manager.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_auth_modules.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_bug_fixes.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_config.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_custom_commands.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_daemon_api.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_dashboard_components.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_dashboard_functions.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_dashboard_pages.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_dependencies.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_emulator_workflow.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_erd_generation.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_erd_generic.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_erd_imports.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_git_commit_workflow.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_lib_auth.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_lib_files.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_lib_utils.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_logger.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_ml_preprocessing.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_paths.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_pdf_compress.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_prediction_engine.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_regression.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_scheduler.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_scheduler_cron_parser.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_scheduler_job.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_scheduler_monitor.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_scheduler_persistence.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_self_update.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_store_cmd.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_supabase_connection.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_supabase_pagination.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_toml_utils.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_trading_imports.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_ui_rich.py +0 -0
- {mcli_framework-7.9.0 → mcli_framework-7.9.2}/tests/unit/test_uv_compat.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcli-framework
|
|
3
|
-
Version: 7.9.
|
|
3
|
+
Version: 7.9.2
|
|
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,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mcli-framework"
|
|
3
|
-
version = "7.9.
|
|
3
|
+
version = "7.9.2"
|
|
4
4
|
description = "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
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.9"
|
|
@@ -13,9 +13,7 @@ from typing import Any, Callable, Dict, List, Optional, Tuple, Union
|
|
|
13
13
|
import numpy as np
|
|
14
14
|
import pandas as pd
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
from ml.models.recommendation_models import PortfolioRecommendation, StockRecommendationModel
|
|
16
|
+
from mcli.ml.models.recommendation_models import PortfolioRecommendation, StockRecommendationModel
|
|
19
17
|
|
|
20
18
|
logger = logging.getLogger(__name__)
|
|
21
19
|
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Entry point for backtesting CLI."""
|
|
3
|
+
|
|
4
|
+
import click
|
|
5
|
+
|
|
6
|
+
from mcli.lib.ui.styling import error, info, success
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@click.group(name="mcli-backtest", help="Backtesting CLI for MCLI trading strategies")
|
|
10
|
+
def cli():
|
|
11
|
+
"""Main CLI group for backtesting."""
|
|
12
|
+
pass
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@cli.command(name="run", help="Run a backtest on historical data")
|
|
16
|
+
@click.option("--strategy", required=True, help="Strategy to backtest")
|
|
17
|
+
@click.option("--start-date", required=True, help="Start date (YYYY-MM-DD)")
|
|
18
|
+
@click.option("--end-date", required=True, help="End date (YYYY-MM-DD)")
|
|
19
|
+
@click.option("--initial-capital", default=100000, help="Initial capital")
|
|
20
|
+
@click.option("--output", help="Output file for results")
|
|
21
|
+
def run_backtest(strategy: str, start_date: str, end_date: str, initial_capital: float, output: str):
|
|
22
|
+
"""Run a backtest with the specified parameters."""
|
|
23
|
+
info(f"Running backtest for strategy: {strategy}")
|
|
24
|
+
info(f"Period: {start_date} to {end_date}")
|
|
25
|
+
info(f"Initial capital: ${initial_capital:,.2f}")
|
|
26
|
+
|
|
27
|
+
# TODO: Implement actual backtesting logic
|
|
28
|
+
error("Backtesting functionality not yet implemented")
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@cli.command(name="list", help="List available strategies")
|
|
32
|
+
def list_strategies():
|
|
33
|
+
"""List all available trading strategies."""
|
|
34
|
+
info("Available strategies:")
|
|
35
|
+
# TODO: Implement strategy listing
|
|
36
|
+
error("Strategy listing not yet implemented")
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
@cli.command(name="analyze", help="Analyze backtest results")
|
|
40
|
+
@click.argument("results_file")
|
|
41
|
+
def analyze_results(results_file: str):
|
|
42
|
+
"""Analyze backtest results from a file."""
|
|
43
|
+
info(f"Analyzing results from: {results_file}")
|
|
44
|
+
# TODO: Implement results analysis
|
|
45
|
+
error("Results analysis not yet implemented")
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def main():
|
|
49
|
+
"""Main entry point."""
|
|
50
|
+
cli()
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
if __name__ == "__main__":
|
|
54
|
+
main()
|
|
@@ -9,7 +9,7 @@ import pandas as pd
|
|
|
9
9
|
import torch
|
|
10
10
|
import torch.nn as nn
|
|
11
11
|
import torch.nn.functional as F
|
|
12
|
-
from base_models import BaseStockModel, ModelMetrics, ValidationResult
|
|
12
|
+
from mcli.ml.models.base_models import BaseStockModel, ModelMetrics, ValidationResult
|
|
13
13
|
|
|
14
14
|
logger = logging.getLogger(__name__)
|
|
15
15
|
|
|
@@ -10,8 +10,8 @@ import pandas as pd
|
|
|
10
10
|
import torch
|
|
11
11
|
import torch.nn as nn
|
|
12
12
|
import torch.nn.functional as F
|
|
13
|
-
from base_models import BaseStockModel, ModelMetrics, ValidationResult
|
|
14
|
-
from ensemble_models import DeepEnsembleModel, EnsembleConfig, ModelConfig
|
|
13
|
+
from mcli.ml.models.base_models import BaseStockModel, ModelMetrics, ValidationResult
|
|
14
|
+
from mcli.ml.models.ensemble_models import DeepEnsembleModel, EnsembleConfig, ModelConfig
|
|
15
15
|
|
|
16
16
|
logger = logging.getLogger(__name__)
|
|
17
17
|
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Entry point for portfolio optimization CLI."""
|
|
3
|
+
|
|
4
|
+
import click
|
|
5
|
+
|
|
6
|
+
from mcli.lib.ui.styling import error, info, success
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@click.group(name="mcli-optimize", help="Portfolio optimization CLI for MCLI trading system")
|
|
10
|
+
def cli():
|
|
11
|
+
"""Main CLI group for portfolio optimization."""
|
|
12
|
+
pass
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@cli.command(name="portfolio", help="Optimize portfolio allocation")
|
|
16
|
+
@click.option("--symbols", required=True, help="Comma-separated list of symbols")
|
|
17
|
+
@click.option("--start-date", required=True, help="Start date (YYYY-MM-DD)")
|
|
18
|
+
@click.option("--end-date", required=True, help="End date (YYYY-MM-DD)")
|
|
19
|
+
@click.option("--risk-free-rate", default=0.02, help="Risk-free rate")
|
|
20
|
+
@click.option("--output", help="Output file for results")
|
|
21
|
+
def optimize_portfolio(symbols: str, start_date: str, end_date: str, risk_free_rate: float, output: str):
|
|
22
|
+
"""Optimize portfolio allocation for given symbols."""
|
|
23
|
+
symbol_list = [s.strip() for s in symbols.split(",")]
|
|
24
|
+
info(f"Optimizing portfolio for: {', '.join(symbol_list)}")
|
|
25
|
+
info(f"Period: {start_date} to {end_date}")
|
|
26
|
+
info(f"Risk-free rate: {risk_free_rate:.2%}")
|
|
27
|
+
|
|
28
|
+
# TODO: Implement actual optimization
|
|
29
|
+
error("Portfolio optimization not yet implemented")
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
@cli.command(name="efficient-frontier", help="Generate efficient frontier")
|
|
33
|
+
@click.option("--symbols", required=True, help="Comma-separated list of symbols")
|
|
34
|
+
@click.option("--points", default=100, help="Number of points on frontier")
|
|
35
|
+
def efficient_frontier(symbols: str, points: int):
|
|
36
|
+
"""Generate efficient frontier for given symbols."""
|
|
37
|
+
symbol_list = [s.strip() for s in symbols.split(",")]
|
|
38
|
+
info(f"Generating efficient frontier for: {', '.join(symbol_list)}")
|
|
39
|
+
info(f"Points: {points}")
|
|
40
|
+
|
|
41
|
+
# TODO: Implement efficient frontier generation
|
|
42
|
+
error("Efficient frontier generation not yet implemented")
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def main():
|
|
46
|
+
"""Main entry point."""
|
|
47
|
+
cli()
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
if __name__ == "__main__":
|
|
51
|
+
main()
|
|
@@ -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()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcli-framework
|
|
3
|
-
Version: 7.9.
|
|
3
|
+
Version: 7.9.2
|
|
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>
|
|
@@ -94,6 +94,7 @@ src/mcli/ml/auth/models.py
|
|
|
94
94
|
src/mcli/ml/auth/permissions.py
|
|
95
95
|
src/mcli/ml/backtesting/backtest_engine.py
|
|
96
96
|
src/mcli/ml/backtesting/performance_metrics.py
|
|
97
|
+
src/mcli/ml/backtesting/run.py
|
|
97
98
|
src/mcli/ml/cli/main.py
|
|
98
99
|
src/mcli/ml/config/settings.py
|
|
99
100
|
src/mcli/ml/configs/dvc_config.py
|
|
@@ -144,6 +145,7 @@ src/mcli/ml/models/recommendation_models.py
|
|
|
144
145
|
src/mcli/ml/models/test_models.py
|
|
145
146
|
src/mcli/ml/monitoring/drift_detection.py
|
|
146
147
|
src/mcli/ml/monitoring/metrics.py
|
|
148
|
+
src/mcli/ml/optimization/optimize.py
|
|
147
149
|
src/mcli/ml/optimization/portfolio_optimizer.py
|
|
148
150
|
src/mcli/ml/predictions/monte_carlo.py
|
|
149
151
|
src/mcli/ml/predictions/prediction_engine.py
|
|
@@ -153,6 +155,7 @@ src/mcli/ml/preprocessing/ml_pipeline.py
|
|
|
153
155
|
src/mcli/ml/preprocessing/politician_trading_preprocessor.py
|
|
154
156
|
src/mcli/ml/preprocessing/test_preprocessing.py
|
|
155
157
|
src/mcli/ml/scripts/populate_sample_data.py
|
|
158
|
+
src/mcli/ml/serving/serve.py
|
|
156
159
|
src/mcli/ml/tests/test_integration.py
|
|
157
160
|
src/mcli/ml/tests/test_training_dashboard.py
|
|
158
161
|
src/mcli/ml/trading/alpaca_client.py
|
|
@@ -161,6 +164,7 @@ src/mcli/ml/trading/models.py
|
|
|
161
164
|
src/mcli/ml/trading/paper_trading.py
|
|
162
165
|
src/mcli/ml/trading/risk_management.py
|
|
163
166
|
src/mcli/ml/trading/trading_service.py
|
|
167
|
+
src/mcli/ml/training/train.py
|
|
164
168
|
src/mcli/ml/training/train_model.py
|
|
165
169
|
src/mcli/mygroup/test_cmd.py
|
|
166
170
|
src/mcli/public/public.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/backtesting/performance_metrics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/pages/debug_dependencies.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/pages/monte_carlo_predictions.py
RENAMED
|
File without changes
|
{mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/pages/predictions_enhanced.py
RENAMED
|
File without changes
|
{mcli_framework-7.9.0 → mcli_framework-7.9.2}/src/mcli/ml/dashboard/pages/scrapers_and_logs.py
RENAMED
|
File without changes
|
|
File without changes
|