swiftpredict-v2 0.2.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,5 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Manas Ranjan Jena
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy...
@@ -0,0 +1,225 @@
1
+ Metadata-Version: 2.4
2
+ Name: swiftpredict-v2
3
+ Version: 0.2.0
4
+ Summary: A lightweight AutoML and experiment tracking library with FastAPI backend and Python SDK. Works locally with MongoDB.
5
+ Author-email: Manas Ranjan Jena <mranjanjena253@gmail.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/ManasRanjanJena253/SwiftPredict
8
+ Requires-Python: >=3.10
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: fastapi
12
+ Requires-Dist: uvicorn
13
+ Requires-Dist: pymongo
14
+ Requires-Dist: click
15
+ Requires-Dist: scikit-learn
16
+ Requires-Dist: matplotlib
17
+ Requires-Dist: seaborn
18
+ Requires-Dist: pandas
19
+ Requires-Dist: numpy
20
+ Requires-Dist: requests
21
+ Requires-Dist: imbalanced-learn
22
+ Requires-Dist: xgboost
23
+ Requires-Dist: lightgbm
24
+ Requires-Dist: scipy
25
+ Requires-Dist: tqdm
26
+ Requires-Dist: spacy
27
+ Dynamic: license-file
28
+
29
+ ο»Ώ# πŸš€ SwiftPredict: Lightweight, Local AutoML and Experiment Tracking Suite
30
+
31
+ Welcome to **SwiftPredict**, a blazing-fast, fully local AutoML + experiment tracking library built for ML engineers, data scientists, and researchers who prefer *privacy*, *flexibility*, and *control*. With an intuitive Python SDK, powerful FastAPI backend, and a modern UI (React/Next.js), SwiftPredict is the perfect open-source companion to your machine learning pipeline.
32
+
33
+ ---
34
+
35
+ ## πŸ”§ What Is SwiftPredict?
36
+
37
+ ### SwiftPredict is a fully local AutoML library that helps you:
38
+
39
+ - #### 🧠 Automatically detect your ML task (classification/regression)
40
+ - #### βš™οΈ Preprocess data intelligently (handle nulls, imbalance, encode categories)
41
+ - #### πŸƒβ€β™‚οΈ Run multiple ML models with cross-validation
42
+ - #### πŸ“Š Track all your experiments in MongoDB
43
+ - #### πŸ“ˆ Visualize training metrics using matplotlib/seaborn
44
+ - #### πŸ§ͺ Compare model performance instantly
45
+ - #### πŸ–₯️ Access everything via a clean web UI
46
+ - #### 🧩 Use a native Python SDK for logging and predictions
47
+
48
+ All without sending a **single byte to the cloud**.
49
+
50
+ > ## You own your data. You own your pipeline.
51
+
52
+ ---
53
+
54
+ ## πŸ“¦ Installation
55
+
56
+ ### 🐍 Requirements
57
+ - Python 3.8+
58
+ - MongoDB installed locally and running on default port
59
+
60
+ ### πŸ” Install with pip (editable mode for development)
61
+
62
+ ```bash
63
+ git clone https://github.com/ManasRanjanJena253/SwiftPredict.git
64
+ cd SwiftPredict
65
+ pip install -e .
66
+ ```
67
+
68
+ ### Make sure mongodb is running locally. You can install it from [MongoDB](https://www.mongodb.com/try/download/community)
69
+
70
+ ---
71
+
72
+ ## βš™οΈ How It Works
73
+
74
+ ### 🧱 Modular Architecture
75
+
76
+ ```bash
77
+ pgsql
78
+ Copy
79
+ Edit
80
+ SwiftPredict/
81
+ β”œβ”€β”€ backend/
82
+ β”‚ β”œβ”€β”€ app/
83
+ β”‚ β”‚ β”œβ”€β”€ services/ ← AutoML core: training, preprocessing
84
+ β”‚ β”‚ β”œβ”€β”€ client/ ← SDK for prediction and logging
85
+ β”‚ β”‚ β”œβ”€β”€ api/ ← FastAPI endpoints
86
+ β”‚ β”‚ β”œβ”€β”€ core/ ← Global settings, config
87
+ β”‚ β”‚ └── main.py ← API entry point
88
+ β”œβ”€β”€ frontend/ ← React-based UI (optional)
89
+ β”œβ”€β”€ cli.py ← CLI launcher
90
+
91
+ ```
92
+
93
+ ---
94
+
95
+ # πŸ§ͺ Quickstart
96
+ ### 1. Launch the API + UI
97
+ ```bash
98
+ pip install swiftpredict_dev
99
+ swiftpredict launch ui
100
+ ```
101
+
102
+ ---
103
+
104
+ # Train
105
+ >automl = AutoML(logger=logger)
106
+
107
+ >automl.train(X, y, task=task)
108
+
109
+ ---
110
+
111
+ ## βœ… Why Use SwiftPredict?
112
+
113
+ SwiftPredict stands out as a fully local, transparent, and developer-friendly AutoML tool. Here's how it compares to other popular libraries:
114
+
115
+ | **Feature** | **SwiftPredict 🟒** | **Auto-Sklearn βšͺ** | **H2O.ai βšͺ** | **Weka βšͺ** |
116
+ |---------------------------------|---------------------|--------------------|------------------|------------------|
117
+ | Fully Local | βœ… | ❌ | ❌ | βœ… |
118
+ | No Cloud Required | βœ… | ❌ | ❌ | βœ… |
119
+ | Customizable Preprocessing | βœ… | ⚠️ Limited | ⚠️ | ❌ |
120
+ | MongoDB-based Run Tracking | βœ… | ❌ | ❌ | ❌ |
121
+ | Built-in Web UI | βœ… | ❌ | βœ… | ❌ |
122
+ | Python SDK | βœ… | βœ… | ⚠️ Java Only | ⚠️ |
123
+ | CLI Support | βœ… | βœ… | βœ… | βœ… |
124
+
125
+ ---
126
+
127
+ ## πŸ“‰ Current Limitations
128
+ ### Although SwiftPredict is powerful for fast iteration and tracking, it is still in its early phase.
129
+
130
+ ### πŸ”» Known limitations:
131
+ * #### No GPU support yet (only CPU-based scikit-learn and XGBoost models)
132
+ * #### No advanced hyperparameter tuning (Bayesian / Optuna-style)
133
+ * #### No deep learning models (planned)
134
+ * #### Currently supports only classification and regression
135
+ * #### Basic visualizations β€” more dashboards coming
136
+
137
+ ---
138
+
139
+ ## πŸš€ What’s Coming Next?
140
+ ### Here’s our upcoming roadmap :
141
+
142
+ ### 🧠 Algorithmic Improvements
143
+ 1. #### βœ… Model Ensemble (stacking, voting, weighted averaging)
144
+ 2. #### πŸ”² Gradient boosting chains & hybrid methods
145
+ 3. #### πŸ”² Feature selection via SHAP/Permutation importance
146
+ 4. #### 🧼 Preprocessing Advancements
147
+ 5. #### βœ… Advanced binning & quantile transformation
148
+ 6. #### πŸ”² Time-series support
149
+
150
+ ### πŸ›  MLOps & UI
151
+ 1. #### βœ… Streamlit-powered live dashboards
152
+ 2. #### πŸ”² Experiment comparison grid with filters
153
+ 3. #### πŸ”² Model versioning + rollback
154
+
155
+ ---
156
+
157
+ ## πŸ‘₯ Contributing
158
+ ### I welcome all contributors β€” whether you're an AI enthusiast, frontend dev, MLOps engineer, or just someone curious about AutoML.
159
+
160
+ ---
161
+
162
+ ## πŸ‘₯ How to Contribute
163
+
164
+ SwiftPredict is not just a library β€” it's a growing ecosystem. Whether you're a researcher, ML engineer, full-stack dev, or an open-source enthusiast, there are many ways you can contribute and make an impact.
165
+
166
+ ### πŸ”§ Here are some great ways to get involved:
167
+
168
+ - **🧠 Add New Models or Preprocessing Techniques**
169
+ > Enhance SwiftPredict’s AutoML engine by integrating new algorithms (e.g., CatBoost, ExtraTrees), or by writing custom preprocessing utilities like advanced binning, outlier detection, feature generation, etc.
170
+
171
+ - **πŸ§ͺ Test the Library & Build on It**
172
+ > Use SwiftPredict in your own projects and experiment with building custom pipelines. Try writing your own `handle_*` functions or test new model selection strategies β€” if it's useful, consider contributing it!
173
+
174
+ - **πŸ–Ό Improve the Frontend UI**
175
+ > If you're comfortable with React, TypeScript, or Tailwind CSS β€” jump into the frontend and help build powerful dashboards, charts, and run explorers.
176
+
177
+ - **βœ… Write Tests / Add CI/CD Support**
178
+ > Help me build a robust testing suite and automate testing across contributions. Add GitHub Actions, coverage reports, and sanity checks.
179
+
180
+ - **πŸ“ Improve Documentation**
181
+ > Good documentation is the backbone of open source. Help by clarifying usage, adding examples, or expanding on internal logic.
182
+
183
+ - **πŸ’‘ Report Bugs or Suggest Features**
184
+ > Found a bug or have a game-changing idea? Open an issue and we’ll discuss it together!
185
+
186
+ ---
187
+
188
+ ### ⚑ Getting Started Is Simple
189
+
190
+ 1. Fork the repo 🍴
191
+ 2. Create a new branch πŸš€
192
+ 3. Make your changes βœ…
193
+ 4. Submit a pull request with a clear description πŸ“¬
194
+
195
+ We welcome both small and large contributions β€” whether it's fixing typos, creating a new ensemble strategy, or building an entire UI module. **Every contribution counts.**
196
+
197
+ > Let’s build the future of open, local-first AutoML together. πŸ’»πŸ§ͺ
198
+ Let me know if you also want a CONTRIBUTING.md with formatting guidelines, code style, and environment setup instructions. This will boost the credibility of your repo and help new contributors onboard faster.
199
+ ---
200
+
201
+ ## 🀝 Contact
202
+ ### Author: Manas Ranjan Jena
203
+
204
+ ### Email: mranjanjena253@gmail.com
205
+
206
+ ### GitHub: @ManasRanjanJena253
207
+
208
+ ### LinkedIn: manasranjanjena253
209
+
210
+ ---
211
+
212
+ ## πŸ›‘ License
213
+
214
+ ### MIT License β€” You are free to use, modify, and distribute SwiftPredict with proper attribution.
215
+
216
+ ---
217
+
218
+ ## πŸ’‘ Summary
219
+ * #### SwiftPredict is the ideal AutoML tool if you:
220
+ * #### Want full control over your data and pipeline
221
+ * #### Need a fast, local, and visual way to iterate on models
222
+ * #### Prefer Python-native workflows without any vendor lock-in
223
+ * #### Care about privacy, reproducibility, and open-source flexibility
224
+
225
+ * #### No cloud, no noise. Just pure ML automation at your fingertips.
@@ -0,0 +1,197 @@
1
+ ο»Ώ# πŸš€ SwiftPredict: Lightweight, Local AutoML and Experiment Tracking Suite
2
+
3
+ Welcome to **SwiftPredict**, a blazing-fast, fully local AutoML + experiment tracking library built for ML engineers, data scientists, and researchers who prefer *privacy*, *flexibility*, and *control*. With an intuitive Python SDK, powerful FastAPI backend, and a modern UI (React/Next.js), SwiftPredict is the perfect open-source companion to your machine learning pipeline.
4
+
5
+ ---
6
+
7
+ ## πŸ”§ What Is SwiftPredict?
8
+
9
+ ### SwiftPredict is a fully local AutoML library that helps you:
10
+
11
+ - #### 🧠 Automatically detect your ML task (classification/regression)
12
+ - #### βš™οΈ Preprocess data intelligently (handle nulls, imbalance, encode categories)
13
+ - #### πŸƒβ€β™‚οΈ Run multiple ML models with cross-validation
14
+ - #### πŸ“Š Track all your experiments in MongoDB
15
+ - #### πŸ“ˆ Visualize training metrics using matplotlib/seaborn
16
+ - #### πŸ§ͺ Compare model performance instantly
17
+ - #### πŸ–₯️ Access everything via a clean web UI
18
+ - #### 🧩 Use a native Python SDK for logging and predictions
19
+
20
+ All without sending a **single byte to the cloud**.
21
+
22
+ > ## You own your data. You own your pipeline.
23
+
24
+ ---
25
+
26
+ ## πŸ“¦ Installation
27
+
28
+ ### 🐍 Requirements
29
+ - Python 3.8+
30
+ - MongoDB installed locally and running on default port
31
+
32
+ ### πŸ” Install with pip (editable mode for development)
33
+
34
+ ```bash
35
+ git clone https://github.com/ManasRanjanJena253/SwiftPredict.git
36
+ cd SwiftPredict
37
+ pip install -e .
38
+ ```
39
+
40
+ ### Make sure mongodb is running locally. You can install it from [MongoDB](https://www.mongodb.com/try/download/community)
41
+
42
+ ---
43
+
44
+ ## βš™οΈ How It Works
45
+
46
+ ### 🧱 Modular Architecture
47
+
48
+ ```bash
49
+ pgsql
50
+ Copy
51
+ Edit
52
+ SwiftPredict/
53
+ β”œβ”€β”€ backend/
54
+ β”‚ β”œβ”€β”€ app/
55
+ β”‚ β”‚ β”œβ”€β”€ services/ ← AutoML core: training, preprocessing
56
+ β”‚ β”‚ β”œβ”€β”€ client/ ← SDK for prediction and logging
57
+ β”‚ β”‚ β”œβ”€β”€ api/ ← FastAPI endpoints
58
+ β”‚ β”‚ β”œβ”€β”€ core/ ← Global settings, config
59
+ β”‚ β”‚ └── main.py ← API entry point
60
+ β”œβ”€β”€ frontend/ ← React-based UI (optional)
61
+ β”œβ”€β”€ cli.py ← CLI launcher
62
+
63
+ ```
64
+
65
+ ---
66
+
67
+ # πŸ§ͺ Quickstart
68
+ ### 1. Launch the API + UI
69
+ ```bash
70
+ pip install swiftpredict_dev
71
+ swiftpredict launch ui
72
+ ```
73
+
74
+ ---
75
+
76
+ # Train
77
+ >automl = AutoML(logger=logger)
78
+
79
+ >automl.train(X, y, task=task)
80
+
81
+ ---
82
+
83
+ ## βœ… Why Use SwiftPredict?
84
+
85
+ SwiftPredict stands out as a fully local, transparent, and developer-friendly AutoML tool. Here's how it compares to other popular libraries:
86
+
87
+ | **Feature** | **SwiftPredict 🟒** | **Auto-Sklearn βšͺ** | **H2O.ai βšͺ** | **Weka βšͺ** |
88
+ |---------------------------------|---------------------|--------------------|------------------|------------------|
89
+ | Fully Local | βœ… | ❌ | ❌ | βœ… |
90
+ | No Cloud Required | βœ… | ❌ | ❌ | βœ… |
91
+ | Customizable Preprocessing | βœ… | ⚠️ Limited | ⚠️ | ❌ |
92
+ | MongoDB-based Run Tracking | βœ… | ❌ | ❌ | ❌ |
93
+ | Built-in Web UI | βœ… | ❌ | βœ… | ❌ |
94
+ | Python SDK | βœ… | βœ… | ⚠️ Java Only | ⚠️ |
95
+ | CLI Support | βœ… | βœ… | βœ… | βœ… |
96
+
97
+ ---
98
+
99
+ ## πŸ“‰ Current Limitations
100
+ ### Although SwiftPredict is powerful for fast iteration and tracking, it is still in its early phase.
101
+
102
+ ### πŸ”» Known limitations:
103
+ * #### No GPU support yet (only CPU-based scikit-learn and XGBoost models)
104
+ * #### No advanced hyperparameter tuning (Bayesian / Optuna-style)
105
+ * #### No deep learning models (planned)
106
+ * #### Currently supports only classification and regression
107
+ * #### Basic visualizations β€” more dashboards coming
108
+
109
+ ---
110
+
111
+ ## πŸš€ What’s Coming Next?
112
+ ### Here’s our upcoming roadmap :
113
+
114
+ ### 🧠 Algorithmic Improvements
115
+ 1. #### βœ… Model Ensemble (stacking, voting, weighted averaging)
116
+ 2. #### πŸ”² Gradient boosting chains & hybrid methods
117
+ 3. #### πŸ”² Feature selection via SHAP/Permutation importance
118
+ 4. #### 🧼 Preprocessing Advancements
119
+ 5. #### βœ… Advanced binning & quantile transformation
120
+ 6. #### πŸ”² Time-series support
121
+
122
+ ### πŸ›  MLOps & UI
123
+ 1. #### βœ… Streamlit-powered live dashboards
124
+ 2. #### πŸ”² Experiment comparison grid with filters
125
+ 3. #### πŸ”² Model versioning + rollback
126
+
127
+ ---
128
+
129
+ ## πŸ‘₯ Contributing
130
+ ### I welcome all contributors β€” whether you're an AI enthusiast, frontend dev, MLOps engineer, or just someone curious about AutoML.
131
+
132
+ ---
133
+
134
+ ## πŸ‘₯ How to Contribute
135
+
136
+ SwiftPredict is not just a library β€” it's a growing ecosystem. Whether you're a researcher, ML engineer, full-stack dev, or an open-source enthusiast, there are many ways you can contribute and make an impact.
137
+
138
+ ### πŸ”§ Here are some great ways to get involved:
139
+
140
+ - **🧠 Add New Models or Preprocessing Techniques**
141
+ > Enhance SwiftPredict’s AutoML engine by integrating new algorithms (e.g., CatBoost, ExtraTrees), or by writing custom preprocessing utilities like advanced binning, outlier detection, feature generation, etc.
142
+
143
+ - **πŸ§ͺ Test the Library & Build on It**
144
+ > Use SwiftPredict in your own projects and experiment with building custom pipelines. Try writing your own `handle_*` functions or test new model selection strategies β€” if it's useful, consider contributing it!
145
+
146
+ - **πŸ–Ό Improve the Frontend UI**
147
+ > If you're comfortable with React, TypeScript, or Tailwind CSS β€” jump into the frontend and help build powerful dashboards, charts, and run explorers.
148
+
149
+ - **βœ… Write Tests / Add CI/CD Support**
150
+ > Help me build a robust testing suite and automate testing across contributions. Add GitHub Actions, coverage reports, and sanity checks.
151
+
152
+ - **πŸ“ Improve Documentation**
153
+ > Good documentation is the backbone of open source. Help by clarifying usage, adding examples, or expanding on internal logic.
154
+
155
+ - **πŸ’‘ Report Bugs or Suggest Features**
156
+ > Found a bug or have a game-changing idea? Open an issue and we’ll discuss it together!
157
+
158
+ ---
159
+
160
+ ### ⚑ Getting Started Is Simple
161
+
162
+ 1. Fork the repo 🍴
163
+ 2. Create a new branch πŸš€
164
+ 3. Make your changes βœ…
165
+ 4. Submit a pull request with a clear description πŸ“¬
166
+
167
+ We welcome both small and large contributions β€” whether it's fixing typos, creating a new ensemble strategy, or building an entire UI module. **Every contribution counts.**
168
+
169
+ > Let’s build the future of open, local-first AutoML together. πŸ’»πŸ§ͺ
170
+ Let me know if you also want a CONTRIBUTING.md with formatting guidelines, code style, and environment setup instructions. This will boost the credibility of your repo and help new contributors onboard faster.
171
+ ---
172
+
173
+ ## 🀝 Contact
174
+ ### Author: Manas Ranjan Jena
175
+
176
+ ### Email: mranjanjena253@gmail.com
177
+
178
+ ### GitHub: @ManasRanjanJena253
179
+
180
+ ### LinkedIn: manasranjanjena253
181
+
182
+ ---
183
+
184
+ ## πŸ›‘ License
185
+
186
+ ### MIT License β€” You are free to use, modify, and distribute SwiftPredict with proper attribution.
187
+
188
+ ---
189
+
190
+ ## πŸ’‘ Summary
191
+ * #### SwiftPredict is the ideal AutoML tool if you:
192
+ * #### Want full control over your data and pipeline
193
+ * #### Need a fast, local, and visual way to iterate on models
194
+ * #### Prefer Python-native workflows without any vendor lock-in
195
+ * #### Care about privacy, reproducibility, and open-source flexibility
196
+
197
+ * #### No cloud, no noise. Just pure ML automation at your fingertips.
@@ -0,0 +1,14 @@
1
+ from .services.automl_trainer import AutoML
2
+ from .services.preprocessing import handle_null_values, handle_imbalance, handle_cat_columns, detect_task, get_dtype_columns, text_preprocessor
3
+ from .client.swift_predict import SwiftPredict
4
+
5
+ __all__ = [
6
+ "AutoML",
7
+ "handle_null_values",
8
+ "handle_imbalance",
9
+ "handle_cat_columns",
10
+ "detect_task",
11
+ "get_dtype_columns",
12
+ "text_preprocessor",
13
+ "SwiftPredict"
14
+ ]