flowyml 1.1.0__py3-none-any.whl → 1.2.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.
@@ -3,7 +3,7 @@
3
3
  import json
4
4
  import hashlib
5
5
  from pathlib import Path
6
- from typing import Any, Never
6
+ from typing import Any, NoReturn
7
7
  from datetime import datetime
8
8
  from dataclasses import dataclass, asdict
9
9
 
@@ -204,7 +204,7 @@ class VersionedPipeline:
204
204
  if changes["modified"]:
205
205
  pass
206
206
 
207
- def rollback(self, version: str) -> Never:
207
+ def rollback(self, version: str) -> NoReturn:
208
208
  """Rollback to a previous version (not implemented - would need to reconstruct pipeline)."""
209
209
  raise NotImplementedError("Rollback requires pipeline reconstruction from saved state")
210
210
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flowyml
3
- Version: 1.1.0
3
+ Version: 1.2.0
4
4
  Summary: Next-Generation ML Pipeline Framework
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -66,21 +66,25 @@ Description-Content-Type: text/markdown
66
66
 
67
67
  ---
68
68
 
69
- **flowyml** is the comprehensive ML pipeline framework that combines the **simplicity of a Python script** with the **power of an enterprise MLOps platform**.
69
+ **FlowyML** is the comprehensive ML pipeline framework that combines the **simplicity of a Python script** with the **power of an enterprise MLOps platform**.
70
70
 
71
- ## 🚀 Why flowyml?
71
+ ## 🚀 Why FlowyML?
72
72
 
73
- | Feature | flowyml | Traditional Orchestrators |
73
+ | Feature | FlowyML | Traditional Orchestrators |
74
74
  |---------|---------|---------------------------|
75
75
  | **Developer Experience** | 🐍 **Native Python** - No DSLs, no YAML hell. | 📜 Complex YAML or rigid DSLs. |
76
76
  | **Context Awareness** | 🧠 **Auto-Injection** - Params are just function args. | 🔌 Manual wiring of every parameter. |
77
77
  | **Caching** | ⚡ **Multi-Level** - Smart content-hashing & memoization. | 🐢 Basic file-timestamp checking. |
78
78
  | **Asset Management** | 📦 **First-Class Assets** - Models & Datasets with lineage. | 📁 Generic file paths only. |
79
79
  | **Architecture** | 🏗️ **Modular Stacks** - Local, Cloud, Hybrid. | 🔒 Vendor lock-in or complex setup. |
80
+ | **Deployment** | 🏢 **Local or Centralized** - Run locally or deploy as a company-wide hub. | 🧩 Fragmented or cloud-only. |
81
+ | **Flexibility** | 🔌 **Extensive Plugin Ecosystem** | Fixed integration with specific orchestrators or custom tools to be developed. |
82
+ | **Separation of Concerns** | 🪾 **Steps Grouping, branching and conditions** | Handling only orchestrator logic and task execution oriented. |
83
+ | **Features Rich** | 🌟 **Built-in experiment tracking, model leaderboard, human-in-the-loop, notifications, scheduling** | Very limited or none extra features. |
80
84
 
81
85
  ## 🚀 Feature Showcase
82
86
 
83
- flowyml is a complete toolkit for building, debugging, and deploying ML applications.
87
+ FlowyML is a complete toolkit for building, debugging, and deploying ML applications.
84
88
 
85
89
  ### 1. Zero-Boilerplate Orchestration
86
90
  Write pipelines as standard Python functions. No YAML, no DSLs.
@@ -110,18 +114,21 @@ def expensive_processing(data):
110
114
  ```
111
115
 
112
116
  ### 3. 🤖 LLM & GenAI Ready
113
- Trace token usage, latency, and costs automatically.
117
+ Trace token usage, latency, and costs automatically with built-in observability.
114
118
 
115
119
  ```python
116
120
  @step
117
121
  @trace_llm(model="gpt-4", tags=["production"])
118
122
  def generate_summary(text: str):
119
- # flowyml automatically tracks tokens, cost, and latency
123
+ # flowyml automatically tracks:
124
+ # - Token usage (prompt/completion)
125
+ # - Cost estimation
126
+ # - Latency & Success/Failure rates
120
127
  return openai.ChatCompletion.create(...)
121
128
  ```
122
129
 
123
- ### 4. ⚡ Efficient Step Grouping
124
- Group related steps to run in the same container - reduce overhead, maintain clarity.
130
+ ### 4. ⚡ Efficient Step Grouping & Separation of Concerns
131
+ Group related steps to run in the same container - reduce overhead, maintain clarity, and keep logic separate from configuration.
125
132
 
126
133
  ```python
127
134
  # Run preprocessing steps in same container (shares resources)
@@ -238,12 +245,13 @@ pipeline.run(debug=True) # Pauses at breakpoint
238
245
  ```
239
246
 
240
247
  ### 13. 📦 First-Class Assets
241
- Specialized types for ML workflows.
248
+ Assets are not just files; they are first-class citizens with lineage, metadata, and versioning.
242
249
 
243
250
  ```python
244
251
  from flowyml.core import Dataset, Model, Metrics, FeatureSet
245
252
 
246
- dataset = Dataset.create(data=df, name="training_data")
253
+ # Assets track their producer, lineage, and metadata automatically
254
+ dataset = Dataset.create(data=df, name="training_data", metadata={"source": "s3"})
247
255
  model = Model.create(artifact=trained_model, score=0.95)
248
256
  metrics = Metrics.create(values={"accuracy": 0.95})
249
257
  ```
@@ -285,11 +293,46 @@ if drift['drift_detected']:
285
293
  - **🔔 Notifications**: Slack/Email alerts.
286
294
  - **🛡️ Circuit Breakers**: Stop cascading failures.
287
295
 
288
- ### 18. 🔌 Universal Integrations
296
+ ### 18. 🏢 Centralized Hub & Docker
297
+ Ready for the enterprise. Run locally per project or deploy as a centralized entity for the company.
298
+ - **Docker Ready**: Backend and Frontend are fully dockerized.
299
+ - **Centralized Hub**: Share pipelines, artifacts, and experiments across the team.
300
+ - **Remote Execution**: Configure local clients to execute on the remote hub.
301
+
302
+ ### 19. 🔌 Universal Integrations
289
303
  - **ML Frameworks**: PyTorch, TensorFlow, Keras, Scikit-learn, HuggingFace.
290
304
  - **Cloud Providers**: AWS, GCP, Azure (via plugins).
291
305
  - **Tools**: MLflow, Weights & Biases, Great Expectations.
292
306
 
307
+ ### 20. 📂 Project-Based Organization
308
+ Built-in multi-tenancy for managing multiple teams and initiatives.
309
+
310
+ ```python
311
+ from flowyml import Project
312
+
313
+ project = Project("recommendation_system")
314
+ pipeline = project.create_pipeline("training")
315
+
316
+ # All runs, artifacts, and metadata are automatically scoped to the project
317
+ runs = project.list_runs()
318
+ stats = project.get_stats()
319
+ ```
320
+
321
+ ### 21. 📝 Pipeline Templates
322
+ Stop reinventing the wheel. Use pre-built templates for common ML patterns.
323
+
324
+ ```python
325
+ from flowyml.core.templates import create_from_template
326
+
327
+ # Create a standard training pipeline in one line
328
+ pipeline = create_from_template(
329
+ "ml_training",
330
+ data_loader=my_loader,
331
+ trainer=my_trainer,
332
+ evaluator=my_evaluator
333
+ )
334
+ ```
335
+
293
336
  ## 📦 Installation
294
337
 
295
338
  ```bash
@@ -339,6 +382,26 @@ print(f"Run ID: {result.run_id}")
339
382
  print(f"Model Score: {result.outputs['model'].score}")
340
383
  ```
341
384
 
385
+ ### 16. 🌐 Pipeline Versioning
386
+ Git-like versioning for pipelines. Track changes, compare, rollback.
387
+
388
+ ```python
389
+ from flowyml import VersionedPipeline
390
+
391
+ pipeline = VersionedPipeline("training", version="v1.0.0")
392
+ pipeline.add_step(load_data)
393
+ pipeline.save_version()
394
+
395
+ # ... make changes ...
396
+ pipeline.version = "v1.1.0"
397
+ pipeline.save_version()
398
+
399
+ # Compare versions to see exactly what changed (steps, code, context)
400
+ diff = pipeline.compare_with("v1.0.0")
401
+ print(diff["modified_steps"]) # ['train_model']
402
+ print(diff["context_changes"]) # {'learning_rate': {'old': 0.01, 'new': 0.001}}
403
+ ```
404
+
342
405
  ## 🖥️ The flowyml UI
343
406
 
344
407
  Visualize your workflows, inspect artifacts, and monitor runs in real-time.
@@ -34,7 +34,7 @@ flowyml/core/scheduler_config.py,sha256=4VF_AKKU_AcHXURZjE77ff8Uhm2eO7v_nWbs1bq7
34
34
  flowyml/core/step.py,sha256=LOec72XuuHpMuRcz9gc_3JjWlcfYBWz-fVEuLXBiHqA,6822
35
35
  flowyml/core/step_grouping.py,sha256=wBMZbOLZW5ghN8n8J3CmzKFKTaytRzrLkHJ-AwCuP5E,9941
36
36
  flowyml/core/templates.py,sha256=r7WbxZv8-BV3_3oX27ACGSitIsmNbNd4VeitpI2uJeg,6359
37
- flowyml/core/versioning.py,sha256=DvN3teqPR6N2h1nGX3fmfxv9Q62Mh9JpGES39gmnGlw,7074
37
+ flowyml/core/versioning.py,sha256=kpYLJ7YBTfGduZmy45-qcnJLOIFqsIcc6WIisObVKYE,7080
38
38
  flowyml/integrations/__init__.py,sha256=SQWPFwFs_1gLGlJ6TDo2bcFKwBrv1PkwhZvEiELV1ok,28
39
39
  flowyml/integrations/keras.py,sha256=k8U77ti44lGVx5GbTp0bmS_3Ex-8bSRqZQYIJyBDe6M,4507
40
40
  flowyml/monitoring/__init__.py,sha256=nkqmfdvLGMd44NfrIvH2vwVZBJGDVUn-qpei192WJp4,33
@@ -152,8 +152,8 @@ flowyml/utils/logging.py,sha256=PBJDFlGdp1mePS6A3g08dnGAB-v8jTlcNxEsYs9WSBo,1371
152
152
  flowyml/utils/performance.py,sha256=-ne9v9ddEltiKRPk-AerM1R3Gwwd_oCRKtNyHARWd4k,8655
153
153
  flowyml/utils/stack_config.py,sha256=54vN_Ipa4ZUNIWt-D1j1Qeh85VHjfBE5fkaQMRj7-cI,9147
154
154
  flowyml/utils/validation.py,sha256=mClumVro0bl_XXxT1zWPlRI6M_iZa3z2SZ0QUdmTOqs,10199
155
- flowyml-1.1.0.dist-info/METADATA,sha256=UBMkojleimegVvusrrtF85DklSRO6jLnMZKN5JuFJ9c,11656
156
- flowyml-1.1.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
157
- flowyml-1.1.0.dist-info/entry_points.txt,sha256=yuF-dOC4rbyJ2Aqi4CMRBxFhqIRoKO6Mhh6jfiQEVjI,48
158
- flowyml-1.1.0.dist-info/licenses/LICENSE,sha256=5mUUSQiCx-qiHXxla6s0tL-b1ZbDPNQ1Cw13oUPANsU,625
159
- flowyml-1.1.0.dist-info/RECORD,,
155
+ flowyml-1.2.0.dist-info/METADATA,sha256=yXlG92PzVDVHbwODf7Os4J7gsUV1IOfGjdJQHrHrVLk,14257
156
+ flowyml-1.2.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
157
+ flowyml-1.2.0.dist-info/entry_points.txt,sha256=yuF-dOC4rbyJ2Aqi4CMRBxFhqIRoKO6Mhh6jfiQEVjI,48
158
+ flowyml-1.2.0.dist-info/licenses/LICENSE,sha256=5mUUSQiCx-qiHXxla6s0tL-b1ZbDPNQ1Cw13oUPANsU,625
159
+ flowyml-1.2.0.dist-info/RECORD,,