mcli-framework 7.0.6__tar.gz → 7.1.0__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.0.6 → mcli_framework-7.1.0}/PKG-INFO +13 -2
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/pyproject.toml +20 -5
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/app/model_cmd.py +33 -6
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/dashboard/app_integrated.py +77 -34
- mcli_framework-7.1.0/src/mcli/mygroup/test_cmd.py +1 -0
- mcli_framework-7.1.0/src/mcli/self/test_cmd.py +1 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli_framework.egg-info/PKG-INFO +13 -2
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli_framework.egg-info/SOURCES.txt +59 -52
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli_framework.egg-info/requires.txt +12 -1
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.0/tests/cli}/test_model_cmd.py +252 -1
- mcli_framework-7.1.0/tests/cli/test_self_cmd.py +1061 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/tests/conftest.py +14 -0
- mcli_framework-7.1.0/tests/e2e/test_model_workflow.py +145 -0
- mcli_framework-7.1.0/tests/e2e/test_new_user_workflow.py +141 -0
- mcli_framework-7.1.0/tests/e2e/test_update_workflow.py +194 -0
- mcli_framework-7.1.0/tests/fixtures/chat_fixtures.py +84 -0
- mcli_framework-7.1.0/tests/fixtures/cli_fixtures.py +91 -0
- mcli_framework-7.1.0/tests/fixtures/data_fixtures.py +100 -0
- mcli_framework-7.1.0/tests/fixtures/db_fixtures.py +95 -0
- mcli_framework-7.1.0/tests/fixtures/model_fixtures.py +69 -0
- mcli_framework-7.1.0/tests/integration/test_module_imports.py +160 -0
- mcli_framework-7.1.0/tests/unit/test_api_utils.py +116 -0
- mcli_framework-7.1.0/tests/unit/test_config.py +129 -0
- mcli_framework-7.1.0/tests/unit/test_paths.py +197 -0
- mcli_framework-7.0.6/tests/pytest.ini +0 -9
- mcli_framework-7.0.6/tests/simple_integration_test.py +0 -163
- mcli_framework-7.0.6/tests/test_command_discovery.py +0 -295
- mcli_framework-7.0.6/tests/test_enhanced_chat.py +0 -276
- mcli_framework-7.0.6/tests/test_main_app_functions.py +0 -144
- mcli_framework-7.0.6/tests/test_self.py +0 -469
- mcli_framework-7.0.6/tests/test_utility_functions.py +0 -343
- mcli_framework-7.0.6/tests/test_utility_functions_simple.py +0 -107
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/.github/dependabot.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/.github/workflows/build.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/.github/workflows/ci.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/.github/workflows/ml-pipeline.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/.github/workflows/publish-self-hosted.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/.github/workflows/publish.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/.github/workflows/release.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/.github/workflows/security.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/.github/workflows/test.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/LICENSE +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/MANIFEST.in +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/PERFORMANCE_OPTIMIZATIONS.md +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/README.md +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/mcli_rust/Cargo.toml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/mcli_rust/src/command_parser.rs +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/mcli_rust/src/file_watcher.rs +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/mcli_rust/src/lib.rs +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/mcli_rust/src/process_manager.rs +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/mcli_rust/src/tfidf.rs +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/setup.cfg +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/app/chat_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/app/commands_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/app/completion_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/app/completion_helpers.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/app/cron_test_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/app/logs_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/app/main.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/app/model/model.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/app/redis_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/app/video/video.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/app/visual_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/chat/chat.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/chat/command_rag.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/chat/enhanced_chat.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/chat/system_controller.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/chat/system_integration.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/cli.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/config.toml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/api/api.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/api/daemon_client.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/api/daemon_client_local.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/api/daemon_decorator.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/api/mcli_decorators.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/auth/auth.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/auth/aws_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/auth/azure_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/auth/credential_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/auth/gcp_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/auth/key_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/auth/mcli_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/auth/token_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/auth/token_util.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/config/config.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/discovery/__init__.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/discovery/command_discovery.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/erd/erd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/erd/generate_graph.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/files/files.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/fs/fs.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/lib.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/logger/logger.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/paths.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/performance/optimizer.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/performance/rust_bridge.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/performance/uvloop_config.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/pickles/pickles.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/search/cached_vectorizer.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/services/data_pipeline.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/services/lsh_client.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/services/redis_service.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/shell/shell.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/toml/toml.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/ui/styling.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/ui/visual_effects.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/lib/watcher/watcher.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/api/app.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/api/middleware.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/api/routers/admin_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/api/routers/auth_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/api/routers/backtest_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/api/routers/data_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/api/routers/model_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/api/routers/monitoring_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/api/routers/portfolio_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/api/routers/prediction_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/api/routers/trade_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/api/routers/websocket_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/api/schemas.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/auth/auth_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/auth/models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/auth/permissions.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/backtesting/backtest_engine.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/backtesting/performance_metrics.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/cache.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/cli/main.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/config/settings.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/configs/dvc_config.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/configs/mlflow_config.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/configs/mlops_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/dashboard/app.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/dashboard/app_supabase.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/dashboard/app_training.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/dashboard/cli.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/data_ingestion/api_connectors.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/data_ingestion/data_pipeline.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/data_ingestion/stream_processor.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/database/migrations/env.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/database/models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/database/session.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/experimentation/ab_testing.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/features/ensemble_features.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/features/political_features.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/features/recommendation_engine.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/features/stock_features.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/features/test_feature_engineering.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/logging.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/mlops/data_versioning.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/mlops/experiment_tracker.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/mlops/model_serving.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/mlops/pipeline_orchestrator.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/models/base_models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/models/ensemble_models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/models/recommendation_models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/models/test_models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/monitoring/drift_detection.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/monitoring/metrics.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/optimization/portfolio_optimizer.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/preprocessing/data_cleaners.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/preprocessing/feature_extractors.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/preprocessing/ml_pipeline.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/preprocessing/politician_trading_preprocessor.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/preprocessing/test_preprocessing.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/scripts/populate_sample_data.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/tasks.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/tests/test_integration.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/ml/tests/test_training_dashboard.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/public/oi/oi.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/public/public.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/self/self_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/daemon/api_daemon.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/daemon/async_command_database.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/daemon/async_process_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/daemon/client.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/daemon/commands.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/daemon/daemon.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/daemon/daemon_api.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/daemon/enhanced_daemon.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/daemon/process_cli.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/daemon/process_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/daemon/test_daemon.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/dashboard/dashboard_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/docker/docker.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/file/file.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/gcloud/config.toml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/gcloud/gcloud.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/git_commit/ai_service.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/git_commit/commands.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/lsh_integration.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/model_service/client.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/model_service/download_and_run_efficient_models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/model_service/lightweight_embedder.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/model_service/lightweight_model_server.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/model_service/lightweight_test.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/model_service/model_service.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/model_service/ollama_efficient_runner.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/model_service/pdf_processor.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/model_service/test_efficient_runner.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/model_service/test_example.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/model_service/test_integration.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/model_service/test_new_features.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/openai/openai.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/politician_trading/commands.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/politician_trading/config.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/politician_trading/connectivity.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/politician_trading/data_sources.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/politician_trading/database.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/politician_trading/demo.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/politician_trading/models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/politician_trading/monitoring.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/politician_trading/scrapers.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/politician_trading/scrapers_california.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/politician_trading/scrapers_eu.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/politician_trading/scrapers_uk.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/politician_trading/scrapers_us_states.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/politician_trading/supabase_functions.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/politician_trading/workflow.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/registry/registry.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/repo/repo.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/scheduler/commands.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/scheduler/cron_parser.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/scheduler/job.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/scheduler/monitor.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/scheduler/persistence.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/scheduler/scheduler.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/sync/sync_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/sync/test_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/videos/videos.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/wakatime/wakatime.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli/workflow/workflow.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli_framework.egg-info/dependency_links.txt +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli_framework.egg-info/entry_points.txt +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/src/mcli_framework.egg-info/top_level.txt +0 -0
- /mcli_framework-7.0.6/tests/test_all_cli.py → /mcli_framework-7.1.0/tests/cli/test_all_commands.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.0/tests/cli}/test_chat_cmd.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.0/tests/cli}/test_main_app.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/tests/demo_generate_graph.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/tests/demo_hierarchical_transform.py +0 -0
- /mcli_framework-7.0.6/tests/end_to_end_integration_test.py → /mcli_framework-7.1.0/tests/e2e/test_complete_workflows.py +0 -0
- /mcli_framework-7.0.6/tests/test_agent_functionality.py → /mcli_framework-7.1.0/tests/integration/test_agent.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.0/tests/integration}/test_california_scraper.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.0/tests/integration}/test_chat_client.py +0 -0
- /mcli_framework-7.0.6/tests/test_chat_system_control.py → /mcli_framework-7.1.0/tests/integration/test_chat_system.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.0/tests/integration}/test_congress_scraper.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.0/tests/integration}/test_daemon_client.py +0 -0
- /mcli_framework-7.0.6/tests/test_daemon.py → /mcli_framework-7.1.0/tests/integration/test_daemon_server.py +0 -0
- /mcli_framework-7.0.6/tests/test_webapp.py → /mcli_framework-7.1.0/tests/integration/test_flask_webapp.py +0 -0
- /mcli_framework-7.0.6/tests/test_gcloud.py → /mcli_framework-7.1.0/tests/integration/test_gcloud_services.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.0/tests/integration}/test_lsh_client.py +0 -0
- /mcli_framework-7.0.6/tests/test_lsh_integration.py → /mcli_framework-7.1.0/tests/integration/test_lsh_service.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.0/tests/integration}/test_ml_auth.py +0 -0
- /mcli_framework-7.0.6/tests/test_data_pipeline.py → /mcli_framework-7.1.0/tests/integration/test_ml_data_pipeline.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.0/tests/integration}/test_ml_models.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.0/tests/integration}/test_ml_pipeline.py +0 -0
- /mcli_framework-7.0.6/tests/test_oi.py → /mcli_framework-7.1.0/tests/integration/test_oi_service.py +0 -0
- /mcli_framework-7.0.6/tests/test_politician_trading_integration.py → /mcli_framework-7.1.0/tests/integration/test_politician_trading.py +0 -0
- /mcli_framework-7.0.6/tests/test_repo.py → /mcli_framework-7.1.0/tests/integration/test_repo_operations.py +0 -0
- /mcli_framework-7.0.6/tests/test_registry.py → /mcli_framework-7.1.0/tests/integration/test_service_registry.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.0/tests/integration}/test_uk_scraper.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.0/tests/integration}/test_us_states_scraper.py +0 -0
- /mcli_framework-7.0.6/tests/test_videos.py → /mcli_framework-7.1.0/tests/integration/test_video_processing.py +0 -0
- /mcli_framework-7.0.6/tests/test_wakatime.py → /mcli_framework-7.1.0/tests/integration/test_wakatime_api.py +0 -0
- /mcli_framework-7.0.6/tests/test_webapp_comprehensive.py → /mcli_framework-7.1.0/tests/integration/test_webapp_full.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.0/tests/integration}/test_workflow.py +0 -0
- /mcli_framework-7.0.6/tests/test_workflow_integration.py → /mcli_framework-7.1.0/tests/integration/test_workflow_commands.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/tests/run_tests.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.0}/tests/test_harness.py +0 -0
- /mcli_framework-7.0.6/tests/test_fix.py → /mcli_framework-7.1.0/tests/unit/test_bug_fixes.py +0 -0
- /mcli_framework-7.0.6/tests/test_optional_dependencies.py → /mcli_framework-7.1.0/tests/unit/test_dependencies.py +0 -0
- /mcli_framework-7.0.6/tests/test_erd.py → /mcli_framework-7.1.0/tests/unit/test_erd_generation.py +0 -0
- /mcli_framework-7.0.6/tests/test_generic_erd.py → /mcli_framework-7.1.0/tests/unit/test_erd_generic.py +0 -0
- /mcli_framework-7.0.6/tests/test_erd_import.py → /mcli_framework-7.1.0/tests/unit/test_erd_imports.py +0 -0
- /mcli_framework-7.0.6/tests/test_generate_graph.py → /mcli_framework-7.1.0/tests/unit/test_graph_generation.py +0 -0
- /mcli_framework-7.0.6/tests/test_auth.py → /mcli_framework-7.1.0/tests/unit/test_lib_auth.py +0 -0
- /mcli_framework-7.0.6/tests/test_file.py → /mcli_framework-7.1.0/tests/unit/test_lib_files.py +0 -0
- /mcli_framework-7.0.6/tests/test_lib.py → /mcli_framework-7.1.0/tests/unit/test_lib_utils.py +0 -0
- /mcli_framework-7.0.6/tests/test_preprocessing_simple.py → /mcli_framework-7.1.0/tests/unit/test_ml_preprocessing.py +0 -0
- /mcli_framework-7.0.6/tests/test_fixed_issues.py → /mcli_framework-7.1.0/tests/unit/test_regression.py +0 -0
- /mcli_framework-7.0.6/tests/test_rich.py → /mcli_framework-7.1.0/tests/unit/test_ui_rich.py +0 -0
- /mcli_framework-7.0.6/tests/test_uv_compatibility.py → /mcli_framework-7.1.0/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.0
|
|
3
|
+
Version: 7.1.0
|
|
4
4
|
Summary: 🚀 High-performance CLI framework with Rust extensions, AI chat, and stunning visuals
|
|
5
5
|
Author-email: Luis Fernandez de la Vara <luis@lefv.io>
|
|
6
6
|
Maintainer-email: Luis Fernandez de la Vara <luis@lefv.io>
|
|
@@ -136,13 +136,24 @@ Requires-Dist: pytest>=8.4.1; extra == "dev"
|
|
|
136
136
|
Requires-Dist: pytest-cov<5.0.0,>=4.1.0; extra == "dev"
|
|
137
137
|
Requires-Dist: pytest-mock>=3.14.1; extra == "dev"
|
|
138
138
|
Requires-Dist: pytest-asyncio>=1.1.0; extra == "dev"
|
|
139
|
+
Requires-Dist: pytest-benchmark>=4.0.0; extra == "dev"
|
|
140
|
+
Requires-Dist: pytest-timeout>=2.2.0; extra == "dev"
|
|
141
|
+
Requires-Dist: pytest-xdist>=3.5.0; extra == "dev"
|
|
142
|
+
Requires-Dist: hypothesis>=6.92.0; extra == "dev"
|
|
143
|
+
Requires-Dist: faker>=22.0.0; extra == "dev"
|
|
144
|
+
Requires-Dist: responses>=0.24.0; extra == "dev"
|
|
145
|
+
Requires-Dist: freezegun>=1.4.0; extra == "dev"
|
|
146
|
+
Requires-Dist: pytest-html>=4.1.0; extra == "dev"
|
|
147
|
+
Requires-Dist: pytest-json-report>=1.5.0; extra == "dev"
|
|
139
148
|
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
140
149
|
Requires-Dist: isort<6.0.0,>=5.12.0; extra == "dev"
|
|
141
150
|
Requires-Dist: mypy<2.0.0,>=1.7.1; extra == "dev"
|
|
151
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
152
|
+
Requires-Dist: pre-commit>=3.6.0; extra == "dev"
|
|
142
153
|
Requires-Dist: build>=1.2.2.post1; extra == "dev"
|
|
143
154
|
Requires-Dist: maturin>=1.9.3; extra == "dev"
|
|
155
|
+
Requires-Dist: twine>=4.0.0; extra == "dev"
|
|
144
156
|
Provides-Extra: all
|
|
145
|
-
Requires-Dist: mcli[async-extras,chat,dashboard,database,documents,gpu,ml,monitoring,streaming,video,viz,web]; extra == "all"
|
|
146
157
|
Dynamic: license-file
|
|
147
158
|
|
|
148
159
|
# MCLI
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mcli-framework"
|
|
3
|
-
version = "7.0
|
|
3
|
+
version = "7.1.0"
|
|
4
4
|
description = "🚀 High-performance CLI framework with Rust extensions, AI chat, and stunning visuals"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.9"
|
|
@@ -177,21 +177,36 @@ web = []
|
|
|
177
177
|
|
|
178
178
|
# Development tools
|
|
179
179
|
dev = [
|
|
180
|
+
# Testing framework
|
|
180
181
|
"pytest>=8.4.1",
|
|
181
182
|
"pytest-cov>=4.1.0,<5.0.0",
|
|
182
183
|
"pytest-mock>=3.14.1",
|
|
183
184
|
"pytest-asyncio>=1.1.0",
|
|
185
|
+
"pytest-benchmark>=4.0.0", # Performance testing
|
|
186
|
+
"pytest-timeout>=2.2.0", # Timeout control
|
|
187
|
+
"pytest-xdist>=3.5.0", # Parallel testing
|
|
188
|
+
"hypothesis>=6.92.0", # Property-based testing
|
|
189
|
+
"faker>=22.0.0", # Test data generation
|
|
190
|
+
"responses>=0.24.0", # HTTP mocking
|
|
191
|
+
"freezegun>=1.4.0", # Time mocking
|
|
192
|
+
"pytest-html>=4.1.0", # HTML reports
|
|
193
|
+
"pytest-json-report>=1.5.0", # JSON reports
|
|
194
|
+
|
|
195
|
+
# Code quality
|
|
184
196
|
"black>=23.0.0",
|
|
185
197
|
"isort>=5.12.0,<6.0.0",
|
|
186
198
|
"mypy>=1.7.1,<2.0.0",
|
|
199
|
+
"ruff>=0.1.0", # Fast linter
|
|
200
|
+
"pre-commit>=3.6.0", # Git hooks
|
|
201
|
+
|
|
202
|
+
# Build tools
|
|
187
203
|
"build>=1.2.2.post1",
|
|
188
204
|
"maturin>=1.9.3",
|
|
205
|
+
"twine>=4.0.0", # Package upload
|
|
189
206
|
]
|
|
190
207
|
|
|
191
|
-
# All optional features
|
|
192
|
-
all = [
|
|
193
|
-
"mcli[chat,async-extras,video,documents,viz,database,ml,gpu,monitoring,streaming,dashboard,web]",
|
|
194
|
-
]
|
|
208
|
+
# All optional features (all features now included by default)
|
|
209
|
+
all = []
|
|
195
210
|
|
|
196
211
|
[tool.black]
|
|
197
212
|
line-length = 100
|
|
@@ -100,15 +100,24 @@ def download(model_name: str):
|
|
|
100
100
|
|
|
101
101
|
@model.command()
|
|
102
102
|
@click.option("--model", "-m", help="Specific model to use")
|
|
103
|
-
@click.option("--port", "-p", default=
|
|
103
|
+
@click.option("--port", "-p", default=None, help="Port to run server on (default: from config or 51234)")
|
|
104
104
|
@click.option(
|
|
105
105
|
"--auto-download",
|
|
106
106
|
is_flag=True,
|
|
107
107
|
default=True,
|
|
108
108
|
help="Automatically download model if not available",
|
|
109
109
|
)
|
|
110
|
-
def start(model: Optional[str], port: int, auto_download: bool):
|
|
110
|
+
def start(model: Optional[str], port: Optional[int], auto_download: bool):
|
|
111
111
|
"""Start the lightweight model server."""
|
|
112
|
+
# Load port from config if not specified
|
|
113
|
+
if port is None:
|
|
114
|
+
try:
|
|
115
|
+
from mcli.lib.config.config import load_config
|
|
116
|
+
config = load_config()
|
|
117
|
+
port = config.get("model", {}).get("server_port", 51234)
|
|
118
|
+
except Exception:
|
|
119
|
+
port = 51234 # Default ephemeral port
|
|
120
|
+
|
|
112
121
|
server = LightweightModelServer(port=port)
|
|
113
122
|
|
|
114
123
|
# Determine which model to use
|
|
@@ -192,9 +201,18 @@ def recommend():
|
|
|
192
201
|
|
|
193
202
|
|
|
194
203
|
@model.command()
|
|
195
|
-
@click.option("--port", "-p", default=
|
|
196
|
-
def status(port: int):
|
|
204
|
+
@click.option("--port", "-p", default=None, help="Port where server is running (default: from config or 51234)")
|
|
205
|
+
def status(port: Optional[int]):
|
|
197
206
|
"""Check status of the lightweight model server."""
|
|
207
|
+
# Load port from config if not specified
|
|
208
|
+
if port is None:
|
|
209
|
+
try:
|
|
210
|
+
from mcli.lib.config.config import load_config
|
|
211
|
+
config = load_config()
|
|
212
|
+
port = config.get("model", {}).get("server_port", 51234)
|
|
213
|
+
except Exception:
|
|
214
|
+
port = 51234 # Default ephemeral port
|
|
215
|
+
|
|
198
216
|
import requests
|
|
199
217
|
|
|
200
218
|
try:
|
|
@@ -225,9 +243,18 @@ def status(port: int):
|
|
|
225
243
|
|
|
226
244
|
|
|
227
245
|
@model.command()
|
|
228
|
-
@click.option("--port", "-p", default=
|
|
229
|
-
def stop(port: int):
|
|
246
|
+
@click.option("--port", "-p", default=None, help="Port where server is running (default: from config or 51234)")
|
|
247
|
+
def stop(port: Optional[int]):
|
|
230
248
|
"""Stop the lightweight model server."""
|
|
249
|
+
# Load port from config if not specified
|
|
250
|
+
if port is None:
|
|
251
|
+
try:
|
|
252
|
+
from mcli.lib.config.config import load_config
|
|
253
|
+
config = load_config()
|
|
254
|
+
port = config.get("model", {}).get("server_port", 51234)
|
|
255
|
+
except Exception:
|
|
256
|
+
port = 51234 # Default ephemeral port
|
|
257
|
+
|
|
231
258
|
import requests
|
|
232
259
|
import psutil
|
|
233
260
|
|
|
@@ -15,11 +15,20 @@ import json
|
|
|
15
15
|
from pathlib import Path
|
|
16
16
|
import subprocess
|
|
17
17
|
import pickle
|
|
18
|
+
from dotenv import load_dotenv
|
|
19
|
+
|
|
20
|
+
# Load environment variables from .env file
|
|
21
|
+
load_dotenv()
|
|
18
22
|
|
|
19
23
|
# Add ML pipeline imports
|
|
20
|
-
|
|
21
|
-
from mcli.ml.
|
|
22
|
-
from mcli.ml.models import get_model_by_id
|
|
24
|
+
try:
|
|
25
|
+
from mcli.ml.preprocessing import PoliticianTradingPreprocessor, MLDataPipeline
|
|
26
|
+
from mcli.ml.models import get_model_by_id
|
|
27
|
+
HAS_ML_PIPELINE = True
|
|
28
|
+
except ImportError:
|
|
29
|
+
HAS_ML_PIPELINE = False
|
|
30
|
+
PoliticianTradingPreprocessor = None
|
|
31
|
+
MLDataPipeline = None
|
|
23
32
|
|
|
24
33
|
# Page config
|
|
25
34
|
st.set_page_config(
|
|
@@ -72,13 +81,17 @@ def get_supabase_client() -> Client:
|
|
|
72
81
|
@st.cache_resource
|
|
73
82
|
def get_preprocessor():
|
|
74
83
|
"""Get data preprocessor instance"""
|
|
75
|
-
|
|
84
|
+
if HAS_ML_PIPELINE and PoliticianTradingPreprocessor:
|
|
85
|
+
return PoliticianTradingPreprocessor()
|
|
86
|
+
return None
|
|
76
87
|
|
|
77
88
|
|
|
78
89
|
@st.cache_resource
|
|
79
|
-
def
|
|
80
|
-
"""Get
|
|
81
|
-
|
|
90
|
+
def get_ml_pipeline():
|
|
91
|
+
"""Get ML data pipeline instance"""
|
|
92
|
+
if HAS_ML_PIPELINE and MLDataPipeline:
|
|
93
|
+
return MLDataPipeline()
|
|
94
|
+
return None
|
|
82
95
|
|
|
83
96
|
|
|
84
97
|
def check_lsh_daemon():
|
|
@@ -128,11 +141,18 @@ def run_ml_pipeline(df_disclosures):
|
|
|
128
141
|
try:
|
|
129
142
|
# 1. Preprocess data
|
|
130
143
|
preprocessor = get_preprocessor()
|
|
131
|
-
|
|
144
|
+
if preprocessor:
|
|
145
|
+
processed_data = preprocessor.preprocess(df_disclosures)
|
|
146
|
+
else:
|
|
147
|
+
# Use raw data if preprocessor not available
|
|
148
|
+
processed_data = df_disclosures
|
|
132
149
|
|
|
133
|
-
# 2. Feature engineering
|
|
134
|
-
|
|
135
|
-
|
|
150
|
+
# 2. Feature engineering (using ML pipeline if available)
|
|
151
|
+
ml_pipeline = get_ml_pipeline()
|
|
152
|
+
if ml_pipeline:
|
|
153
|
+
features = ml_pipeline.transform(processed_data)
|
|
154
|
+
else:
|
|
155
|
+
features = processed_data
|
|
136
156
|
|
|
137
157
|
# 3. Generate predictions (mock for now, replace with actual model)
|
|
138
158
|
predictions = pd.DataFrame({
|
|
@@ -219,15 +239,18 @@ def main():
|
|
|
219
239
|
st.sidebar.title("Navigation")
|
|
220
240
|
page = st.sidebar.selectbox(
|
|
221
241
|
"Choose a page",
|
|
222
|
-
["Pipeline Overview", "ML Processing", "Model Performance", "Predictions", "LSH Jobs", "System Health"]
|
|
242
|
+
["Pipeline Overview", "ML Processing", "Model Performance", "Predictions", "LSH Jobs", "System Health"],
|
|
243
|
+
index=0 # Default to Pipeline Overview
|
|
223
244
|
)
|
|
224
245
|
|
|
225
|
-
# Auto-refresh toggle
|
|
226
|
-
auto_refresh = st.sidebar.checkbox("Auto-refresh (30s)", value=
|
|
246
|
+
# Auto-refresh toggle (default off to prevent blocking)
|
|
247
|
+
auto_refresh = st.sidebar.checkbox("Auto-refresh (30s)", value=False)
|
|
227
248
|
if auto_refresh:
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
249
|
+
try:
|
|
250
|
+
from streamlit_autorefresh import st_autorefresh
|
|
251
|
+
st_autorefresh(interval=30000, key="data_refresh")
|
|
252
|
+
except ImportError:
|
|
253
|
+
st.sidebar.warning("⚠️ Auto-refresh requires streamlit-autorefresh package")
|
|
231
254
|
|
|
232
255
|
# Manual refresh button
|
|
233
256
|
if st.sidebar.button("🔄 Refresh Now"):
|
|
@@ -244,25 +267,42 @@ def main():
|
|
|
244
267
|
else:
|
|
245
268
|
st.sidebar.error("❌ Pipeline failed")
|
|
246
269
|
|
|
247
|
-
# Main content
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
270
|
+
# Main content with error handling
|
|
271
|
+
try:
|
|
272
|
+
if page == "Pipeline Overview":
|
|
273
|
+
show_pipeline_overview()
|
|
274
|
+
elif page == "ML Processing":
|
|
275
|
+
show_ml_processing()
|
|
276
|
+
elif page == "Model Performance":
|
|
277
|
+
show_model_performance()
|
|
278
|
+
elif page == "Predictions":
|
|
279
|
+
show_predictions()
|
|
280
|
+
elif page == "LSH Jobs":
|
|
281
|
+
show_lsh_jobs()
|
|
282
|
+
elif page == "System Health":
|
|
283
|
+
show_system_health()
|
|
284
|
+
except Exception as e:
|
|
285
|
+
st.error(f"❌ Error loading page '{page}': {e}")
|
|
286
|
+
import traceback
|
|
287
|
+
with st.expander("See error details"):
|
|
288
|
+
st.code(traceback.format_exc())
|
|
260
289
|
|
|
261
290
|
|
|
262
291
|
def show_pipeline_overview():
|
|
263
292
|
"""Show ML pipeline overview"""
|
|
264
293
|
st.header("ML Pipeline Overview")
|
|
265
294
|
|
|
295
|
+
# Check Supabase connection
|
|
296
|
+
if not get_supabase_client():
|
|
297
|
+
st.warning("⚠️ **Supabase not configured**")
|
|
298
|
+
st.info("""
|
|
299
|
+
To connect to Supabase, set these environment variables:
|
|
300
|
+
- `SUPABASE_URL`: Your Supabase project URL
|
|
301
|
+
- `SUPABASE_KEY`: Your Supabase API key
|
|
302
|
+
|
|
303
|
+
The dashboard will show demo data until configured.
|
|
304
|
+
""")
|
|
305
|
+
|
|
266
306
|
# Get data
|
|
267
307
|
politicians = get_politicians_data()
|
|
268
308
|
disclosures = get_disclosures_data()
|
|
@@ -283,17 +323,20 @@ def show_pipeline_overview():
|
|
|
283
323
|
if not disclosures.empty:
|
|
284
324
|
preprocessor = get_preprocessor()
|
|
285
325
|
try:
|
|
286
|
-
|
|
287
|
-
|
|
326
|
+
if preprocessor:
|
|
327
|
+
processed = preprocessor.preprocess(disclosures.head(100))
|
|
328
|
+
feature_count = len(processed.columns)
|
|
329
|
+
else:
|
|
330
|
+
feature_count = len(disclosures.columns)
|
|
288
331
|
except:
|
|
289
|
-
feature_count = 0
|
|
332
|
+
feature_count = len(disclosures.columns) if not disclosures.empty else 0
|
|
290
333
|
else:
|
|
291
334
|
feature_count = 0
|
|
292
335
|
|
|
293
336
|
st.metric(
|
|
294
337
|
label="Features Extracted",
|
|
295
338
|
value=feature_count,
|
|
296
|
-
delta="After preprocessing"
|
|
339
|
+
delta="Raw data" if not preprocessor else "After preprocessing"
|
|
297
340
|
)
|
|
298
341
|
|
|
299
342
|
with col3:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
def test(): pass
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
def test(): pass
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcli-framework
|
|
3
|
-
Version: 7.0
|
|
3
|
+
Version: 7.1.0
|
|
4
4
|
Summary: 🚀 High-performance CLI framework with Rust extensions, AI chat, and stunning visuals
|
|
5
5
|
Author-email: Luis Fernandez de la Vara <luis@lefv.io>
|
|
6
6
|
Maintainer-email: Luis Fernandez de la Vara <luis@lefv.io>
|
|
@@ -136,13 +136,24 @@ Requires-Dist: pytest>=8.4.1; extra == "dev"
|
|
|
136
136
|
Requires-Dist: pytest-cov<5.0.0,>=4.1.0; extra == "dev"
|
|
137
137
|
Requires-Dist: pytest-mock>=3.14.1; extra == "dev"
|
|
138
138
|
Requires-Dist: pytest-asyncio>=1.1.0; extra == "dev"
|
|
139
|
+
Requires-Dist: pytest-benchmark>=4.0.0; extra == "dev"
|
|
140
|
+
Requires-Dist: pytest-timeout>=2.2.0; extra == "dev"
|
|
141
|
+
Requires-Dist: pytest-xdist>=3.5.0; extra == "dev"
|
|
142
|
+
Requires-Dist: hypothesis>=6.92.0; extra == "dev"
|
|
143
|
+
Requires-Dist: faker>=22.0.0; extra == "dev"
|
|
144
|
+
Requires-Dist: responses>=0.24.0; extra == "dev"
|
|
145
|
+
Requires-Dist: freezegun>=1.4.0; extra == "dev"
|
|
146
|
+
Requires-Dist: pytest-html>=4.1.0; extra == "dev"
|
|
147
|
+
Requires-Dist: pytest-json-report>=1.5.0; extra == "dev"
|
|
139
148
|
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
140
149
|
Requires-Dist: isort<6.0.0,>=5.12.0; extra == "dev"
|
|
141
150
|
Requires-Dist: mypy<2.0.0,>=1.7.1; extra == "dev"
|
|
151
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
152
|
+
Requires-Dist: pre-commit>=3.6.0; extra == "dev"
|
|
142
153
|
Requires-Dist: build>=1.2.2.post1; extra == "dev"
|
|
143
154
|
Requires-Dist: maturin>=1.9.3; extra == "dev"
|
|
155
|
+
Requires-Dist: twine>=4.0.0; extra == "dev"
|
|
144
156
|
Provides-Extra: all
|
|
145
|
-
Requires-Dist: mcli[async-extras,chat,dashboard,database,documents,gpu,ml,monitoring,streaming,video,viz,web]; extra == "all"
|
|
146
157
|
Dynamic: license-file
|
|
147
158
|
|
|
148
159
|
# MCLI
|
|
@@ -137,9 +137,11 @@ src/mcli/ml/preprocessing/test_preprocessing.py
|
|
|
137
137
|
src/mcli/ml/scripts/populate_sample_data.py
|
|
138
138
|
src/mcli/ml/tests/test_integration.py
|
|
139
139
|
src/mcli/ml/tests/test_training_dashboard.py
|
|
140
|
+
src/mcli/mygroup/test_cmd.py
|
|
140
141
|
src/mcli/public/public.py
|
|
141
142
|
src/mcli/public/oi/oi.py
|
|
142
143
|
src/mcli/self/self_cmd.py
|
|
144
|
+
src/mcli/self/test_cmd.py
|
|
143
145
|
src/mcli/workflow/lsh_integration.py
|
|
144
146
|
src/mcli/workflow/workflow.py
|
|
145
147
|
src/mcli/workflow/daemon/api_daemon.py
|
|
@@ -209,57 +211,62 @@ src/mcli_framework.egg-info/top_level.txt
|
|
|
209
211
|
tests/conftest.py
|
|
210
212
|
tests/demo_generate_graph.py
|
|
211
213
|
tests/demo_hierarchical_transform.py
|
|
212
|
-
tests/end_to_end_integration_test.py
|
|
213
|
-
tests/pytest.ini
|
|
214
214
|
tests/run_tests.py
|
|
215
|
-
tests/simple_integration_test.py
|
|
216
|
-
tests/test_agent_functionality.py
|
|
217
|
-
tests/test_all_cli.py
|
|
218
|
-
tests/test_auth.py
|
|
219
|
-
tests/test_california_scraper.py
|
|
220
|
-
tests/test_chat_client.py
|
|
221
|
-
tests/test_chat_cmd.py
|
|
222
|
-
tests/test_chat_system_control.py
|
|
223
|
-
tests/test_command_discovery.py
|
|
224
|
-
tests/test_congress_scraper.py
|
|
225
|
-
tests/test_daemon.py
|
|
226
|
-
tests/test_daemon_client.py
|
|
227
|
-
tests/test_data_pipeline.py
|
|
228
|
-
tests/test_enhanced_chat.py
|
|
229
|
-
tests/test_erd.py
|
|
230
|
-
tests/test_erd_import.py
|
|
231
|
-
tests/test_file.py
|
|
232
|
-
tests/test_fix.py
|
|
233
|
-
tests/test_fixed_issues.py
|
|
234
|
-
tests/test_gcloud.py
|
|
235
|
-
tests/test_generate_graph.py
|
|
236
|
-
tests/test_generic_erd.py
|
|
237
215
|
tests/test_harness.py
|
|
238
|
-
tests/
|
|
239
|
-
tests/
|
|
240
|
-
tests/
|
|
241
|
-
tests/
|
|
242
|
-
tests/
|
|
243
|
-
tests/
|
|
244
|
-
tests/
|
|
245
|
-
tests/
|
|
246
|
-
tests/
|
|
247
|
-
tests/
|
|
248
|
-
tests/
|
|
249
|
-
tests/
|
|
250
|
-
tests/
|
|
251
|
-
tests/
|
|
252
|
-
tests/
|
|
253
|
-
tests/
|
|
254
|
-
tests/
|
|
255
|
-
tests/
|
|
256
|
-
tests/
|
|
257
|
-
tests/
|
|
258
|
-
tests/
|
|
259
|
-
tests/
|
|
260
|
-
tests/
|
|
261
|
-
tests/
|
|
262
|
-
tests/
|
|
263
|
-
tests/
|
|
264
|
-
tests/
|
|
265
|
-
tests/
|
|
216
|
+
tests/cli/test_all_commands.py
|
|
217
|
+
tests/cli/test_chat_cmd.py
|
|
218
|
+
tests/cli/test_main_app.py
|
|
219
|
+
tests/cli/test_model_cmd.py
|
|
220
|
+
tests/cli/test_self_cmd.py
|
|
221
|
+
tests/e2e/test_complete_workflows.py
|
|
222
|
+
tests/e2e/test_model_workflow.py
|
|
223
|
+
tests/e2e/test_new_user_workflow.py
|
|
224
|
+
tests/e2e/test_update_workflow.py
|
|
225
|
+
tests/fixtures/chat_fixtures.py
|
|
226
|
+
tests/fixtures/cli_fixtures.py
|
|
227
|
+
tests/fixtures/data_fixtures.py
|
|
228
|
+
tests/fixtures/db_fixtures.py
|
|
229
|
+
tests/fixtures/model_fixtures.py
|
|
230
|
+
tests/integration/test_agent.py
|
|
231
|
+
tests/integration/test_california_scraper.py
|
|
232
|
+
tests/integration/test_chat_client.py
|
|
233
|
+
tests/integration/test_chat_system.py
|
|
234
|
+
tests/integration/test_congress_scraper.py
|
|
235
|
+
tests/integration/test_daemon_client.py
|
|
236
|
+
tests/integration/test_daemon_server.py
|
|
237
|
+
tests/integration/test_flask_webapp.py
|
|
238
|
+
tests/integration/test_gcloud_services.py
|
|
239
|
+
tests/integration/test_lsh_client.py
|
|
240
|
+
tests/integration/test_lsh_service.py
|
|
241
|
+
tests/integration/test_ml_auth.py
|
|
242
|
+
tests/integration/test_ml_data_pipeline.py
|
|
243
|
+
tests/integration/test_ml_models.py
|
|
244
|
+
tests/integration/test_ml_pipeline.py
|
|
245
|
+
tests/integration/test_module_imports.py
|
|
246
|
+
tests/integration/test_oi_service.py
|
|
247
|
+
tests/integration/test_politician_trading.py
|
|
248
|
+
tests/integration/test_repo_operations.py
|
|
249
|
+
tests/integration/test_service_registry.py
|
|
250
|
+
tests/integration/test_uk_scraper.py
|
|
251
|
+
tests/integration/test_us_states_scraper.py
|
|
252
|
+
tests/integration/test_video_processing.py
|
|
253
|
+
tests/integration/test_wakatime_api.py
|
|
254
|
+
tests/integration/test_webapp_full.py
|
|
255
|
+
tests/integration/test_workflow.py
|
|
256
|
+
tests/integration/test_workflow_commands.py
|
|
257
|
+
tests/unit/test_api_utils.py
|
|
258
|
+
tests/unit/test_bug_fixes.py
|
|
259
|
+
tests/unit/test_config.py
|
|
260
|
+
tests/unit/test_dependencies.py
|
|
261
|
+
tests/unit/test_erd_generation.py
|
|
262
|
+
tests/unit/test_erd_generic.py
|
|
263
|
+
tests/unit/test_erd_imports.py
|
|
264
|
+
tests/unit/test_graph_generation.py
|
|
265
|
+
tests/unit/test_lib_auth.py
|
|
266
|
+
tests/unit/test_lib_files.py
|
|
267
|
+
tests/unit/test_lib_utils.py
|
|
268
|
+
tests/unit/test_ml_preprocessing.py
|
|
269
|
+
tests/unit/test_paths.py
|
|
270
|
+
tests/unit/test_regression.py
|
|
271
|
+
tests/unit/test_ui_rich.py
|
|
272
|
+
tests/unit/test_uv_compat.py
|
|
@@ -80,7 +80,6 @@ typer>=0.9.0
|
|
|
80
80
|
flask<3.0.0,>=2.3.0
|
|
81
81
|
|
|
82
82
|
[all]
|
|
83
|
-
mcli[async-extras,chat,dashboard,database,documents,gpu,ml,monitoring,streaming,video,viz,web]
|
|
84
83
|
|
|
85
84
|
[async-extras]
|
|
86
85
|
|
|
@@ -95,11 +94,23 @@ pytest>=8.4.1
|
|
|
95
94
|
pytest-cov<5.0.0,>=4.1.0
|
|
96
95
|
pytest-mock>=3.14.1
|
|
97
96
|
pytest-asyncio>=1.1.0
|
|
97
|
+
pytest-benchmark>=4.0.0
|
|
98
|
+
pytest-timeout>=2.2.0
|
|
99
|
+
pytest-xdist>=3.5.0
|
|
100
|
+
hypothesis>=6.92.0
|
|
101
|
+
faker>=22.0.0
|
|
102
|
+
responses>=0.24.0
|
|
103
|
+
freezegun>=1.4.0
|
|
104
|
+
pytest-html>=4.1.0
|
|
105
|
+
pytest-json-report>=1.5.0
|
|
98
106
|
black>=23.0.0
|
|
99
107
|
isort<6.0.0,>=5.12.0
|
|
100
108
|
mypy<2.0.0,>=1.7.1
|
|
109
|
+
ruff>=0.1.0
|
|
110
|
+
pre-commit>=3.6.0
|
|
101
111
|
build>=1.2.2.post1
|
|
102
112
|
maturin>=1.9.3
|
|
113
|
+
twine>=4.0.0
|
|
103
114
|
|
|
104
115
|
[documents]
|
|
105
116
|
|