marimo-flow 0.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.
@@ -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,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
+ [![Python](https://img.shields.io/badge/Python-3.8%2B-blue?logo=python&logoColor=white)](https://python.org)
42
+ [![Marimo](https://img.shields.io/badge/Marimo-Latest-orange?logo=python&logoColor=white)](https://marimo.io)
43
+ [![MLflow](https://img.shields.io/badge/MLflow-Latest-blue?logo=mlflow&logoColor=white)](https://mlflow.org)
44
+ [![Docker](https://img.shields.io/badge/Docker-Ready-blue?logo=docker&logoColor=white)](https://docker.com)
45
+ [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
46
+ [![Code Style](https://img.shields.io/badge/Code%20Style-Black-black)](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,175 @@
1
+ # Marimo Flow ๐ŸŒŠ
2
+
3
+ [![Python](https://img.shields.io/badge/Python-3.8%2B-blue?logo=python&logoColor=white)](https://python.org)
4
+ [![Marimo](https://img.shields.io/badge/Marimo-Latest-orange?logo=python&logoColor=white)](https://marimo.io)
5
+ [![MLflow](https://img.shields.io/badge/MLflow-Latest-blue?logo=mlflow&logoColor=white)](https://mlflow.org)
6
+ [![Docker](https://img.shields.io/badge/Docker-Ready-blue?logo=docker&logoColor=white)](https://docker.com)
7
+ [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
8
+ [![Code Style](https://img.shields.io/badge/Code%20Style-Black-black)](https://github.com/psf/black)
9
+
10
+ **Modern reactive ML development with Marimo notebooks and MLflow experiment tracking**
11
+
12
+ ## Why Marimo Flow is Powerful ๐Ÿš€
13
+
14
+ **Marimo Flow** combines the best of reactive notebook development with robust ML experiment tracking:
15
+
16
+ - **๐Ÿ”„ Reactive Development**: Marimo's dataflow graph ensures your notebooks are always consistent - change a parameter and watch your entire pipeline update automatically
17
+ - **๐Ÿค– AI-Enhanced Workflow**: Built-in GitHub Copilot support and AI assistants accelerate your ML development
18
+ - **๐Ÿ“Š Seamless ML Pipeline**: MLflow integration tracks every experiment, model, and metric without breaking your flow
19
+
20
+ This combination eliminates the reproducibility issues of traditional notebooks while providing enterprise-grade experiment tracking.
21
+
22
+ ## Features โœจ
23
+
24
+ - **๐Ÿ““ Marimo Reactive Notebooks**: Git-friendly `.py` notebooks with automatic dependency tracking
25
+ - **๐Ÿ”ฌ MLflow Experiment Tracking**: Complete ML lifecycle management with model registry
26
+ - **๐Ÿณ Docker Deployment**: One-command setup with docker-compose
27
+ - **๐Ÿ’พ SQLite Backend**: Lightweight, file-based storage for experiments
28
+ - **๐ŸŽฏ Interactive ML Development**: Real-time parameter tuning with instant feedback
29
+
30
+ ## Quick Start ๐Ÿƒโ€โ™‚๏ธ
31
+
32
+ ### With Docker (Recommended)
33
+
34
+ ```bash
35
+ # Clone and start services
36
+ git clone <repository-url>
37
+ cd marimo-flow
38
+ docker-compose up -d
39
+
40
+ # Access services
41
+ # Marimo: http://localhost:2718
42
+ # MLflow: http://localhost:5000
43
+ ```
44
+
45
+ ### Local Development
46
+
47
+ ```bash
48
+ # Install dependencies
49
+ uv sync
50
+
51
+ # Start MLflow server
52
+ 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
53
+
54
+ # Start Marimo (in another terminal)
55
+ uv run marimo edit examples/
56
+ ```
57
+
58
+ ## Example Notebooks ๐Ÿ“š
59
+
60
+ Explore our focused, production-ready notebooks:
61
+
62
+ ### ๐Ÿš€ [Basic ML Workflow](examples/01_basic_ml_workflow.py)
63
+ - Simple classification with Random Forest
64
+ - Real-time parameter tuning
65
+ - MLflow experiment tracking
66
+ - Interactive visualizations
67
+
68
+ ### ๐Ÿ† [Model Comparison](examples/02_model_comparison.py)
69
+ - Compare multiple algorithms (RF, GB, LR, SVM)
70
+ - Cross-validation analysis
71
+ - Performance benchmarking
72
+ - Built-in datasets (Wine, Iris, Breast Cancer)
73
+
74
+ ### ๐Ÿ” [Data Exploration](examples/03_data_exploration.py)
75
+ - Interactive statistical analysis
76
+ - Correlation heatmaps
77
+ - Distribution visualizations
78
+ - PCA and t-SNE dimensionality reduction
79
+
80
+ Each notebook demonstrates reactive development principles and follows Marimo best practices for maintainable, reproducible ML code.
81
+
82
+ ## Project Structure ๐Ÿ“
83
+
84
+ ```
85
+ marimo-flow/
86
+ โ”œโ”€โ”€ examples/ # Marimo notebooks
87
+ โ”‚ โ”œโ”€โ”€ 01_basic_ml_workflow.py # Basic ML pipeline
88
+ โ”‚ โ”œโ”€โ”€ 02_model_comparison.py # Multi-model comparison
89
+ โ”‚ โ””โ”€โ”€ 03_data_exploration.py # Interactive data analysis
90
+ โ”œโ”€โ”€ data/
91
+ โ”‚ โ””โ”€โ”€ mlflow/ # MLflow storage
92
+ โ”‚ โ”œโ”€โ”€ artifacts/ # Model artifacts
93
+ โ”‚ โ”œโ”€โ”€ db/ # SQLite database
94
+ โ”‚ โ””โ”€โ”€ prompts/ # Prompt templates
95
+ โ”œโ”€โ”€ docker-compose.yaml # Service orchestration
96
+ โ”œโ”€โ”€ Dockerfile # Container definition
97
+ โ”œโ”€โ”€ pyproject.toml # Dependencies
98
+ โ””โ”€โ”€ README.md # This file
99
+ ```
100
+
101
+ ## Configuration โš™๏ธ
102
+
103
+ ### Environment Variables
104
+
105
+ - `MLFLOW_TRACKING_URI`: MLflow server URL (default: `http://localhost:5000`)
106
+ - `MLFLOW_BACKEND_STORE_URI`: Database connection string
107
+ - `MLFLOW_DEFAULT_ARTIFACT_ROOT`: Artifact storage location
108
+
109
+ ### Docker Services
110
+
111
+ - **Marimo**: Port 2718 - Interactive notebook environment
112
+ - **MLflow**: Port 5000 - Experiment tracking UI
113
+
114
+ ## Pre-installed ML & Data Science Stack ๐Ÿ“ฆ
115
+
116
+ ### Machine Learning & Scientific Computing
117
+ - **[scikit-learn](https://scikit-learn.org/)** `^1.5.2` - Machine learning library
118
+ - **[NumPy](https://numpy.org/)** `^2.1.3` - Numerical computing
119
+ - **[pandas](https://pandas.pydata.org/)** `^2.2.3` - Data manipulation and analysis
120
+ - **[PyArrow](https://arrow.apache.org/docs/python/)** `^18.0.0` - Columnar data processing
121
+ - **[SciPy](https://scipy.org/)** `^1.14.1` - Scientific computing
122
+ - **[matplotlib](https://matplotlib.org/)** `^3.9.2` - Plotting library
123
+
124
+ ### High-Performance Data Processing
125
+ - **[Polars](https://pola.rs/)** `^1.12.0` - Lightning-fast DataFrame library
126
+ - **[DuckDB](https://duckdb.org/)** `^1.1.3` - In-process analytical database
127
+ - **[Altair](https://altair-viz.github.io/)** `^5.4.1` - Declarative statistical visualization
128
+
129
+ ### AI & LLM Integration
130
+ - **[OpenAI](https://platform.openai.com/docs/)** `^1.54.4` - GPT API integration
131
+ - **[FastAPI](https://fastapi.tiangolo.com/)** `^0.115.4` - Modern web framework
132
+ - **[Pydantic](https://docs.pydantic.dev/)** `^2.10.2` - Data validation
133
+
134
+ ### Database & Storage
135
+ - **[SQLAlchemy](https://www.sqlalchemy.org/)** `^2.0.36` - SQL toolkit and ORM
136
+ - **[Alembic](https://alembic.sqlalchemy.org/)** `^1.14.0` - Database migrations
137
+ - **[SQLGlot](https://sqlglot.com/)** `^25.30.2` - SQL parser and transpiler
138
+
139
+ ### Web & API
140
+ - **[Starlette](https://www.starlette.io/)** `^0.41.2` - ASGI framework
141
+ - **[Uvicorn](https://www.uvicorn.org/)** `^0.32.0` - ASGI server
142
+ - **[httpx](https://www.python-httpx.org/)** `^0.27.2` - HTTP client
143
+
144
+ ### Development Tools
145
+ - **[Black](https://black.readthedocs.io/)** `^24.10.0` - Code formatter
146
+ - **[Ruff](https://docs.astral.sh/ruff/)** `^0.7.4` - Fast Python linter
147
+ - **[pytest](https://docs.pytest.org/)** `^8.3.3` - Testing framework
148
+ - **[MyPy](https://mypy.readthedocs.io/)** `^1.13.0` - Static type checker
149
+
150
+ ## API Endpoints ๐Ÿ”Œ
151
+
152
+ ### MLflow REST API
153
+ - **Experiments**: `GET /api/2.0/mlflow/experiments/list`
154
+ - **Runs**: `GET /api/2.0/mlflow/runs/search`
155
+ - **Models**: `GET /api/2.0/mlflow/registered-models/list`
156
+
157
+ ### Marimo Server
158
+ - **Notebooks**: `GET /` - File browser and editor
159
+ - **Apps**: `GET /run/<notebook>` - Run notebook as web app
160
+
161
+ ## Contributing ๐Ÿค
162
+
163
+ 1. Fork the repository
164
+ 2. Create a feature branch: `git checkout -b feature-name`
165
+ 3. Make your changes following the coding standards
166
+ 4. Test your changes: `uv run pytest`
167
+ 5. Submit a pull request
168
+
169
+ ## License ๐Ÿ“„
170
+
171
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
172
+
173
+ ---
174
+
175
+ **Built with โค๏ธ using Marimo and MLflow**
@@ -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
+ [![Python](https://img.shields.io/badge/Python-3.8%2B-blue?logo=python&logoColor=white)](https://python.org)
42
+ [![Marimo](https://img.shields.io/badge/Marimo-Latest-orange?logo=python&logoColor=white)](https://marimo.io)
43
+ [![MLflow](https://img.shields.io/badge/MLflow-Latest-blue?logo=mlflow&logoColor=white)](https://mlflow.org)
44
+ [![Docker](https://img.shields.io/badge/Docker-Ready-blue?logo=docker&logoColor=white)](https://docker.com)
45
+ [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
46
+ [![Code Style](https://img.shields.io/badge/Code%20Style-Black-black)](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,9 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ marimo_flow.egg-info/PKG-INFO
5
+ marimo_flow.egg-info/SOURCES.txt
6
+ marimo_flow.egg-info/dependency_links.txt
7
+ marimo_flow.egg-info/not-zip-safe
8
+ marimo_flow.egg-info/requires.txt
9
+ marimo_flow.egg-info/top_level.txt
@@ -0,0 +1,14 @@
1
+ marimo[lsp,recommended,sql]>=0.13.15
2
+ mlflow>=2.22.1
3
+
4
+ [dev]
5
+ pytest>=7.4.0
6
+ pytest-cov>=4.1.0
7
+ black>=23.0.0
8
+ ruff>=0.1.0
9
+ mypy>=1.5.0
10
+ pre-commit>=3.0.0
11
+
12
+ [docs]
13
+ sphinx>=7.0.0
14
+ sphinx-rtd-theme>=1.3.0
@@ -0,0 +1,155 @@
1
+ [build-system]
2
+ requires = ["setuptools>=77.0.3", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "marimo-flow"
7
+ version = "0.1.0"
8
+ description = "Marimo Flow - Interactive ML notebooks with MLflow integration"
9
+ readme = "README.md"
10
+ requires-python = ">=3.11"
11
+ license = {text = "MIT"}
12
+ authors = [
13
+ {name = "Bjรถrn Bethge", email = "bjorn.bethge@gmail.com"},
14
+ ]
15
+ keywords = ["marimo", "mlflow", "machine-learning", "notebooks", "interactive"]
16
+ classifiers = [
17
+ "Development Status :: 3 - Alpha",
18
+ "Intended Audience :: Developers",
19
+ "Intended Audience :: Science/Research",
20
+ "License :: OSI Approved :: MIT License",
21
+ "Operating System :: OS Independent",
22
+ "Programming Language :: Python :: 3",
23
+ "Programming Language :: Python :: 3.11",
24
+ "Programming Language :: Python :: 3.12",
25
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
26
+ "Topic :: Software Development :: Libraries :: Python Modules",
27
+ ]
28
+ dependencies = [
29
+ "marimo[lsp,recommended,sql]>=0.13.15",
30
+ "mlflow>=2.22.1",
31
+ ]
32
+
33
+ [project.optional-dependencies]
34
+ dev = [
35
+ "pytest>=7.4.0",
36
+ "pytest-cov>=4.1.0",
37
+ "black>=23.0.0",
38
+ "ruff>=0.1.0",
39
+ "mypy>=1.5.0",
40
+ "pre-commit>=3.0.0",
41
+ ]
42
+ docs = [
43
+ "sphinx>=7.0.0",
44
+ "sphinx-rtd-theme>=1.3.0",
45
+ ]
46
+
47
+ [project.urls]
48
+ Homepage = "https://github.com/bjoernbethge/marimo-flow"
49
+ Documentation = "https://marimo-flow.readthedocs.io"
50
+ Repository = "https://github.com/bjoernbethge/marimo-flow"
51
+ Issues = "https://github.com/bjoernbethge/marimo-flow/issues"
52
+
53
+ [tool.setuptools]
54
+ include-package-data = true
55
+ zip-safe = false
56
+
57
+ [tool.setuptools.packages.find]
58
+ where = ["."]
59
+ include = ["marimo_flow*"]
60
+ exclude = ["tests*", "docs*", "examples*"]
61
+
62
+ [tool.setuptools.package-data]
63
+ marimo_flow = ["py.typed", "*.yaml", "*.yml", "*.json"]
64
+
65
+ [tool.uv]
66
+ link-mode = "copy"
67
+
68
+ [tool.black]
69
+ line-length = 88
70
+ target-version = ["py311"]
71
+ include = '\.pyi?$'
72
+ extend-exclude = '''
73
+ /(
74
+ # directories
75
+ \.eggs
76
+ | \.git
77
+ | \.hg
78
+ | \.mypy_cache
79
+ | \.tox
80
+ | \.venv
81
+ | build
82
+ | dist
83
+ )/
84
+ '''
85
+
86
+ [tool.ruff]
87
+ target-version = "py311"
88
+ line-length = 88
89
+ select = [
90
+ "E", # pycodestyle errors
91
+ "W", # pycodestyle warnings
92
+ "F", # pyflakes
93
+ "I", # isort
94
+ "B", # flake8-bugbear
95
+ "C4", # flake8-comprehensions
96
+ "UP", # pyupgrade
97
+ ]
98
+ ignore = [
99
+ "E501", # line too long, handled by black
100
+ "B008", # do not perform function calls in argument defaults
101
+ "C901", # too complex
102
+ ]
103
+
104
+ [tool.ruff.per-file-ignores]
105
+ "__init__.py" = ["F401"]
106
+
107
+ [tool.mypy]
108
+ python_version = "3.11"
109
+ check_untyped_defs = true
110
+ disallow_any_generics = true
111
+ disallow_incomplete_defs = true
112
+ disallow_untyped_defs = true
113
+ no_implicit_optional = true
114
+ warn_redundant_casts = true
115
+ warn_unused_ignores = true
116
+
117
+ [tool.pytest.ini_options]
118
+ testpaths = ["tests"]
119
+ python_files = ["test_*.py", "*_test.py"]
120
+ python_classes = ["Test*"]
121
+ python_functions = ["test_*"]
122
+ addopts = [
123
+ "--strict-markers",
124
+ "--strict-config",
125
+ "--cov=marimo_flow",
126
+ "--cov-report=term-missing",
127
+ "--cov-report=html",
128
+ "--cov-report=xml",
129
+ ]
130
+ markers = [
131
+ "slow: marks tests as slow (deselect with '-m \"not slow\"')",
132
+ "integration: marks tests as integration tests",
133
+ ]
134
+
135
+ [tool.coverage.run]
136
+ source = ["marimo_flow"]
137
+ omit = [
138
+ "*/tests/*",
139
+ "*/test_*",
140
+ "*/__pycache__/*",
141
+ ]
142
+
143
+ [tool.coverage.report]
144
+ exclude_lines = [
145
+ "pragma: no cover",
146
+ "def __repr__",
147
+ "if self.debug:",
148
+ "if settings.DEBUG",
149
+ "raise AssertionError",
150
+ "raise NotImplementedError",
151
+ "if 0:",
152
+ "if __name__ == .__main__.:",
153
+ "class .*\\bProtocol\\):",
154
+ "@(abc\\.)?abstractmethod",
155
+ ]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+