abstractflow 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.
- abstractflow/__init__.py +111 -0
- abstractflow/__main__.py +10 -0
- abstractflow/cli.py +42 -0
- abstractflow/py.typed +1 -0
- abstractflow-0.1.0.dist-info/METADATA +238 -0
- abstractflow-0.1.0.dist-info/RECORD +10 -0
- abstractflow-0.1.0.dist-info/WHEEL +5 -0
- abstractflow-0.1.0.dist-info/entry_points.txt +2 -0
- abstractflow-0.1.0.dist-info/licenses/LICENSE +21 -0
- abstractflow-0.1.0.dist-info/top_level.txt +1 -0
abstractflow/__init__.py
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"""
|
|
2
|
+
AbstractFlow - Diagram-based AI workflow generation.
|
|
3
|
+
|
|
4
|
+
Built on top of AbstractCore for unified LLM provider access.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
__version__ = "0.1.0"
|
|
8
|
+
__author__ = "AbstractFlow Team"
|
|
9
|
+
__email__ = "contact@abstractflow.ai"
|
|
10
|
+
__license__ = "MIT"
|
|
11
|
+
|
|
12
|
+
# Core imports that will be available when the package is fully implemented
|
|
13
|
+
__all__ = [
|
|
14
|
+
"__version__",
|
|
15
|
+
"WorkflowBuilder",
|
|
16
|
+
"Node",
|
|
17
|
+
"LLMNode",
|
|
18
|
+
"TextNode",
|
|
19
|
+
"ConditionalNode",
|
|
20
|
+
"TransformNode",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
# Placeholder implementations - these will be replaced with actual implementations
|
|
24
|
+
class WorkflowBuilder:
|
|
25
|
+
"""
|
|
26
|
+
Visual workflow builder for creating AI-powered diagrams.
|
|
27
|
+
|
|
28
|
+
This is a placeholder implementation. The full version will provide:
|
|
29
|
+
- Drag-and-drop workflow creation
|
|
30
|
+
- Real-time execution monitoring
|
|
31
|
+
- Multi-provider LLM support via AbstractCore
|
|
32
|
+
- Export to various formats
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
def __init__(self):
|
|
36
|
+
"""Initialize a new workflow builder."""
|
|
37
|
+
raise NotImplementedError(
|
|
38
|
+
"AbstractFlow is currently in development. "
|
|
39
|
+
"This placeholder package reserves the PyPI name. "
|
|
40
|
+
"Follow https://github.com/lpalbou/AbstractFlow for updates."
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class Node:
|
|
45
|
+
"""Base class for all workflow nodes."""
|
|
46
|
+
|
|
47
|
+
def __init__(self, node_id: str):
|
|
48
|
+
"""Initialize a workflow node."""
|
|
49
|
+
raise NotImplementedError(
|
|
50
|
+
"AbstractFlow is currently in development. "
|
|
51
|
+
"This placeholder package reserves the PyPI name. "
|
|
52
|
+
"Follow https://github.com/lpalbou/AbstractFlow for updates."
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class LLMNode(Node):
|
|
57
|
+
"""Node for LLM-based text generation and processing."""
|
|
58
|
+
|
|
59
|
+
def __init__(self, provider: str, model: str, **kwargs):
|
|
60
|
+
"""Initialize an LLM node with AbstractCore provider."""
|
|
61
|
+
raise NotImplementedError(
|
|
62
|
+
"AbstractFlow is currently in development. "
|
|
63
|
+
"This placeholder package reserves the PyPI name. "
|
|
64
|
+
"Follow https://github.com/lpalbou/AbstractFlow for updates."
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
class TextNode(Node):
|
|
69
|
+
"""Node for text input/output operations."""
|
|
70
|
+
|
|
71
|
+
def __init__(self, text_id: str):
|
|
72
|
+
"""Initialize a text node."""
|
|
73
|
+
raise NotImplementedError(
|
|
74
|
+
"AbstractFlow is currently in development. "
|
|
75
|
+
"This placeholder package reserves the PyPI name. "
|
|
76
|
+
"Follow https://github.com/lpalbou/AbstractFlow for updates."
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class ConditionalNode(Node):
|
|
81
|
+
"""Node for conditional branching in workflows."""
|
|
82
|
+
|
|
83
|
+
def __init__(self, condition: str):
|
|
84
|
+
"""Initialize a conditional node."""
|
|
85
|
+
raise NotImplementedError(
|
|
86
|
+
"AbstractFlow is currently in development. "
|
|
87
|
+
"This placeholder package reserves the PyPI name. "
|
|
88
|
+
"Follow https://github.com/lpalbou/AbstractFlow for updates."
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
class TransformNode(Node):
|
|
93
|
+
"""Node for data transformation operations."""
|
|
94
|
+
|
|
95
|
+
def __init__(self, transform_func: str):
|
|
96
|
+
"""Initialize a transform node."""
|
|
97
|
+
raise NotImplementedError(
|
|
98
|
+
"AbstractFlow is currently in development. "
|
|
99
|
+
"This placeholder package reserves the PyPI name. "
|
|
100
|
+
"Follow https://github.com/lpalbou/AbstractFlow for updates."
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def get_version() -> str:
|
|
105
|
+
"""Get the current version of AbstractFlow."""
|
|
106
|
+
return __version__
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def is_development_version() -> bool:
|
|
110
|
+
"""Check if this is a development/placeholder version."""
|
|
111
|
+
return True # This will be False in the actual implementation
|
abstractflow/__main__.py
ADDED
abstractflow/cli.py
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Command-line interface for AbstractFlow.
|
|
3
|
+
|
|
4
|
+
This is a placeholder CLI that will be expanded in future versions.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import sys
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def main(args: Optional[List[str]] = None) -> int:
|
|
12
|
+
"""
|
|
13
|
+
Main entry point for the AbstractFlow CLI.
|
|
14
|
+
|
|
15
|
+
Args:
|
|
16
|
+
args: Command-line arguments (defaults to sys.argv[1:])
|
|
17
|
+
|
|
18
|
+
Returns:
|
|
19
|
+
Exit code (0 for success, non-zero for error)
|
|
20
|
+
"""
|
|
21
|
+
if args is None:
|
|
22
|
+
args = sys.argv[1:]
|
|
23
|
+
|
|
24
|
+
print("🚧 AbstractFlow CLI - Coming Soon!")
|
|
25
|
+
print()
|
|
26
|
+
print("AbstractFlow is currently in development.")
|
|
27
|
+
print("This placeholder package reserves the PyPI name.")
|
|
28
|
+
print()
|
|
29
|
+
print("Planned CLI features:")
|
|
30
|
+
print(" • abstractflow create <workflow> - Create new workflow")
|
|
31
|
+
print(" • abstractflow run <workflow> - Execute workflow")
|
|
32
|
+
print(" • abstractflow validate <workflow> - Validate workflow")
|
|
33
|
+
print(" • abstractflow export <workflow> - Export workflow")
|
|
34
|
+
print(" • abstractflow serve - Start workflow server")
|
|
35
|
+
print()
|
|
36
|
+
print("Follow https://github.com/lpalbou/AbstractFlow for updates!")
|
|
37
|
+
|
|
38
|
+
return 0
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
if __name__ == "__main__":
|
|
42
|
+
sys.exit(main())
|
abstractflow/py.typed
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Marker file for PEP 561 - indicates this package supports type checking
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: abstractflow
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Diagram-based AI workflow generation built on AbstractCore
|
|
5
|
+
Author-email: AbstractFlow Team <contact@abstractflow.ai>
|
|
6
|
+
Maintainer-email: AbstractFlow Team <contact@abstractflow.ai>
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
Project-URL: Homepage, https://github.com/lpalbou/AbstractFlow
|
|
9
|
+
Project-URL: Documentation, https://abstractflow.readthedocs.io
|
|
10
|
+
Project-URL: Repository, https://github.com/lpalbou/AbstractFlow
|
|
11
|
+
Project-URL: Bug Tracker, https://github.com/lpalbou/AbstractFlow/issues
|
|
12
|
+
Project-URL: Changelog, https://github.com/lpalbou/AbstractFlow/blob/main/CHANGELOG.md
|
|
13
|
+
Keywords: ai,workflow,diagram,llm,automation,visual-programming,abstractcore,machine-learning
|
|
14
|
+
Classifier: Development Status :: 2 - Pre-Alpha
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Intended Audience :: Science/Research
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
25
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
26
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
27
|
+
Requires-Python: >=3.8
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
License-File: LICENSE
|
|
30
|
+
Requires-Dist: abstractcore>=2.0.0
|
|
31
|
+
Requires-Dist: pydantic>=2.0.0
|
|
32
|
+
Requires-Dist: typing-extensions>=4.0.0
|
|
33
|
+
Provides-Extra: dev
|
|
34
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
35
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
36
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
37
|
+
Requires-Dist: isort>=5.12.0; extra == "dev"
|
|
38
|
+
Requires-Dist: flake8>=6.0.0; extra == "dev"
|
|
39
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
40
|
+
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
|
41
|
+
Provides-Extra: server
|
|
42
|
+
Requires-Dist: fastapi>=0.100.0; extra == "server"
|
|
43
|
+
Requires-Dist: uvicorn[standard]>=0.23.0; extra == "server"
|
|
44
|
+
Requires-Dist: websockets>=11.0.0; extra == "server"
|
|
45
|
+
Provides-Extra: ui
|
|
46
|
+
Requires-Dist: streamlit>=1.28.0; extra == "ui"
|
|
47
|
+
Requires-Dist: plotly>=5.15.0; extra == "ui"
|
|
48
|
+
Requires-Dist: networkx>=3.1.0; extra == "ui"
|
|
49
|
+
Provides-Extra: all
|
|
50
|
+
Requires-Dist: abstractflow[dev,server,ui]; extra == "all"
|
|
51
|
+
Dynamic: license-file
|
|
52
|
+
|
|
53
|
+
# AbstractFlow
|
|
54
|
+
|
|
55
|
+
**Diagram-Based AI Workflow Generation**
|
|
56
|
+
|
|
57
|
+
> 🚧 **Coming Soon** - This project is currently in early development. We're reserving the PyPI name for the upcoming release.
|
|
58
|
+
|
|
59
|
+
AbstractFlow is an innovative Python library that enables visual, diagram-based creation and execution of AI workflows. Built on top of [AbstractCore](https://github.com/lpalbou/AbstractCore), it provides an intuitive interface for designing complex AI pipelines through interactive diagrams.
|
|
60
|
+
|
|
61
|
+
## 🎯 Vision
|
|
62
|
+
|
|
63
|
+
AbstractFlow aims to democratize AI workflow creation by providing:
|
|
64
|
+
|
|
65
|
+
- **Visual Workflow Design**: Create AI workflows using intuitive drag-and-drop diagrams
|
|
66
|
+
- **Multi-Provider Support**: Leverage any LLM provider through AbstractCore's unified interface
|
|
67
|
+
- **Real-time Execution**: Watch your workflows execute in real-time with live feedback
|
|
68
|
+
- **Collaborative Development**: Share and collaborate on workflow designs
|
|
69
|
+
- **Production Ready**: Deploy workflows to production with built-in monitoring and scaling
|
|
70
|
+
|
|
71
|
+
## 🚀 Planned Features
|
|
72
|
+
|
|
73
|
+
### Core Capabilities
|
|
74
|
+
- **Diagram Editor**: Web-based visual editor for workflow creation
|
|
75
|
+
- **Node Library**: Pre-built nodes for common AI operations (text generation, analysis, transformation)
|
|
76
|
+
- **Custom Nodes**: Create custom nodes with your own logic and AI models
|
|
77
|
+
- **Flow Control**: Conditional branching, loops, and parallel execution
|
|
78
|
+
- **Data Transformation**: Built-in data processing and transformation capabilities
|
|
79
|
+
|
|
80
|
+
### AI Integration
|
|
81
|
+
- **Universal LLM Support**: Works with OpenAI, Anthropic, Ollama, and all AbstractCore providers
|
|
82
|
+
- **Tool Calling**: Seamless integration with external APIs and services
|
|
83
|
+
- **Structured Output**: Type-safe data flow between workflow nodes
|
|
84
|
+
- **Streaming Support**: Real-time processing for interactive applications
|
|
85
|
+
|
|
86
|
+
### Deployment & Monitoring
|
|
87
|
+
- **Cloud Deployment**: One-click deployment to major cloud platforms
|
|
88
|
+
- **Monitoring Dashboard**: Real-time workflow execution monitoring
|
|
89
|
+
- **Version Control**: Git-based workflow versioning and collaboration
|
|
90
|
+
- **API Generation**: Automatic REST API generation from workflows
|
|
91
|
+
|
|
92
|
+
## 🏗️ Architecture
|
|
93
|
+
|
|
94
|
+
AbstractFlow is built on a robust foundation:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
|
98
|
+
│ Diagram UI │ │ Workflow Engine │ │ AbstractCore │
|
|
99
|
+
│ │────│ │────│ │
|
|
100
|
+
│ Visual Editor │ │ Execution Logic │ │ LLM Providers │
|
|
101
|
+
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
- **Frontend**: React-based diagram editor with real-time collaboration
|
|
105
|
+
- **Backend**: Python workflow execution engine with FastAPI
|
|
106
|
+
- **AI Layer**: AbstractCore for unified LLM provider access
|
|
107
|
+
- **Storage**: Workflow definitions, execution history, and metadata
|
|
108
|
+
|
|
109
|
+
## 🎨 Use Cases
|
|
110
|
+
|
|
111
|
+
### Business Process Automation
|
|
112
|
+
- Customer support ticket routing and response generation
|
|
113
|
+
- Document analysis and summarization pipelines
|
|
114
|
+
- Content creation and review workflows
|
|
115
|
+
|
|
116
|
+
### Data Processing
|
|
117
|
+
- Multi-step data analysis with AI insights
|
|
118
|
+
- Automated report generation from raw data
|
|
119
|
+
- Real-time data enrichment and validation
|
|
120
|
+
|
|
121
|
+
### Creative Workflows
|
|
122
|
+
- Multi-stage content creation (research → draft → review → publish)
|
|
123
|
+
- Interactive storytelling and narrative generation
|
|
124
|
+
- Collaborative writing and editing processes
|
|
125
|
+
|
|
126
|
+
### Research & Development
|
|
127
|
+
- Hypothesis generation and testing workflows
|
|
128
|
+
- Literature review and synthesis automation
|
|
129
|
+
- Experimental design and analysis pipelines
|
|
130
|
+
|
|
131
|
+
## 🛠️ Technology Stack
|
|
132
|
+
|
|
133
|
+
- **Core**: Python 3.8+ with AsyncIO support
|
|
134
|
+
- **AI Integration**: [AbstractCore](https://github.com/lpalbou/AbstractCore) for LLM provider abstraction
|
|
135
|
+
- **Web Framework**: FastAPI for high-performance API server
|
|
136
|
+
- **Frontend**: React with TypeScript for the diagram editor
|
|
137
|
+
- **Database**: PostgreSQL for workflow storage, Redis for caching
|
|
138
|
+
- **Deployment**: Docker containers with Kubernetes support
|
|
139
|
+
|
|
140
|
+
## 📦 Installation (Coming Soon)
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# Install AbstractFlow
|
|
144
|
+
pip install abstractflow
|
|
145
|
+
|
|
146
|
+
# Or with all optional dependencies
|
|
147
|
+
pip install abstractflow[all]
|
|
148
|
+
|
|
149
|
+
# Development installation
|
|
150
|
+
pip install abstractflow[dev]
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## 🚀 Quick Start (Preview)
|
|
154
|
+
|
|
155
|
+
```python
|
|
156
|
+
from abstractflow import WorkflowBuilder, TextNode, LLMNode
|
|
157
|
+
|
|
158
|
+
# Create a simple workflow
|
|
159
|
+
workflow = WorkflowBuilder()
|
|
160
|
+
|
|
161
|
+
# Add nodes
|
|
162
|
+
input_node = workflow.add_node(TextNode("user_input"))
|
|
163
|
+
llm_node = workflow.add_node(LLMNode(
|
|
164
|
+
provider="openai",
|
|
165
|
+
model="gpt-4o-mini",
|
|
166
|
+
prompt="Analyze this text: {user_input}"
|
|
167
|
+
))
|
|
168
|
+
output_node = workflow.add_node(TextNode("analysis_result"))
|
|
169
|
+
|
|
170
|
+
# Connect nodes
|
|
171
|
+
workflow.connect(input_node, llm_node)
|
|
172
|
+
workflow.connect(llm_node, output_node)
|
|
173
|
+
|
|
174
|
+
# Execute workflow
|
|
175
|
+
result = await workflow.execute({
|
|
176
|
+
"user_input": "The future of AI is bright and full of possibilities."
|
|
177
|
+
})
|
|
178
|
+
|
|
179
|
+
print(result["analysis_result"])
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## 🎯 Roadmap
|
|
183
|
+
|
|
184
|
+
### Phase 1: Foundation (Q1 2025)
|
|
185
|
+
- [ ] Core workflow engine
|
|
186
|
+
- [ ] Basic node types (LLM, Transform, Condition)
|
|
187
|
+
- [ ] CLI interface for workflow execution
|
|
188
|
+
- [ ] AbstractCore integration
|
|
189
|
+
|
|
190
|
+
### Phase 2: Visual Editor (Q2 2025)
|
|
191
|
+
- [ ] Web-based diagram editor
|
|
192
|
+
- [ ] Real-time collaboration features
|
|
193
|
+
- [ ] Workflow templates and examples
|
|
194
|
+
- [ ] Import/export functionality
|
|
195
|
+
|
|
196
|
+
### Phase 3: Advanced Features (Q3 2025)
|
|
197
|
+
- [ ] Custom node development SDK
|
|
198
|
+
- [ ] Advanced flow control (loops, parallel execution)
|
|
199
|
+
- [ ] Monitoring and analytics dashboard
|
|
200
|
+
- [ ] Cloud deployment integration
|
|
201
|
+
|
|
202
|
+
### Phase 4: Enterprise (Q4 2025)
|
|
203
|
+
- [ ] Enterprise security features
|
|
204
|
+
- [ ] Advanced monitoring and alerting
|
|
205
|
+
- [ ] Multi-tenant support
|
|
206
|
+
- [ ] Professional services and support
|
|
207
|
+
|
|
208
|
+
## 🤝 Contributing
|
|
209
|
+
|
|
210
|
+
We welcome contributions from the community! Once development begins, you'll be able to:
|
|
211
|
+
|
|
212
|
+
- Report bugs and request features
|
|
213
|
+
- Submit pull requests for improvements
|
|
214
|
+
- Create and share workflow templates
|
|
215
|
+
- Contribute to documentation
|
|
216
|
+
|
|
217
|
+
## 📄 License
|
|
218
|
+
|
|
219
|
+
AbstractFlow will be released under the MIT License, ensuring it remains free and open-source for all users.
|
|
220
|
+
|
|
221
|
+
## 🔗 Related Projects
|
|
222
|
+
|
|
223
|
+
- **[AbstractCore](https://github.com/lpalbou/AbstractCore)**: The unified LLM interface powering AbstractFlow
|
|
224
|
+
- **[AbstractCore Documentation](http://www.abstractcore.ai/)**: Comprehensive guides and API reference
|
|
225
|
+
|
|
226
|
+
## 📞 Contact
|
|
227
|
+
|
|
228
|
+
For early access, partnerships, or questions about AbstractFlow:
|
|
229
|
+
|
|
230
|
+
- **GitHub**: [Issues and Discussions](https://github.com/lpalbou/AbstractFlow) (coming soon)
|
|
231
|
+
- **Email**: Contact through AbstractCore channels
|
|
232
|
+
- **Website**: [www.abstractflow.ai](http://www.abstractflow.ai) (coming soon)
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
**AbstractFlow** - Visualize, Create, Execute. The future of AI workflow development is here.
|
|
237
|
+
|
|
238
|
+
> Built with ❤️ on top of [AbstractCore](https://github.com/lpalbou/AbstractCore)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
abstractflow/__init__.py,sha256=1TSNs83F1JDWeYugCphVaHSkBwVk-uFLocK01YReCtU,3532
|
|
2
|
+
abstractflow/__main__.py,sha256=55J_F_eUrulW9Y-ImavC5XqQy3jRpmJKTRksQf9OOwM,173
|
|
3
|
+
abstractflow/cli.py,sha256=mz3eD_xpgowhr47Ietyvtj7S6kHa7afTKmDH5ShlDvM,1235
|
|
4
|
+
abstractflow/py.typed,sha256=cZhjU4bgcfkAJgWW8rlBPwh-6sWO56Oixl8mV1RlwjI,74
|
|
5
|
+
abstractflow-0.1.0.dist-info/licenses/LICENSE,sha256=3KHWoiN3qgyUUU_7dYBp8Psby9dx2FpUFfZiRbNL_34,1074
|
|
6
|
+
abstractflow-0.1.0.dist-info/METADATA,sha256=uYJ7bcrgvgC5VRREnVm-Jl2GZqaTMikOyJ8GltsvTHs,9380
|
|
7
|
+
abstractflow-0.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
8
|
+
abstractflow-0.1.0.dist-info/entry_points.txt,sha256=Gc916Xwp7HMEOUlxFYHn7lMRrOT3Ah0Q_3tP9S8LHP0,55
|
|
9
|
+
abstractflow-0.1.0.dist-info/top_level.txt,sha256=bimZZ-20W8CxqozcCSWc_NlDus4gBMlKsMZC7xQxzww,13
|
|
10
|
+
abstractflow-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 AbstractFlow Team
|
|
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
|
+
abstractflow
|