mcli-framework 7.8.1__py3-none-any.whl → 7.8.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mcli-framework might be problematic. Click here for more details.

Files changed (75) hide show
  1. mcli/ml/dashboard/app_supabase.py +1 -0
  2. mcli/self/self_cmd.py +8 -0
  3. mcli/self/store_cmd.py +422 -0
  4. mcli/workflow/dashboard/dashboard_cmd.py +179 -0
  5. mcli_framework-7.8.3.dist-info/METADATA +615 -0
  6. {mcli_framework-7.8.1.dist-info → mcli_framework-7.8.3.dist-info}/RECORD +10 -72
  7. mcli/__init__.py +0 -160
  8. mcli/__main__.py +0 -14
  9. mcli/app/__init__.py +0 -23
  10. mcli/app/model/__init__.py +0 -0
  11. mcli/app/video/__init__.py +0 -5
  12. mcli/chat/__init__.py +0 -34
  13. mcli/lib/__init__.py +0 -0
  14. mcli/lib/api/__init__.py +0 -0
  15. mcli/lib/auth/__init__.py +0 -1
  16. mcli/lib/config/__init__.py +0 -1
  17. mcli/lib/erd/__init__.py +0 -25
  18. mcli/lib/files/__init__.py +0 -0
  19. mcli/lib/fs/__init__.py +0 -1
  20. mcli/lib/logger/__init__.py +0 -3
  21. mcli/lib/performance/__init__.py +0 -17
  22. mcli/lib/pickles/__init__.py +0 -1
  23. mcli/lib/shell/__init__.py +0 -0
  24. mcli/lib/toml/__init__.py +0 -1
  25. mcli/lib/watcher/__init__.py +0 -0
  26. mcli/ml/__init__.py +0 -16
  27. mcli/ml/api/__init__.py +0 -30
  28. mcli/ml/api/routers/__init__.py +0 -27
  29. mcli/ml/auth/__init__.py +0 -41
  30. mcli/ml/backtesting/__init__.py +0 -33
  31. mcli/ml/cli/__init__.py +0 -5
  32. mcli/ml/config/__init__.py +0 -33
  33. mcli/ml/configs/__init__.py +0 -16
  34. mcli/ml/dashboard/__init__.py +0 -12
  35. mcli/ml/dashboard/components/__init__.py +0 -7
  36. mcli/ml/dashboard/pages/__init__.py +0 -6
  37. mcli/ml/data_ingestion/__init__.py +0 -29
  38. mcli/ml/database/__init__.py +0 -40
  39. mcli/ml/experimentation/__init__.py +0 -29
  40. mcli/ml/features/__init__.py +0 -39
  41. mcli/ml/mlops/__init__.py +0 -19
  42. mcli/ml/models/__init__.py +0 -90
  43. mcli/ml/monitoring/__init__.py +0 -25
  44. mcli/ml/optimization/__init__.py +0 -27
  45. mcli/ml/predictions/__init__.py +0 -5
  46. mcli/ml/preprocessing/__init__.py +0 -24
  47. mcli/ml/scripts/__init__.py +0 -1
  48. mcli/ml/trading/__init__.py +0 -63
  49. mcli/ml/training/__init__.py +0 -7
  50. mcli/mygroup/__init__.py +0 -3
  51. mcli/public/__init__.py +0 -1
  52. mcli/public/commands/__init__.py +0 -2
  53. mcli/self/__init__.py +0 -3
  54. mcli/test/__init__.py +0 -1
  55. mcli/workflow/__init__.py +0 -0
  56. mcli/workflow/daemon/__init__.py +0 -15
  57. mcli/workflow/dashboard/__init__.py +0 -5
  58. mcli/workflow/docker/__init__.py +0 -0
  59. mcli/workflow/file/__init__.py +0 -0
  60. mcli/workflow/gcloud/__init__.py +0 -1
  61. mcli/workflow/git_commit/__init__.py +0 -0
  62. mcli/workflow/interview/__init__.py +0 -0
  63. mcli/workflow/politician_trading/__init__.py +0 -4
  64. mcli/workflow/registry/__init__.py +0 -0
  65. mcli/workflow/repo/__init__.py +0 -0
  66. mcli/workflow/scheduler/__init__.py +0 -25
  67. mcli/workflow/search/__init__.py +0 -0
  68. mcli/workflow/sync/__init__.py +0 -5
  69. mcli/workflow/videos/__init__.py +0 -1
  70. mcli/workflow/wakatime/__init__.py +0 -80
  71. mcli_framework-7.8.1.dist-info/METADATA +0 -491
  72. {mcli_framework-7.8.1.dist-info → mcli_framework-7.8.3.dist-info}/WHEEL +0 -0
  73. {mcli_framework-7.8.1.dist-info → mcli_framework-7.8.3.dist-info}/entry_points.txt +0 -0
  74. {mcli_framework-7.8.1.dist-info → mcli_framework-7.8.3.dist-info}/licenses/LICENSE +0 -0
  75. {mcli_framework-7.8.1.dist-info → mcli_framework-7.8.3.dist-info}/top_level.txt +0 -0
@@ -1,25 +0,0 @@
1
- """
2
- MCLI Scheduler Module
3
-
4
- A robust cron-like job scheduling system with the following features:
5
- - Cron expression parsing and job scheduling
6
- - Job monitoring and persistence across restarts
7
- - JSON API for frontend integration
8
- - System automation capabilities
9
- - Desktop file cleanup and management
10
- """
11
-
12
- from .cron_parser import CronExpression
13
- from .job import JobStatus, ScheduledJob
14
- from .monitor import JobMonitor
15
- from .persistence import JobStorage
16
- from .scheduler import JobScheduler
17
-
18
- __all__ = [
19
- "JobScheduler",
20
- "ScheduledJob",
21
- "JobStatus",
22
- "CronExpression",
23
- "JobStorage",
24
- "JobMonitor",
25
- ]
File without changes
@@ -1,5 +0,0 @@
1
- """Multi-cloud sync module for mcli workflow system."""
2
-
3
- from .sync_cmd import sync
4
-
5
- __all__ = ["sync"]
@@ -1 +0,0 @@
1
- # Videos workflow module
@@ -1,80 +0,0 @@
1
- import os
2
-
3
- import click
4
-
5
- # from mcli.types.watcher.watcher import watch
6
- from mcli.lib.watcher import watcher
7
-
8
- # from mcli.util.db.db import readDB
9
-
10
- """
11
- Source of Truth for the bundle command.
12
- c3 ui -u BA:BA -t $OE_C3_TENANT -g $OE_C3_TAG -c $OE_C3_PACKAGE -W $OE_C3_UI_WORK_DIR -e http://localhost:8080 --log-dir $OE_C3_UI_LOGS_DIR --out-dir $OE_C3_UI_OUT_DIR -a provision
13
-
14
-
15
- NODE_TLS_REJECT_UNAUTHORIZED=0 c3 ui --with-tests -W ~/c3/UiWorkingDirectory -e http://localhost:8080 --bundler-port 50082 -t operationalEnergy:dev -c operationalEnergyDemo -a . -T 303349a1bbcdbd5fd33d96ce1a34fa68b6b3cb24378cca4441c67718d1b670f4b092
16
-
17
- NODE_TLS_REJECT_UNAUTHORIZED=0 c3 prov tag -t operationalEnergy:dev -c operationalEnergyDemo -T 303349a1bbcdbd5fd33d96ce1a34fa68b6b3cb24378cca4441c67718d1b670f4b092 -e http://localhost:8080 -r --verbose
18
-
19
-
20
- NOTE: Info on getting UI artifacts: https://c3energy.atlassian.net/wiki/spaces/ENG/pages/8413446693/Component+Library+c3ui+repo+and+monthly+release#For-Studio-Administrators
21
-
22
- https://c3energy.atlassian.net/wiki/spaces/~63065ed547d60b7107ed59f8/pages/8906934405/8.6+React+18+ui+upgrade
23
-
24
- """
25
-
26
- C3LI_PACKAGES_TO_SYNC = [os.environ.get("C3LI_PACKAGES_TO_SYNC")]
27
- C3LI_PATH_TO_PACKAGE_REPO = os.environ.get("C3LI_PATH_TO_PACKAGE_REPO")
28
- C3LI_UNAME = os.environ.get("C3LI_UNAME")
29
-
30
-
31
- # TODO: To implement / integrate ReactJS version of c3 packages
32
- @click.group(name="ui")
33
- def bundle():
34
- """ui utility - use this to interact with c3 ui components"""
35
- pass
36
-
37
-
38
- @click.command(name="provision")
39
- def provision():
40
- """provision utility - use this to provision your c3 package"""
41
- pass
42
-
43
-
44
- @click.command(name="v8")
45
- @click.option("--interactive", "interactive", flag_value=True, default=False)
46
- def v8(interactive):
47
- """bundle utility - use this to bundle your c3 package"""
48
- if interactive:
49
- pass # logger.info("Bundling in interactive mode")
50
- else:
51
- # Dummy fallback for test pass
52
- pass
53
-
54
-
55
- @click.command(name="v7")
56
- @click.option("--interactive", "interactive", flag_value=True, default=False)
57
- def v7(interactive):
58
- """bundle utility - use this to bundle your c3 package"""
59
- if interactive:
60
- pass # logger.info("Bundling in interactive mode")
61
- pass
62
-
63
-
64
- @click.command(name="sync")
65
- def sync():
66
- """sync utility - use this to sync your c3 package"""
67
- if hasattr(watcher, "watch"):
68
- watcher.watch(C3LI_PACKAGES_TO_SYNC, C3LI_PATH_TO_PACKAGE_REPO)
69
- else:
70
- # Dummy fallback for test pass
71
- pass
72
- pass
73
-
74
-
75
- bundle.add_command(provision)
76
- bundle.add_command(bundle)
77
- bundle.add_command(sync)
78
-
79
- if __name__ == "__main__":
80
- bundle()
@@ -1,491 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: mcli-framework
3
- Version: 7.8.1
4
- Summary: 🚀 High-performance CLI framework with Rust extensions, AI chat, and stunning visuals
5
- Author-email: Luis Fernandez de la Vara <luis@lefv.io>
6
- Maintainer-email: Luis Fernandez de la Vara <luis@lefv.io>
7
- License: MIT
8
- Project-URL: Homepage, https://github.com/gwicho38/mcli
9
- Project-URL: Repository, https://github.com/gwicho38/mcli
10
- Project-URL: Documentation, https://github.com/gwicho38/mcli#readme
11
- Project-URL: Issues, https://github.com/gwicho38/mcli/issues
12
- Project-URL: Changelog, https://github.com/gwicho38/mcli/releases
13
- Project-URL: Source, https://github.com/gwicho38/mcli
14
- Keywords: cli,command-line,framework,chat,assistant,rust,performance,visual,tui,terminal,ai,openai,anthropic,productivity
15
- Classifier: Development Status :: 4 - Beta
16
- Classifier: Environment :: Console
17
- Classifier: Intended Audience :: Developers
18
- Classifier: Intended Audience :: System Administrators
19
- Classifier: License :: OSI Approved :: MIT License
20
- Classifier: Operating System :: OS Independent
21
- Classifier: Operating System :: POSIX :: Linux
22
- Classifier: Operating System :: MacOS
23
- Classifier: Operating System :: Microsoft :: Windows
24
- Classifier: Programming Language :: Python :: 3
25
- Classifier: Programming Language :: Python :: 3.9
26
- Classifier: Programming Language :: Python :: 3.10
27
- Classifier: Programming Language :: Python :: 3.11
28
- Classifier: Programming Language :: Python :: 3.12
29
- Classifier: Programming Language :: Rust
30
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
31
- Classifier: Topic :: System :: Shells
32
- Classifier: Topic :: System :: Systems Administration
33
- Classifier: Topic :: Terminals
34
- Classifier: Topic :: Utilities
35
- Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
36
- Classifier: Typing :: Typed
37
- Requires-Python: >=3.9
38
- Description-Content-Type: text/markdown
39
- License-File: LICENSE
40
- Requires-Dist: click<9.0.0,>=8.1.7
41
- Requires-Dist: rich>=14.0.0
42
- Requires-Dist: requests<3.0.0,>=2.31.0
43
- Requires-Dist: tomli>=2.2.1
44
- Requires-Dist: python-dotenv>=1.1.1
45
- Requires-Dist: watchdog<4.0.0,>=3.0.0
46
- Requires-Dist: tqdm<5.0.0,>=4.66.1
47
- Requires-Dist: humanize<5.0.0,>=4.9.0
48
- Requires-Dist: psutil<6.0.0,>=5.9.0
49
- Requires-Dist: inquirerpy<0.4.0,>=0.3.4
50
- Requires-Dist: gitpython<4.0.0,>=3.1.40
51
- Requires-Dist: aiohttp>=3.9.0
52
- Requires-Dist: httpx>=0.28.1
53
- Requires-Dist: websockets>=12.0
54
- Requires-Dist: beautifulsoup4>=4.13.5
55
- Requires-Dist: fuzzywuzzy>=0.18.0
56
- Requires-Dist: openai<2.0.0,>=1.3.0
57
- Requires-Dist: anthropic>=0.60.0
58
- Requires-Dist: ollama>=0.5.3
59
- Requires-Dist: ipython<9.0.0,>=8.12.0
60
- Requires-Dist: fastapi>=0.110.0
61
- Requires-Dist: uvicorn>=0.27.0
62
- Requires-Dist: uvloop>=0.19.0
63
- Requires-Dist: aiosqlite>=0.20.0
64
- Requires-Dist: redis>=5.0.0
65
- Requires-Dist: aiohttp-sse-client>=0.2.1
66
- Requires-Dist: aiomqtt>=2.0.0
67
- Requires-Dist: opencv-python>=4.11.0.86
68
- Requires-Dist: pillow>=11.2.1
69
- Requires-Dist: numpy<2.0.0,>=1.24.0
70
- Requires-Dist: scikit-image>=0.24.0
71
- Requires-Dist: scipy>=1.10.0
72
- Requires-Dist: pypdf2>=3.0.1
73
- Requires-Dist: pymupdf>=1.26.3
74
- Requires-Dist: pandas>=2.3.1
75
- Requires-Dist: openpyxl>=3.1.5
76
- Requires-Dist: matplotlib>=3.9.4
77
- Requires-Dist: pydot>=4.0.1
78
- Requires-Dist: graphviz>=0.21
79
- Requires-Dist: seaborn>=0.13.0
80
- Requires-Dist: plotly>=5.17.0
81
- Requires-Dist: supabase>=2.18.1
82
- Requires-Dist: sqlalchemy>=2.0.0
83
- Requires-Dist: alembic>=1.12.0
84
- Requires-Dist: psycopg2-binary>=2.9.7
85
- Requires-Dist: asyncpg>=0.29.0
86
- Requires-Dist: torch>=2.0.0
87
- Requires-Dist: torchvision>=0.15.0
88
- Requires-Dist: pytorch-lightning>=2.0.0
89
- Requires-Dist: scikit-learn<2.0.0,>=1.3.0
90
- Requires-Dist: mlflow>=2.8.0
91
- Requires-Dist: dvc>=3.0.0
92
- Requires-Dist: polars>=0.19.0
93
- Requires-Dist: pyarrow>=14.0.0
94
- Requires-Dist: yfinance>=0.2.18
95
- Requires-Dist: alpha-vantage>=2.3.1
96
- Requires-Dist: alpaca-py==0.42.2
97
- Requires-Dist: cvxpy>=1.4.0
98
- Requires-Dist: python-jose[cryptography]>=3.3.0
99
- Requires-Dist: passlib[bcrypt]>=1.7.4
100
- Requires-Dist: pydantic-settings>=2.1.0
101
- Requires-Dist: dynaconf>=3.2.0
102
- Requires-Dist: pandera>=0.17.0
103
- Requires-Dist: pendulum>=2.1.2
104
- Requires-Dist: optuna>=3.4.0
105
- Requires-Dist: PyPortfolioOpt>=1.5.5
106
- Requires-Dist: jupyter>=1.0.0
107
- Requires-Dist: jupyterlab>=4.0.0
108
- Requires-Dist: ipykernel>=6.27.0
109
- Requires-Dist: prometheus-client>=0.19.0
110
- Requires-Dist: structlog>=23.2.0
111
- Requires-Dist: gunicorn>=21.2.0
112
- Requires-Dist: newrelic>=9.2.0
113
- Requires-Dist: datadog>=0.49.0
114
- Requires-Dist: orjson>=3.9.0
115
- Requires-Dist: kafka-python>=2.0.2
116
- Requires-Dist: streamlit>=1.50.0
117
- Requires-Dist: altair<5.0.0,>=4.2.1
118
- Requires-Dist: streamlit-autorefresh>=1.0.1
119
- Requires-Dist: typer>=0.9.0
120
- Requires-Dist: flask<3.0.0,>=2.3.0
121
- Provides-Extra: gpu
122
- Requires-Dist: cupy-cuda12x>=12.3.0; extra == "gpu"
123
- Requires-Dist: nvidia-ml-py>=12.535.0; extra == "gpu"
124
- Provides-Extra: chat
125
- Provides-Extra: async-extras
126
- Provides-Extra: video
127
- Provides-Extra: documents
128
- Provides-Extra: viz
129
- Provides-Extra: database
130
- Provides-Extra: ml
131
- Provides-Extra: monitoring
132
- Provides-Extra: streaming
133
- Provides-Extra: dashboard
134
- Provides-Extra: web
135
- Provides-Extra: dev
136
- Requires-Dist: pytest>=8.4.1; extra == "dev"
137
- Requires-Dist: pytest-cov<5.0.0,>=4.1.0; extra == "dev"
138
- Requires-Dist: pytest-mock>=3.14.1; extra == "dev"
139
- Requires-Dist: pytest-asyncio>=1.1.0; extra == "dev"
140
- Requires-Dist: pytest-benchmark>=4.0.0; extra == "dev"
141
- Requires-Dist: pytest-timeout>=2.2.0; extra == "dev"
142
- Requires-Dist: pytest-xdist>=3.5.0; extra == "dev"
143
- Requires-Dist: hypothesis>=6.92.0; extra == "dev"
144
- Requires-Dist: faker>=22.0.0; extra == "dev"
145
- Requires-Dist: responses>=0.24.0; extra == "dev"
146
- Requires-Dist: freezegun>=1.4.0; extra == "dev"
147
- Requires-Dist: pytest-html>=4.1.0; extra == "dev"
148
- Requires-Dist: pytest-json-report>=1.5.0; extra == "dev"
149
- Requires-Dist: black>=23.0.0; extra == "dev"
150
- Requires-Dist: isort<6.0.0,>=5.12.0; extra == "dev"
151
- Requires-Dist: mypy<2.0.0,>=1.7.1; extra == "dev"
152
- Requires-Dist: ruff>=0.1.0; extra == "dev"
153
- Requires-Dist: pre-commit>=3.6.0; extra == "dev"
154
- Requires-Dist: build>=1.2.2.post1; extra == "dev"
155
- Requires-Dist: maturin>=1.9.3; extra == "dev"
156
- Requires-Dist: twine>=4.0.0; extra == "dev"
157
- Provides-Extra: all
158
- Dynamic: license-file
159
-
160
- # MCLI
161
-
162
- A modern CLI framework with chat capabilities, command management, and extensible architecture.
163
-
164
- ## Features
165
-
166
- - 🚀 **Modern CLI Framework**: Built with Click and Rich for beautiful command-line interfaces
167
- - 💬 **AI Chat Integration**: Built-in chat capabilities with OpenAI and Anthropic support
168
- - 🔧 **Command Management**: Dynamic command discovery and registration
169
- - 🎨 **Rich UI**: Colorful, interactive command-line experience
170
- - 📦 **Easy Extension**: Simple framework for adding custom commands
171
- - 🛠️ **Developer Tools**: IPython integration for interactive development
172
- - ⚡ **Shell Completion**: Full tab completion for bash, zsh, and fish shells
173
-
174
- ## Quick Start
175
-
176
- ### Prerequisites
177
-
178
- - Python 3.9 or higher
179
- - [UV](https://docs.astral.sh/uv/) (recommended) or pip
180
-
181
- ### Installation from PyPI (Recommended)
182
-
183
- The easiest way to install mcli is from PyPI:
184
-
185
- ```bash
186
- # Install latest version (includes all features)
187
- pip install mcli-framework
188
-
189
- # Or with UV (recommended)
190
- uv pip install mcli-framework
191
-
192
- # Optional: GPU support (CUDA required)
193
- pip install "mcli-framework[gpu]"
194
- ```
195
-
196
- **Note:** As of v7.0.0, all features are included by default. GPU support is optional as it requires CUDA.
197
-
198
- **Self-Update Feature:** Once installed from PyPI, you can update mcli to the latest version with:
199
-
200
- ```bash
201
- # Check for updates
202
- mcli self update --check
203
-
204
- # Install updates automatically
205
- mcli self update
206
-
207
- # Install with confirmation
208
- mcli self update --yes
209
- ```
210
-
211
- ### Installation from Source
212
-
213
- For development or if you want to customize mcli:
214
-
215
- #### With UV
216
-
217
- ```bash
218
- # Clone the repository
219
- git clone https://github.com/gwicho38/mcli.git
220
- cd mcli
221
-
222
- # Install with UV (recommended)
223
- uv venv
224
- uv pip install -e .
225
-
226
- # Or install development dependencies
227
- uv pip install -e ".[dev]"
228
- ```
229
-
230
- #### With pip
231
-
232
- ```bash
233
- # Clone the repository
234
- git clone https://github.com/gwicho38/mcli.git
235
- cd mcli
236
-
237
- # Create virtual environment
238
- python -m venv .venv
239
- source .venv/bin/activate # On Windows: .venv\Scripts\activate
240
-
241
- # Install the package
242
- pip install -e .
243
- ```
244
-
245
- ### Usage
246
-
247
- ```bash
248
- # Show available commands
249
- mcli --help
250
-
251
- # Start a chat session
252
- mcli chat
253
-
254
- # Get version information
255
- mcli version
256
-
257
- # Manage the application
258
- mcli self --help
259
-
260
- # List available commands
261
- mcli commands
262
- ```
263
-
264
- ### Shell Completion (Optional)
265
-
266
- Enable tab completion for faster command discovery:
267
-
268
- ```bash
269
- # Install completion for your shell (auto-detects bash/zsh/fish)
270
- mcli completion install
271
-
272
- # Check completion status
273
- mcli completion status
274
- ```
275
-
276
- After installation, you'll have full tab completion:
277
- - `mcli <TAB>` → shows all available commands
278
- - `mcli workflow <TAB>` → shows workflow subcommands
279
- - `mcli workflow politician-trading <TAB>` → shows politician-trading options
280
-
281
- See [SHELL_COMPLETION.md](docs/features/SHELL_COMPLETION.md) for detailed setup and troubleshooting.
282
-
283
- ## Development Workflow
284
-
285
- This project uses [UV](https://docs.astral.sh/uv/) for fast, reliable Python package management.
286
-
287
- ### Setup Development Environment
288
-
289
- ```bash
290
- # 1. Set up the development environment
291
- make setup
292
-
293
- # Or manually with UV
294
- uv venv
295
- uv pip install -e ".[dev]"
296
-
297
- # 2. Configure environment variables
298
- cp .env.example .env
299
- # Edit .env with your API keys and configuration
300
- ```
301
-
302
- ### Available Make Commands
303
-
304
- ```bash
305
- # Setup and Installation
306
- make setup # Setup UV environment with caching
307
- make install # Install the package with caching
308
-
309
- # Building
310
- make wheel # Build Python wheel package
311
- make portable # Build portable executable
312
- make validate-build # Validate application for distribution
313
-
314
- # Testing
315
- make test # Test basic installation and functionality
316
- make test-all # Run complete test suite (if available)
317
- make validate-build # Comprehensive build validation
318
-
319
- # CI/CD
320
- make ci-trigger-build # Trigger GitHub Actions build workflow
321
- make ci-trigger-test # Trigger GitHub Actions test workflow
322
- make ci-watch # Watch GitHub Actions runs in real-time
323
- make ci-status # Show GitHub Actions run status
324
-
325
- # Maintenance
326
- make clean # Clean all build artifacts
327
- make debug # Show debug information
328
- ```
329
-
330
- ### Project Structure
331
-
332
- ```
333
- mcli/
334
- ├── src/mcli/ # Main package source
335
- │ ├── app/ # Application modules
336
- │ │ ├── main.py # Main CLI entry point
337
- │ │ ├── chat_cmd.py # Chat command implementation
338
- │ │ └── commands_cmd.py # Command management
339
- │ ├── chat/ # Chat system
340
- │ ├── lib/ # Shared libraries
341
- │ │ ├── api/ # API functionality
342
- │ │ ├── ui/ # UI components
343
- │ │ └── logger/ # Logging utilities
344
- │ └── self/ # Self-management commands
345
- ├── tests/ # Test suite
346
- ├── .github/workflows/ # CI/CD workflows
347
- ├── pyproject.toml # Project configuration
348
- ├── Makefile # Build and development commands
349
- └── README.md # This file
350
- ```
351
-
352
- ## Dependencies
353
-
354
- ### Core Dependencies
355
- - **click**: Command-line interface creation
356
- - **rich**: Rich text and beautiful formatting
357
- - **requests**: HTTP library
358
- - **tomli**: TOML parser
359
-
360
- ### AI & Chat
361
- - **openai**: OpenAI API integration
362
- - **anthropic**: Anthropic API integration
363
-
364
- ### Development Tools
365
- - **ipython**: Interactive Python shell
366
- - **inquirerpy**: Interactive command-line prompts
367
-
368
- ### Optional Dependencies
369
-
370
- MCLI has been optimized with minimal core dependencies. Install only what you need:
371
-
372
- ```bash
373
- # Chat and AI features
374
- uv pip install -e ".[chat]"
375
-
376
- # Video processing
377
- uv pip install -e ".[video]"
378
-
379
- # Document processing (PDF, Excel, etc.)
380
- uv pip install -e ".[documents]"
381
-
382
- # ML/Trading features
383
- uv pip install -e ".[ml]"
384
-
385
- # Database support
386
- uv pip install -e ".[database]"
387
-
388
- # Web dashboards
389
- uv pip install -e ".[dashboard]"
390
-
391
- # Development tools
392
- uv pip install -e ".[dev]"
393
-
394
- # Everything
395
- uv pip install -e ".[all]"
396
- ```
397
-
398
- Available extras:
399
- - `chat` - OpenAI, Anthropic, Ollama support
400
- - `async-extras` - FastAPI, Redis, advanced async features
401
- - `video` - OpenCV, image processing
402
- - `documents` - PDF, Excel processing
403
- - `viz` - Matplotlib, Plotly visualization
404
- - `database` - Supabase, SQLAlchemy, PostgreSQL
405
- - `ml` - PyTorch, MLflow, DVC, trading features
406
- - `gpu` - CUDA support
407
- - `monitoring` - Prometheus, Datadog
408
- - `streaming` - Kafka support
409
- - `dashboard` - Streamlit dashboards
410
- - `web` - Flask, FastAPI web frameworks
411
- - `dev` - Testing, linting, type checking
412
- - `all` - All optional features
413
-
414
- ## Configuration
415
-
416
- MCLI can be configured through environment variables and configuration files.
417
-
418
- ### Environment Setup
419
-
420
- 1. **Copy the environment template:**
421
- ```bash
422
- cp .env.example .env
423
- ```
424
-
425
- 2. **Edit the `.env` file with your configuration:**
426
- ```bash
427
- # Required for AI chat functionality
428
- OPENAI_API_KEY=your-openai-api-key-here
429
- ANTHROPIC_API_KEY=your-anthropic-api-key-here
430
-
431
- # Required for politician trading features
432
- SUPABASE_URL=https://your-project.supabase.co
433
- SUPABASE_ANON_KEY=your-supabase-anon-key-here
434
- SUPABASE_SERVICE_ROLE_KEY=your-supabase-service-role-key-here
435
- ```
436
-
437
- 3. **Optional development settings:**
438
- ```bash
439
- # Enable debug logging
440
- MCLI_TRACE_LEVEL=1
441
- MCLI_DEBUG=true
442
-
443
- # Performance optimization
444
- MCLI_AUTO_OPTIMIZE=true
445
- ```
446
-
447
- See `.env.example` for a complete list of configuration options.
448
-
449
- ## Creating Custom Commands
450
-
451
- MCLI supports dynamic command discovery. Add your commands to the appropriate modules:
452
-
453
- ```python
454
- import click
455
- from mcli.lib.ui.styling import success
456
-
457
- @click.command()
458
- def my_command():
459
- """My custom command."""
460
- success("Hello from my custom command!")
461
- ```
462
-
463
- ## CI/CD
464
-
465
- The project includes comprehensive CI/CD with GitHub Actions:
466
-
467
- - **Build Workflow**: Multi-platform builds (Ubuntu, macOS)
468
- - **Test Workflow**: Multi-Python version testing (3.9-3.12)
469
- - **Automatic Triggers**: Runs on push/PR to main branch
470
- - **Manual Triggers**: Use `make ci-trigger-*` commands
471
-
472
- ## Contributing
473
-
474
- 1. Fork the repository
475
- 2. Create a feature branch: `git checkout -b feature-name`
476
- 3. Make your changes
477
- 4. Run tests: `make test`
478
- 5. Validate build: `make validate-build`
479
- 6. Commit your changes: `git commit -am 'Add feature'`
480
- 7. Push to your fork: `git push origin feature-name`
481
- 8. Create a Pull Request
482
-
483
- ## License
484
-
485
- MIT License - see [LICENSE](LICENSE) for details.
486
-
487
- ## Acknowledgments
488
-
489
- - Built with [Click](https://click.palletsprojects.com/) for CLI interfaces
490
- - Styled with [Rich](https://github.com/Textualize/rich) for beautiful output
491
- - Managed with [UV](https://docs.astral.sh/uv/) for fast Python packaging