marimo-flow 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: marimo-flow
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Marimo Flow - Interactive ML notebooks with MLflow integration
|
|
5
|
+
Author-email: BjΓΆrn Bethge <bjorn.bethge@gmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/bjoernbethge/marimo-flow
|
|
8
|
+
Project-URL: Documentation, https://marimo-flow.readthedocs.io
|
|
9
|
+
Project-URL: Repository, https://github.com/bjoernbethge/marimo-flow
|
|
10
|
+
Project-URL: Issues, https://github.com/bjoernbethge/marimo-flow/issues
|
|
11
|
+
Keywords: marimo,mlflow,machine-learning,notebooks,interactive
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
+
Requires-Python: >=3.11
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
License-File: LICENSE
|
|
25
|
+
Requires-Dist: marimo[lsp,recommended,sql]>=0.13.15
|
|
26
|
+
Requires-Dist: mlflow>=2.22.1
|
|
27
|
+
Provides-Extra: dev
|
|
28
|
+
Requires-Dist: pytest>=7.4.0; extra == "dev"
|
|
29
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
30
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
31
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
32
|
+
Requires-Dist: mypy>=1.5.0; extra == "dev"
|
|
33
|
+
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
|
34
|
+
Provides-Extra: docs
|
|
35
|
+
Requires-Dist: sphinx>=7.0.0; extra == "docs"
|
|
36
|
+
Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == "docs"
|
|
37
|
+
Dynamic: license-file
|
|
38
|
+
|
|
39
|
+
# Marimo Flow π
|
|
40
|
+
|
|
41
|
+
[](https://python.org)
|
|
42
|
+
[](https://marimo.io)
|
|
43
|
+
[](https://mlflow.org)
|
|
44
|
+
[](https://docker.com)
|
|
45
|
+
[](LICENSE)
|
|
46
|
+
[](https://github.com/psf/black)
|
|
47
|
+
|
|
48
|
+
**Modern reactive ML development with Marimo notebooks and MLflow experiment tracking**
|
|
49
|
+
|
|
50
|
+
## Why Marimo Flow is Powerful π
|
|
51
|
+
|
|
52
|
+
**Marimo Flow** combines the best of reactive notebook development with robust ML experiment tracking:
|
|
53
|
+
|
|
54
|
+
- **π Reactive Development**: Marimo's dataflow graph ensures your notebooks are always consistent - change a parameter and watch your entire pipeline update automatically
|
|
55
|
+
- **π€ AI-Enhanced Workflow**: Built-in GitHub Copilot support and AI assistants accelerate your ML development
|
|
56
|
+
- **π Seamless ML Pipeline**: MLflow integration tracks every experiment, model, and metric without breaking your flow
|
|
57
|
+
|
|
58
|
+
This combination eliminates the reproducibility issues of traditional notebooks while providing enterprise-grade experiment tracking.
|
|
59
|
+
|
|
60
|
+
## Features β¨
|
|
61
|
+
|
|
62
|
+
- **π Marimo Reactive Notebooks**: Git-friendly `.py` notebooks with automatic dependency tracking
|
|
63
|
+
- **π¬ MLflow Experiment Tracking**: Complete ML lifecycle management with model registry
|
|
64
|
+
- **π³ Docker Deployment**: One-command setup with docker-compose
|
|
65
|
+
- **πΎ SQLite Backend**: Lightweight, file-based storage for experiments
|
|
66
|
+
- **π― Interactive ML Development**: Real-time parameter tuning with instant feedback
|
|
67
|
+
|
|
68
|
+
## Quick Start πββοΈ
|
|
69
|
+
|
|
70
|
+
### With Docker (Recommended)
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# Clone and start services
|
|
74
|
+
git clone <repository-url>
|
|
75
|
+
cd marimo-flow
|
|
76
|
+
docker-compose up -d
|
|
77
|
+
|
|
78
|
+
# Access services
|
|
79
|
+
# Marimo: http://localhost:2718
|
|
80
|
+
# MLflow: http://localhost:5000
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Local Development
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Install dependencies
|
|
87
|
+
uv sync
|
|
88
|
+
|
|
89
|
+
# Start MLflow server
|
|
90
|
+
uv run mlflow server --host 0.0.0.0 --port 5000 --backend-store-uri sqlite:///data/mlflow/db/mlflow.db --default-artifact-root ./data/mlflow/artifacts
|
|
91
|
+
|
|
92
|
+
# Start Marimo (in another terminal)
|
|
93
|
+
uv run marimo edit examples/
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Example Notebooks π
|
|
97
|
+
|
|
98
|
+
Explore our focused, production-ready notebooks:
|
|
99
|
+
|
|
100
|
+
### π [Basic ML Workflow](examples/01_basic_ml_workflow.py)
|
|
101
|
+
- Simple classification with Random Forest
|
|
102
|
+
- Real-time parameter tuning
|
|
103
|
+
- MLflow experiment tracking
|
|
104
|
+
- Interactive visualizations
|
|
105
|
+
|
|
106
|
+
### π [Model Comparison](examples/02_model_comparison.py)
|
|
107
|
+
- Compare multiple algorithms (RF, GB, LR, SVM)
|
|
108
|
+
- Cross-validation analysis
|
|
109
|
+
- Performance benchmarking
|
|
110
|
+
- Built-in datasets (Wine, Iris, Breast Cancer)
|
|
111
|
+
|
|
112
|
+
### π [Data Exploration](examples/03_data_exploration.py)
|
|
113
|
+
- Interactive statistical analysis
|
|
114
|
+
- Correlation heatmaps
|
|
115
|
+
- Distribution visualizations
|
|
116
|
+
- PCA and t-SNE dimensionality reduction
|
|
117
|
+
|
|
118
|
+
Each notebook demonstrates reactive development principles and follows Marimo best practices for maintainable, reproducible ML code.
|
|
119
|
+
|
|
120
|
+
## Project Structure π
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
marimo-flow/
|
|
124
|
+
βββ examples/ # Marimo notebooks
|
|
125
|
+
β βββ 01_basic_ml_workflow.py # Basic ML pipeline
|
|
126
|
+
β βββ 02_model_comparison.py # Multi-model comparison
|
|
127
|
+
β βββ 03_data_exploration.py # Interactive data analysis
|
|
128
|
+
βββ data/
|
|
129
|
+
β βββ mlflow/ # MLflow storage
|
|
130
|
+
β βββ artifacts/ # Model artifacts
|
|
131
|
+
β βββ db/ # SQLite database
|
|
132
|
+
β βββ prompts/ # Prompt templates
|
|
133
|
+
βββ docker-compose.yaml # Service orchestration
|
|
134
|
+
βββ Dockerfile # Container definition
|
|
135
|
+
βββ pyproject.toml # Dependencies
|
|
136
|
+
βββ README.md # This file
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Configuration βοΈ
|
|
140
|
+
|
|
141
|
+
### Environment Variables
|
|
142
|
+
|
|
143
|
+
- `MLFLOW_TRACKING_URI`: MLflow server URL (default: `http://localhost:5000`)
|
|
144
|
+
- `MLFLOW_BACKEND_STORE_URI`: Database connection string
|
|
145
|
+
- `MLFLOW_DEFAULT_ARTIFACT_ROOT`: Artifact storage location
|
|
146
|
+
|
|
147
|
+
### Docker Services
|
|
148
|
+
|
|
149
|
+
- **Marimo**: Port 2718 - Interactive notebook environment
|
|
150
|
+
- **MLflow**: Port 5000 - Experiment tracking UI
|
|
151
|
+
|
|
152
|
+
## Pre-installed ML & Data Science Stack π¦
|
|
153
|
+
|
|
154
|
+
### Machine Learning & Scientific Computing
|
|
155
|
+
- **[scikit-learn](https://scikit-learn.org/)** `^1.5.2` - Machine learning library
|
|
156
|
+
- **[NumPy](https://numpy.org/)** `^2.1.3` - Numerical computing
|
|
157
|
+
- **[pandas](https://pandas.pydata.org/)** `^2.2.3` - Data manipulation and analysis
|
|
158
|
+
- **[PyArrow](https://arrow.apache.org/docs/python/)** `^18.0.0` - Columnar data processing
|
|
159
|
+
- **[SciPy](https://scipy.org/)** `^1.14.1` - Scientific computing
|
|
160
|
+
- **[matplotlib](https://matplotlib.org/)** `^3.9.2` - Plotting library
|
|
161
|
+
|
|
162
|
+
### High-Performance Data Processing
|
|
163
|
+
- **[Polars](https://pola.rs/)** `^1.12.0` - Lightning-fast DataFrame library
|
|
164
|
+
- **[DuckDB](https://duckdb.org/)** `^1.1.3` - In-process analytical database
|
|
165
|
+
- **[Altair](https://altair-viz.github.io/)** `^5.4.1` - Declarative statistical visualization
|
|
166
|
+
|
|
167
|
+
### AI & LLM Integration
|
|
168
|
+
- **[OpenAI](https://platform.openai.com/docs/)** `^1.54.4` - GPT API integration
|
|
169
|
+
- **[FastAPI](https://fastapi.tiangolo.com/)** `^0.115.4` - Modern web framework
|
|
170
|
+
- **[Pydantic](https://docs.pydantic.dev/)** `^2.10.2` - Data validation
|
|
171
|
+
|
|
172
|
+
### Database & Storage
|
|
173
|
+
- **[SQLAlchemy](https://www.sqlalchemy.org/)** `^2.0.36` - SQL toolkit and ORM
|
|
174
|
+
- **[Alembic](https://alembic.sqlalchemy.org/)** `^1.14.0` - Database migrations
|
|
175
|
+
- **[SQLGlot](https://sqlglot.com/)** `^25.30.2` - SQL parser and transpiler
|
|
176
|
+
|
|
177
|
+
### Web & API
|
|
178
|
+
- **[Starlette](https://www.starlette.io/)** `^0.41.2` - ASGI framework
|
|
179
|
+
- **[Uvicorn](https://www.uvicorn.org/)** `^0.32.0` - ASGI server
|
|
180
|
+
- **[httpx](https://www.python-httpx.org/)** `^0.27.2` - HTTP client
|
|
181
|
+
|
|
182
|
+
### Development Tools
|
|
183
|
+
- **[Black](https://black.readthedocs.io/)** `^24.10.0` - Code formatter
|
|
184
|
+
- **[Ruff](https://docs.astral.sh/ruff/)** `^0.7.4` - Fast Python linter
|
|
185
|
+
- **[pytest](https://docs.pytest.org/)** `^8.3.3` - Testing framework
|
|
186
|
+
- **[MyPy](https://mypy.readthedocs.io/)** `^1.13.0` - Static type checker
|
|
187
|
+
|
|
188
|
+
## API Endpoints π
|
|
189
|
+
|
|
190
|
+
### MLflow REST API
|
|
191
|
+
- **Experiments**: `GET /api/2.0/mlflow/experiments/list`
|
|
192
|
+
- **Runs**: `GET /api/2.0/mlflow/runs/search`
|
|
193
|
+
- **Models**: `GET /api/2.0/mlflow/registered-models/list`
|
|
194
|
+
|
|
195
|
+
### Marimo Server
|
|
196
|
+
- **Notebooks**: `GET /` - File browser and editor
|
|
197
|
+
- **Apps**: `GET /run/<notebook>` - Run notebook as web app
|
|
198
|
+
|
|
199
|
+
## Contributing π€
|
|
200
|
+
|
|
201
|
+
1. Fork the repository
|
|
202
|
+
2. Create a feature branch: `git checkout -b feature-name`
|
|
203
|
+
3. Make your changes following the coding standards
|
|
204
|
+
4. Test your changes: `uv run pytest`
|
|
205
|
+
5. Submit a pull request
|
|
206
|
+
|
|
207
|
+
## License π
|
|
208
|
+
|
|
209
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
**Built with β€οΈ using Marimo and MLflow**
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
marimo_flow-0.1.0.dist-info/licenses/LICENSE,sha256=ITVSYST1SouVUEVvfP3QGf3oOcIEs_rWYv7XmeT3DnI,1070
|
|
2
|
+
marimo_flow-0.1.0.dist-info/METADATA,sha256=xsdzUn27qGy2MPItMIru4YRjtFanhVQrcmUmKeAnIUI,8677
|
|
3
|
+
marimo_flow-0.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
4
|
+
marimo_flow-0.1.0.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
5
|
+
marimo_flow-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 BjΓΆrn Bethge
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|