flowgraph 0.1.1__cp313-cp313-win_amd64.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.
Files changed (47) hide show
  1. flowgraph/__init__.py +5 -0
  2. flowgraph/adapters/__init__.py +101 -0
  3. flowgraph/adapters/controls.cp313-win_amd64.pyd +0 -0
  4. flowgraph/adapters/data_types.cp313-win_amd64.pyd +0 -0
  5. flowgraph/adapters/documentation.cp313-win_amd64.pyd +0 -0
  6. flowgraph/adapters/field_ops.cp313-win_amd64.pyd +0 -0
  7. flowgraph/adapters/filters.cp313-win_amd64.pyd +0 -0
  8. flowgraph/adapters/image_tools.cp313-win_amd64.pyd +0 -0
  9. flowgraph/adapters/mesh_creation_tools.cp313-win_amd64.pyd +0 -0
  10. flowgraph/adapters/mesh_generations.cp313-win_amd64.pyd +0 -0
  11. flowgraph/adapters/mesh_ops.cp313-win_amd64.pyd +0 -0
  12. flowgraph/adapters/plaid_bridge.cp313-win_amd64.pyd +0 -0
  13. flowgraph/adapters/readers.cp313-win_amd64.pyd +0 -0
  14. flowgraph/adapters/simple_sources.cp313-win_amd64.pyd +0 -0
  15. flowgraph/adapters/sinks.cp313-win_amd64.pyd +0 -0
  16. flowgraph/adapters/user_code.cp313-win_amd64.pyd +0 -0
  17. flowgraph/adapters/workflow.cp313-win_amd64.pyd +0 -0
  18. flowgraph/adapters/workflow_interfaces.cp313-win_amd64.pyd +0 -0
  19. flowgraph/adapters/writers.cp313-win_amd64.pyd +0 -0
  20. flowgraph/application/__init__.py +1 -0
  21. flowgraph/application/node_registry.cp313-win_amd64.pyd +0 -0
  22. flowgraph/application/port_conversions.cp313-win_amd64.pyd +0 -0
  23. flowgraph/application/workflow_cli.cp313-win_amd64.pyd +0 -0
  24. flowgraph/application/workflow_core.cp313-win_amd64.pyd +0 -0
  25. flowgraph/application/workflow_io.cp313-win_amd64.pyd +0 -0
  26. flowgraph/core_cli.cp313-win_amd64.pyd +0 -0
  27. flowgraph/domain/__init__.py +5 -0
  28. flowgraph/domain/mesh_document.cp313-win_amd64.pyd +0 -0
  29. flowgraph/licensing/__init__.py +14 -0
  30. flowgraph/licensing/features.cp313-win_amd64.pyd +0 -0
  31. flowgraph/licensing/keys.py +16 -0
  32. flowgraph/licensing/license.cp313-win_amd64.pyd +0 -0
  33. flowgraph/licensing/token.cp313-win_amd64.pyd +0 -0
  34. flowgraph/resources.py +24 -0
  35. flowgraph/testdata/AllFilters.json +390 -0
  36. flowgraph/testdata/FlowGraph.h5 +0 -0
  37. flowgraph/testdata/FlowGraph.stl +0 -0
  38. flowgraph/testdata/FlowGraph.xdmf +22 -0
  39. flowgraph/testdata/SimpleReadMesh.json +70 -0
  40. flowgraph/testdata/SpherePoints.csv +83 -0
  41. flowgraph/testdata/muscat-muscat-mesh-conversion.json +101 -0
  42. flowgraph/version.py +3 -0
  43. flowgraph-0.1.1.dist-info/METADATA +14 -0
  44. flowgraph-0.1.1.dist-info/RECORD +47 -0
  45. flowgraph-0.1.1.dist-info/WHEEL +5 -0
  46. flowgraph-0.1.1.dist-info/entry_points.txt +2 -0
  47. flowgraph-0.1.1.dist-info/top_level.txt +1 -0
flowgraph/__init__.py ADDED
@@ -0,0 +1,5 @@
1
+ """FlowGraph finite-element mesh workspace."""
2
+
3
+ from .version import __version__
4
+
5
+ __all__ = ["__version__"]
@@ -0,0 +1,101 @@
1
+ """Grouped catalog of workflow adapters exposed to application composition."""
2
+
3
+ from dataclasses import dataclass
4
+
5
+ from flowgraph.adapters.controls import AVAILABLE_NODES as CONTROL_AVAILABLE_NODES
6
+ from flowgraph.adapters.documentation import AVAILABLE_NODES as DOCUMENTATION_AVAILABLE_NODES
7
+ from flowgraph.adapters.field_ops import AVAILABLE_NODES as FIELD_OPS_AVAILABLE_NODES
8
+ from flowgraph.adapters.filters import (
9
+ CREATE_MUSCAT_ELEMENT_FILTER,
10
+ FILTER_MESH_WITH_MUSCAT,
11
+ )
12
+ from flowgraph.adapters.image_tools import AVAILABLE_NODES as IMAGE_TOOLS_AVAILABLE_NODES
13
+ from flowgraph.adapters.mesh_creation_tools import AVAILABLE_NODES as MESH_CREATION_AVAILABLE_NODES
14
+ from flowgraph.adapters.mesh_generations import CSV_TO_MESH
15
+ from flowgraph.adapters.mesh_ops import AVAILABLE_NODES as MESH_OPS_AVAILABLE_NODES
16
+ from flowgraph.adapters.plaid_bridge import AVAILABLE_NODES as PLAID_AVAILABLE_NODES
17
+ from flowgraph.adapters.readers import LOAD_CSV, LOAD_MESHIO, LOAD_MESHLANE, LOAD_MUSCAT
18
+ from flowgraph.adapters.simple_sources import AVAILABLE_NODES as SIMPLE_SOURCES_AVAILABLE_NODES
19
+ from flowgraph.adapters.sinks import AVAILABLE_NODES as SINKS_AVAILABLE_NODES
20
+ from flowgraph.adapters.user_code import AVAILABLE_NODES as USER_CODE_AVAILABLE_NODES
21
+ from flowgraph.adapters.workflow import AVAILABLE_NODES as WORKFLOW_AVAILABLE_NODES
22
+ from flowgraph.adapters.workflow_interfaces import (
23
+ AVAILABLE_NODES as WORKFLOW_INTERFACE_AVAILABLE_NODES,
24
+ )
25
+ from flowgraph.adapters.writers import WRITE_MESHIO, WRITE_MESHLANE, WRITE_MUSCAT
26
+ from flowgraph.application.workflow_core import NodeDefinition
27
+
28
+
29
+ @dataclass(frozen=True)
30
+ class AdapterGroup:
31
+ """A named, ordered group of workflow nodes presented in one UI menu."""
32
+
33
+ label: str
34
+ node_definitions: tuple[NodeDefinition, ...] = ()
35
+ subgroups: tuple["AdapterGroup", ...] = ()
36
+
37
+ def all_node_definitions(self) -> tuple[NodeDefinition, ...]:
38
+ """Return definitions in this group and all nested groups."""
39
+ return self.node_definitions + tuple(
40
+ definition
41
+ for subgroup in self.subgroups
42
+ for definition in subgroup.all_node_definitions()
43
+ )
44
+
45
+
46
+ @dataclass(frozen=True)
47
+ class AdapterCatalog:
48
+ """Single application-facing catalog for adapter nodes and their UI metadata."""
49
+
50
+ groups: tuple[AdapterGroup, ...]
51
+
52
+ @property
53
+ def node_definitions(self) -> tuple[NodeDefinition, ...]:
54
+ """Return all adapter definitions in group and menu order."""
55
+ return tuple(
56
+ definition for group in self.groups for definition in group.all_node_definitions()
57
+ )
58
+
59
+ def require(self, definition_id: str) -> NodeDefinition:
60
+ """Return an adapter definition by ID or raise a descriptive key error."""
61
+ definition = next(
62
+ (candidate for candidate in self.node_definitions if candidate.id == definition_id),
63
+ None,
64
+ )
65
+ if definition is None:
66
+ raise KeyError(f"Unknown adapter node definition: {definition_id!r}")
67
+ return definition
68
+
69
+
70
+ ADAPTERS = AdapterCatalog(
71
+ groups=(
72
+ AdapterGroup("Inputs", SIMPLE_SOURCES_AVAILABLE_NODES),
73
+ AdapterGroup(
74
+ "Mesh Tools",
75
+ subgroups=(
76
+ AdapterGroup("Readers", (LOAD_MUSCAT, LOAD_MESHIO, LOAD_MESHLANE, LOAD_CSV)),
77
+ AdapterGroup("Mesh Gens", (CSV_TO_MESH,)),
78
+ AdapterGroup("Mesh Creation", MESH_CREATION_AVAILABLE_NODES),
79
+ AdapterGroup(
80
+ "Filters",
81
+ (CREATE_MUSCAT_ELEMENT_FILTER, FILTER_MESH_WITH_MUSCAT),
82
+ ),
83
+ AdapterGroup("Mesh Ops", MESH_OPS_AVAILABLE_NODES),
84
+ AdapterGroup("Field Ops", FIELD_OPS_AVAILABLE_NODES),
85
+ AdapterGroup("Writers", (WRITE_MUSCAT, WRITE_MESHLANE, WRITE_MESHIO)),
86
+ ),
87
+ ),
88
+ AdapterGroup("Controls", CONTROL_AVAILABLE_NODES),
89
+ AdapterGroup("Image Tools", IMAGE_TOOLS_AVAILABLE_NODES),
90
+ AdapterGroup("Code", USER_CODE_AVAILABLE_NODES),
91
+ AdapterGroup("Workflow", WORKFLOW_INTERFACE_AVAILABLE_NODES + WORKFLOW_AVAILABLE_NODES),
92
+ AdapterGroup("Sinks", SINKS_AVAILABLE_NODES),
93
+ AdapterGroup("Doc", DOCUMENTATION_AVAILABLE_NODES),
94
+ AdapterGroup(
95
+ "External Tools",
96
+ subgroups=(AdapterGroup("Plaid", PLAID_AVAILABLE_NODES),),
97
+ ),
98
+ ),
99
+ )
100
+
101
+ __all__ = ["ADAPTERS"]
@@ -0,0 +1 @@
1
+ """Application commands, history, validation, and workflow services."""
Binary file
@@ -0,0 +1,5 @@
1
+ """UI-independent mesh domain objects."""
2
+
3
+ from flowgraph.domain.mesh_document import MeshDocument
4
+
5
+ __all__ = ["MeshDocument"]
@@ -0,0 +1,14 @@
1
+ """Runtime license loading and feature entitlement checks."""
2
+
3
+ from .features import FEATURE_ADVANCED_ANALYSIS, FEATURE_PDF_EXPORT
4
+ from .license import License, LicenseError, load_license, require_feature, require_valid_license
5
+
6
+ __all__ = [
7
+ "FEATURE_ADVANCED_ANALYSIS",
8
+ "FEATURE_PDF_EXPORT",
9
+ "License",
10
+ "LicenseError",
11
+ "load_license",
12
+ "require_feature",
13
+ "require_valid_license",
14
+ ]
@@ -0,0 +1,16 @@
1
+ """Embedded public keys for runtime license verification.
2
+
3
+ Replace the non-production entry below with the administrator's exported public
4
+ key before shipping a licensed build. This module must never contain a private key.
5
+ """
6
+
7
+ from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey
8
+
9
+ # An empty registry makes an unconfigured checkout safely unlicensed. Production
10
+ # builds should add entries as: "2026-01": Ed25519PublicKey.from_public_bytes(...).
11
+ PUBLIC_KEYS: dict[str, Ed25519PublicKey] = {
12
+ # Non-production placeholder key. Replace this value before shipping.
13
+ "2026-09-15": Ed25519PublicKey.from_public_bytes(
14
+ bytes.fromhex("f3b4ae3934e18364e58925f1bb752e0ab780ce43fdd517632179f7bb0164388d")
15
+ )
16
+ }
flowgraph/resources.py ADDED
@@ -0,0 +1,24 @@
1
+ """Current-working-directory-independent access to packaged FlowGraph resources."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pathlib import Path
6
+
7
+ PACKAGE_ROOT = Path(__file__).resolve().parent
8
+
9
+
10
+ def package_resource_path(*parts: str, required: bool = True) -> Path:
11
+ """Return a path inside the installed package and optionally require it to exist.
12
+
13
+ PyInstaller gives bundled modules meaningful ``__file__`` paths inside its
14
+ collected application directory, so this works in source, wheel, and onedir
15
+ executions without depending on the process working directory.
16
+ """
17
+ path = PACKAGE_ROOT.joinpath(*parts)
18
+ if required and not path.exists():
19
+ resource = "/".join(parts) or "."
20
+ raise FileNotFoundError(
21
+ f"Required FlowGraph resource {resource!r} was not included at {path}. "
22
+ "Rebuild the package from packaging/FlowGraph.spec."
23
+ )
24
+ return path
@@ -0,0 +1,390 @@
1
+ {
2
+ "edges": [
3
+ {
4
+ "source_node": "set-list[str]-1",
5
+ "source_port": "value",
6
+ "target_node": "load-csv-2",
7
+ "target_port": "value"
8
+ },
9
+ {
10
+ "source_node": "load-csv-2",
11
+ "source_port": "mesh",
12
+ "target_node": "filter-mesh-muscat-3",
13
+ "target_port": "mesh"
14
+ },
15
+ {
16
+ "source_node": "create-muscat-element-filter-4",
17
+ "source_port": "filter",
18
+ "target_node": "filter-mesh-muscat-3",
19
+ "target_port": "filter"
20
+ },
21
+ {
22
+ "source_node": "set-string-7",
23
+ "source_port": "value",
24
+ "target_node": "load-csv-1",
25
+ "target_port": "path"
26
+ },
27
+ {
28
+ "source_node": "load-csv-1",
29
+ "source_port": "table",
30
+ "target_node": "load-csv-2",
31
+ "target_port": "table"
32
+ },
33
+ {
34
+ "source_node": "select-file-7",
35
+ "source_port": "path",
36
+ "target_node": "load-muscat",
37
+ "target_port": "path"
38
+ },
39
+ {
40
+ "source_node": "select-file-7",
41
+ "source_port": "path",
42
+ "target_node": "load-meshio-10",
43
+ "target_port": "path"
44
+ },
45
+ {
46
+ "source_node": "filter-mesh-muscat-3",
47
+ "source_port": "mesh",
48
+ "target_node": "write-muscat-12",
49
+ "target_port": "mesh"
50
+ },
51
+ {
52
+ "source_node": "set-string-15",
53
+ "source_port": "value",
54
+ "target_node": "write-muscat-12",
55
+ "target_port": "filename"
56
+ },
57
+ {
58
+ "source_node": "Output File Name",
59
+ "source_port": "value",
60
+ "target_node": "write-meshio-13",
61
+ "target_port": "filename"
62
+ },
63
+ {
64
+ "source_node": "load-muscat",
65
+ "source_port": "mesh",
66
+ "target_node": "write-meshio-13",
67
+ "target_port": "mesh"
68
+ },
69
+ {
70
+ "source_node": "load-muscat",
71
+ "source_port": "mesh",
72
+ "target_node": "mesh-sink-9",
73
+ "target_port": "mesh"
74
+ },
75
+ {
76
+ "source_node": "select-server-file_1",
77
+ "source_port": "path",
78
+ "target_node": "select-file-7",
79
+ "target_port": "path"
80
+ },
81
+ {
82
+ "source_node": "load-csv-2",
83
+ "source_port": "mesh",
84
+ "target_node": "delaunay-3d_1",
85
+ "target_port": "meshDocument"
86
+ },
87
+ {
88
+ "source_node": "delaunay-3d_1",
89
+ "source_port": "meshDocument",
90
+ "target_node": "mesh-sink-5",
91
+ "target_port": "mesh"
92
+ }
93
+ ],
94
+ "format": "flowgraph-workflow",
95
+ "nodes": [
96
+ {
97
+ "definition_id": "load-muscat",
98
+ "id": "load-muscat",
99
+ "parameters": {},
100
+ "position": {
101
+ "x": -49.71284722813971,
102
+ "y": 448.4093703781832
103
+ }
104
+ },
105
+ {
106
+ "definition_id": "set-list[str]",
107
+ "id": "set-list[str]-1",
108
+ "parameters": {
109
+ "value": "['Points_0','Points_1','Points_2']"
110
+ },
111
+ "position": {
112
+ "x": -390.29208936126156,
113
+ "y": -142.6570986112609
114
+ }
115
+ },
116
+ {
117
+ "definition_id": "csv-to-mesh",
118
+ "id": "load-csv-2",
119
+ "parameters": {},
120
+ "position": {
121
+ "x": 387.3368913208138,
122
+ "y": -632.6821670740044
123
+ }
124
+ },
125
+ {
126
+ "definition_id": "filter-mesh-muscat",
127
+ "id": "filter-mesh-muscat-3",
128
+ "parameters": {},
129
+ "position": {
130
+ "x": 1178.7934386432692,
131
+ "y": -404.60420766087486
132
+ }
133
+ },
134
+ {
135
+ "definition_id": "create-muscat-element-filter",
136
+ "id": "create-muscat-element-filter-4",
137
+ "parameters": {
138
+ "dimensions": [],
139
+ "element_types": []
140
+ },
141
+ "position": {
142
+ "x": 907.0145916208401,
143
+ "y": -638.2472795858114
144
+ }
145
+ },
146
+ {
147
+ "definition_id": "mesh-sink",
148
+ "id": "mesh-sink-5",
149
+ "parameters": {
150
+ "color_field": "",
151
+ "show_representation": true
152
+ },
153
+ "position": {
154
+ "x": 2239.785006293307,
155
+ "y": -432.72359397606726
156
+ }
157
+ },
158
+ {
159
+ "definition_id": "set-string",
160
+ "id": "set-string-7",
161
+ "parameters": {
162
+ "value": "{testdata}/SpherePoints.csv"
163
+ },
164
+ "position": {
165
+ "x": -393.10668439247513,
166
+ "y": -628.4541569226008
167
+ }
168
+ },
169
+ {
170
+ "definition_id": "load-csv",
171
+ "id": "load-csv-1",
172
+ "parameters": {},
173
+ "position": {
174
+ "x": -44.83132041511465,
175
+ "y": -627.3162867737778
176
+ }
177
+ },
178
+ {
179
+ "definition_id": "set-int",
180
+ "id": "set-int-1",
181
+ "parameters": {
182
+ "value": 0
183
+ },
184
+ "position": {
185
+ "x": -394,
186
+ "y": -468
187
+ }
188
+ },
189
+ {
190
+ "definition_id": "set-float",
191
+ "id": "set-float-3",
192
+ "parameters": {
193
+ "value": 0.0
194
+ },
195
+ "position": {
196
+ "x": -394,
197
+ "y": -306
198
+ }
199
+ },
200
+ {
201
+ "definition_id": "set-list[int]",
202
+ "id": "set-list[int]-5",
203
+ "parameters": {
204
+ "value": []
205
+ },
206
+ "position": {
207
+ "x": -390,
208
+ "y": 192
209
+ }
210
+ },
211
+ {
212
+ "definition_id": "set-list[float]",
213
+ "id": "set-list[float]-6",
214
+ "parameters": {
215
+ "value": []
216
+ },
217
+ "position": {
218
+ "x": -390,
219
+ "y": 358
220
+ }
221
+ },
222
+ {
223
+ "definition_id": "select-file",
224
+ "id": "select-file-7",
225
+ "parameters": {
226
+ "path": "{testdata}/FlowGraph.stl"
227
+ },
228
+ "position": {
229
+ "x": -390,
230
+ "y": 528
231
+ }
232
+ },
233
+ {
234
+ "definition_id": "mesh-sink",
235
+ "id": "mesh-sink-9",
236
+ "parameters": {},
237
+ "position": {
238
+ "x": 1916,
239
+ "y": 542
240
+ }
241
+ },
242
+ {
243
+ "definition_id": "load-meshio",
244
+ "id": "load-meshio-10",
245
+ "parameters": {},
246
+ "position": {
247
+ "x": -39.70284566640166,
248
+ "y": 639.1967967865925
249
+ }
250
+ },
251
+ {
252
+ "definition_id": "write-muscat",
253
+ "id": "write-muscat-12",
254
+ "parameters": {},
255
+ "position": {
256
+ "x": 1806.8227820321258,
257
+ "y": -658.8482283355717
258
+ }
259
+ },
260
+ {
261
+ "definition_id": "write-meshio",
262
+ "id": "write-meshio-13",
263
+ "parameters": {},
264
+ "position": {
265
+ "x": 1775.790050141856,
266
+ "y": -266.0219053905259
267
+ }
268
+ },
269
+ {
270
+ "definition_id": "set-string",
271
+ "id": "set-string-15",
272
+ "parameters": {
273
+ "value": "MuscatFiltered.xdmf"
274
+ },
275
+ "position": {
276
+ "x": 1360.6079441839063,
277
+ "y": -853.8432526815529
278
+ }
279
+ },
280
+ {
281
+ "definition_id": "select-server-file",
282
+ "id": "select-server-file_1",
283
+ "parameters": {
284
+ "file name": "{testdata}/FlowGraph.stl"
285
+ },
286
+ "position": {
287
+ "x": -742,
288
+ "y": 530.2308349609375
289
+ }
290
+ },
291
+ {
292
+ "definition_id": "title-doc",
293
+ "id": "title-doc_4",
294
+ "parameters": {
295
+ "title": "These are the sources"
296
+ },
297
+ "position": {
298
+ "x": -412.3486819477766,
299
+ "y": -834
300
+ }
301
+ },
302
+ {
303
+ "definition_id": "title-doc",
304
+ "id": "title-doc_5",
305
+ "parameters": {
306
+ "title": "Mesh and Table Readers"
307
+ },
308
+ "position": {
309
+ "x": -50,
310
+ "y": -734
311
+ }
312
+ },
313
+ {
314
+ "definition_id": "title-doc",
315
+ "id": "title-doc_6",
316
+ "parameters": {
317
+ "title": "Mesh Generation"
318
+ },
319
+ "position": {
320
+ "x": 394,
321
+ "y": -730
322
+ }
323
+ },
324
+ {
325
+ "definition_id": "title-doc",
326
+ "id": "title-doc_7",
327
+ "parameters": {
328
+ "title": "Mesh Filters"
329
+ },
330
+ "position": {
331
+ "x": 912,
332
+ "y": -737.7500000000001
333
+ }
334
+ },
335
+ {
336
+ "definition_id": "title-doc",
337
+ "id": "title-doc_8",
338
+ "parameters": {
339
+ "title": "Sinks"
340
+ },
341
+ "position": {
342
+ "x": 2276,
343
+ "y": -742
344
+ }
345
+ },
346
+ {
347
+ "definition_id": "title-doc",
348
+ "id": "title-doc_9",
349
+ "parameters": {
350
+ "title": "Writers"
351
+ },
352
+ "position": {
353
+ "x": 1838.0000000000002,
354
+ "y": -741.2500000000001
355
+ }
356
+ },
357
+ {
358
+ "definition_id": "set-string",
359
+ "id": "Output File Name",
360
+ "parameters": {
361
+ "value": "MeshIO_Unfiltered.xdmf"
362
+ },
363
+ "position": {
364
+ "x": -392.7183954606096,
365
+ "y": 22.18771524529342
366
+ }
367
+ },
368
+ {
369
+ "definition_id": "paragraph-doc",
370
+ "id": "paragraph-doc_1",
371
+ "parameters": {
372
+ "text": "This is a **bold** word, this is an *italic* word, and this is ***bold and italic***.\n\n- First bullet\n- Second bullet with **bold text**\n- Third bullet with *italic text*\n- Fourth bullet with ***bold italic text***"
373
+ },
374
+ "position": {
375
+ "x": -405.2572935092509,
376
+ "y": -794.7803164309158
377
+ }
378
+ },
379
+ {
380
+ "definition_id": "delaunay-3d",
381
+ "id": "delaunay-3d_1",
382
+ "parameters": {},
383
+ "position": {
384
+ "x": 1467.9547479320331,
385
+ "y": 57.1826973060591
386
+ }
387
+ }
388
+ ],
389
+ "version": 1
390
+ }
Binary file
Binary file
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Xdmf xmlns:xi="http://www.w3.org/2001/XInclude" Version="3.0">
3
+ <Domain>
4
+ <Grid Name="Grid">
5
+ <Geometry Origin="" Type="XYZ">
6
+ <DataItem DataType="Float" Dimensions="11023 3" Format="HDF" Precision="4">FlowGraph.h5:Data0</DataItem>
7
+ </Geometry>
8
+ <Topology Dimensions="16208" Type="Mixed">
9
+ <DataItem DataType="Int" Dimensions="64832" Format="HDF" Precision="8">FlowGraph.h5:Data1</DataItem>
10
+ </Topology>
11
+ <Attribute Center="Node" ElementCell="" ElementDegree="0" ElementFamily="" ItemType="" Name="RegionId" Type="Scalar">
12
+ <DataItem DataType="Int" Dimensions="11023" Format="HDF" Precision="8">FlowGraph.h5:Data2</DataItem>
13
+ </Attribute>
14
+ <Attribute Center="Node" ElementCell="" ElementDegree="0" ElementFamily="" ItemType="" Name="Normals" Type="None">
15
+ <DataItem DataType="Float" Dimensions="11023 3" Format="HDF" Precision="4">FlowGraph.h5:Data3</DataItem>
16
+ </Attribute>
17
+ <Attribute Center="Cell" ElementCell="" ElementDegree="0" ElementFamily="" ItemType="" Name="RegionId" Type="Scalar">
18
+ <DataItem DataType="Int" Dimensions="16208" Format="HDF" Precision="8">FlowGraph.h5:Data4</DataItem>
19
+ </Attribute>
20
+ </Grid>
21
+ </Domain>
22
+ </Xdmf>
@@ -0,0 +1,70 @@
1
+ {
2
+ "edges": [
3
+ {
4
+ "source_node": "file-path",
5
+ "source_port": "path",
6
+ "target_node": "load-muscat",
7
+ "target_port": "path"
8
+ },
9
+ {
10
+ "source_node": "load-muscat",
11
+ "source_port": "mesh",
12
+ "target_node": "mesh-sink_2",
13
+ "target_port": "mesh"
14
+ },
15
+ {
16
+ "source_node": "select-server-file_1",
17
+ "source_port": "path",
18
+ "target_node": "file-path",
19
+ "target_port": "path"
20
+ }
21
+ ],
22
+ "format": "flowgraph-workflow",
23
+ "nodes": [
24
+ {
25
+ "definition_id": "select-file",
26
+ "id": "file-path",
27
+ "parameters": {
28
+ "path": "{testdata}/FlowGraph.stl"
29
+ },
30
+ "position": {
31
+ "x": 158.84236178540158,
32
+ "y": 112.45731019009182
33
+ }
34
+ },
35
+ {
36
+ "definition_id": "load-muscat",
37
+ "id": "load-muscat",
38
+ "parameters": {},
39
+ "position": {
40
+ "x": 405.15846639414195,
41
+ "y": 266.371436871848
42
+ }
43
+ },
44
+ {
45
+ "definition_id": "select-server-file",
46
+ "id": "select-server-file_1",
47
+ "parameters": {
48
+ "file name": "{testdata}/FlowGraph.stl"
49
+ },
50
+ "position": {
51
+ "x": -106.11400606172988,
52
+ "y": -87.70353005781195
53
+ }
54
+ },
55
+ {
56
+ "definition_id": "mesh-sink",
57
+ "id": "mesh-sink_2",
58
+ "parameters": {
59
+ "color_field": "point:originalIds",
60
+ "show_axis_grid": true,
61
+ "show_representation": true
62
+ },
63
+ "position": {
64
+ "x": 554.5372659626406,
65
+ "y": 466.814694707449
66
+ }
67
+ }
68
+ ],
69
+ "version": 1
70
+ }
@@ -0,0 +1,83 @@
1
+ Point ID,Normals_0,Normals_1,Normals_2,Normals_Magnitude,Points_0,Points_1,Points_2,Points_Magnitude
2
+ 0,0,0,1,1,0,0,0.5,0.5
3
+ 1,0,0,-1,1,0,0,-0.5,0.5
4
+ 2,0.34202,0,0.939693,1,0.17101,0,0.469846,0.5
5
+ 3,0.642788,0,0.766044,1,0.321394,0,0.383022,0.5
6
+ 4,0.866025,0,0.5,1,0.433013,0,0.25,0.5
7
+ 5,0.984808,0,0.173648,1,0.492404,0,0.0868241,0.5
8
+ 6,0.984808,0,-0.173648,1,0.492404,0,-0.0868241,0.5
9
+ 7,0.866025,0,-0.5,1,0.433013,0,-0.25,0.5
10
+ 8,0.642788,0,-0.766044,1,0.321394,0,-0.383022,0.5
11
+ 9,0.34202,0,-0.939693,1,0.17101,0,-0.469846,0.5
12
+ 10,0.2767,0.201034,0.939693,1,0.13835,0.100517,0.469846,0.5
13
+ 11,0.520026,0.377821,0.766044,1,0.260013,0.188911,0.383022,0.5
14
+ 12,0.700629,0.509037,0.5,1,0.350315,0.254518,0.25,0.5
15
+ 13,0.796726,0.578855,0.173648,1,0.398363,0.289428,0.0868241,0.5
16
+ 14,0.796726,0.578855,-0.173648,1,0.398363,0.289428,-0.0868241,0.5
17
+ 15,0.700629,0.509037,-0.5,1,0.350315,0.254518,-0.25,0.5
18
+ 16,0.520026,0.377821,-0.766044,1,0.260013,0.188911,-0.383022,0.5
19
+ 17,0.2767,0.201034,-0.939693,1,0.13835,0.100517,-0.469846,0.5
20
+ 18,0.10569,0.32528,0.939693,1,0.052845,0.16264,0.469846,0.5
21
+ 19,0.198632,0.611327,0.766044,1,0.0993161,0.305664,0.383022,0.5
22
+ 20,0.267617,0.823639,0.5,1,0.133808,0.41182,0.25,0.5
23
+ 21,0.304322,0.936608,0.173648,1,0.152161,0.468304,0.0868241,0.5
24
+ 22,0.304322,0.936608,-0.173648,1,0.152161,0.468304,-0.0868241,0.5
25
+ 23,0.267617,0.823639,-0.5,1,0.133808,0.41182,-0.25,0.5
26
+ 24,0.198632,0.611327,-0.766044,1,0.0993161,0.305664,-0.383022,0.5
27
+ 25,0.10569,0.32528,-0.939693,1,0.052845,0.16264,-0.469846,0.5
28
+ 26,-0.10569,0.32528,0.939693,1,-0.052845,0.16264,0.469846,0.5
29
+ 27,-0.198632,0.611327,0.766044,1,-0.0993161,0.305664,0.383022,0.5
30
+ 28,-0.267617,0.823639,0.5,1,-0.133808,0.41182,0.25,0.5
31
+ 29,-0.304322,0.936608,0.173648,1,-0.152161,0.468304,0.0868241,0.5
32
+ 30,-0.304322,0.936608,-0.173648,1,-0.152161,0.468304,-0.0868241,0.5
33
+ 31,-0.267617,0.823639,-0.5,1,-0.133808,0.41182,-0.25,0.5
34
+ 32,-0.198632,0.611327,-0.766044,1,-0.0993161,0.305664,-0.383022,0.5
35
+ 33,-0.10569,0.32528,-0.939693,1,-0.052845,0.16264,-0.469846,0.5
36
+ 34,-0.2767,0.201034,0.939693,1,-0.13835,0.100517,0.469846,0.5
37
+ 35,-0.520026,0.377821,0.766044,1,-0.260013,0.188911,0.383022,0.5
38
+ 36,-0.700629,0.509037,0.5,1,-0.350315,0.254518,0.25,0.5
39
+ 37,-0.796726,0.578855,0.173648,1,-0.398363,0.289428,0.0868241,0.5
40
+ 38,-0.796726,0.578855,-0.173648,1,-0.398363,0.289428,-0.0868241,0.5
41
+ 39,-0.700629,0.509037,-0.5,1,-0.350315,0.254518,-0.25,0.5
42
+ 40,-0.520026,0.377821,-0.766044,1,-0.260013,0.188911,-0.383022,0.5
43
+ 41,-0.2767,0.201034,-0.939693,1,-0.13835,0.100517,-0.469846,0.5
44
+ 42,-0.34202,4.18854e-17,0.939693,1,-0.17101,2.09427e-17,0.469846,0.5
45
+ 43,-0.642788,7.87188e-17,0.766044,1,-0.321394,3.93594e-17,0.383022,0.5
46
+ 44,-0.866025,1.06058e-16,0.5,1,-0.433013,5.30288e-17,0.25,0.5
47
+ 45,-0.984808,1.20604e-16,0.173648,1,-0.492404,6.03021e-17,0.0868241,0.5
48
+ 46,-0.984808,1.20604e-16,-0.173648,1,-0.492404,6.03021e-17,-0.0868241,0.5
49
+ 47,-0.866025,1.06058e-16,-0.5,1,-0.433013,5.30288e-17,-0.25,0.5
50
+ 48,-0.642788,7.87188e-17,-0.766044,1,-0.321394,3.93594e-17,-0.383022,0.5
51
+ 49,-0.34202,4.18854e-17,-0.939693,1,-0.17101,2.09427e-17,-0.469846,0.5
52
+ 50,-0.2767,-0.201034,0.939693,1,-0.13835,-0.100517,0.469846,0.5
53
+ 51,-0.520026,-0.377821,0.766044,1,-0.260013,-0.188911,0.383022,0.5
54
+ 52,-0.700629,-0.509037,0.5,1,-0.350315,-0.254518,0.25,0.5
55
+ 53,-0.796726,-0.578855,0.173648,1,-0.398363,-0.289428,0.0868241,0.5
56
+ 54,-0.796726,-0.578855,-0.173648,1,-0.398363,-0.289428,-0.0868241,0.5
57
+ 55,-0.700629,-0.509037,-0.5,1,-0.350315,-0.254518,-0.25,0.5
58
+ 56,-0.520026,-0.377821,-0.766044,1,-0.260013,-0.188911,-0.383022,0.5
59
+ 57,-0.2767,-0.201034,-0.939693,1,-0.13835,-0.100517,-0.469846,0.5
60
+ 58,-0.10569,-0.32528,0.939693,1,-0.052845,-0.16264,0.469846,0.5
61
+ 59,-0.198632,-0.611327,0.766044,1,-0.0993161,-0.305664,0.383022,0.5
62
+ 60,-0.267617,-0.823639,0.5,1,-0.133808,-0.41182,0.25,0.5
63
+ 61,-0.304322,-0.936608,0.173648,1,-0.152161,-0.468304,0.0868241,0.5
64
+ 62,-0.304322,-0.936608,-0.173648,1,-0.152161,-0.468304,-0.0868241,0.5
65
+ 63,-0.267617,-0.823639,-0.5,1,-0.133808,-0.41182,-0.25,0.5
66
+ 64,-0.198632,-0.611327,-0.766044,1,-0.0993161,-0.305664,-0.383022,0.5
67
+ 65,-0.10569,-0.32528,-0.939693,1,-0.052845,-0.16264,-0.469846,0.5
68
+ 66,0.10569,-0.32528,0.939693,1,0.052845,-0.16264,0.469846,0.5
69
+ 67,0.198632,-0.611327,0.766044,1,0.0993161,-0.305664,0.383022,0.5
70
+ 68,0.267617,-0.823639,0.5,1,0.133808,-0.41182,0.25,0.5
71
+ 69,0.304322,-0.936608,0.173648,1,0.152161,-0.468304,0.0868241,0.5
72
+ 70,0.304322,-0.936608,-0.173648,1,0.152161,-0.468304,-0.0868241,0.5
73
+ 71,0.267617,-0.823639,-0.5,1,0.133808,-0.41182,-0.25,0.5
74
+ 72,0.198632,-0.611327,-0.766044,1,0.0993161,-0.305664,-0.383022,0.5
75
+ 73,0.10569,-0.32528,-0.939693,1,0.052845,-0.16264,-0.469846,0.5
76
+ 74,0.2767,-0.201034,0.939693,1,0.13835,-0.100517,0.469846,0.5
77
+ 75,0.520026,-0.377821,0.766044,1,0.260013,-0.188911,0.383022,0.5
78
+ 76,0.700629,-0.509037,0.5,1,0.350315,-0.254518,0.25,0.5
79
+ 77,0.796726,-0.578855,0.173648,1,0.398363,-0.289428,0.0868241,0.5
80
+ 78,0.796726,-0.578855,-0.173648,1,0.398363,-0.289428,-0.0868241,0.5
81
+ 79,0.700629,-0.509037,-0.5,1,0.350315,-0.254518,-0.25,0.5
82
+ 80,0.520026,-0.377821,-0.766044,1,0.260013,-0.188911,-0.383022,0.5
83
+ 81,0.2767,-0.201034,-0.939693,1,0.13835,-0.100517,-0.469846,0.5
@@ -0,0 +1,101 @@
1
+ {
2
+ "format": "flowgraph-workflow",
3
+ "version": 2,
4
+ "nodes": [
5
+ {
6
+ "id": "mesh_loader",
7
+ "definition_id": "load-muscat",
8
+ "parameters": {},
9
+ "position": {
10
+ "x": 35.98144924280439,
11
+ "y": -4.398239016651743
12
+ }
13
+ },
14
+ {
15
+ "id": "mesh_writer",
16
+ "definition_id": "write-muscat",
17
+ "parameters": {},
18
+ "position": {
19
+ "x": 316.89393366219383,
20
+ "y": -145.9240085753448
21
+ }
22
+ },
23
+ {
24
+ "id": "input",
25
+ "definition_id": "workflow-input",
26
+ "parameters": {
27
+ "name": "in_filename"
28
+ },
29
+ "position": {
30
+ "x": -260.27894490161793,
31
+ "y": -5.0071362735997695
32
+ }
33
+ },
34
+ {
35
+ "id": "title-doc-5",
36
+ "definition_id": "title-doc",
37
+ "parameters": {
38
+ "title": "Mesh Converter Muscat >> Muscat"
39
+ },
40
+ "position": {
41
+ "x": -4.6817529886857585,
42
+ "y": -321.285582053244
43
+ }
44
+ },
45
+ {
46
+ "id": "paragraph-doc-6",
47
+ "definition_id": "paragraph-doc",
48
+ "parameters": {
49
+ "text": "Read a mesh file with Muscat and save it with Muscat. "
50
+ },
51
+ "position": {
52
+ "x": -0.7861539053497779,
53
+ "y": -245.15996619593776
54
+ }
55
+ },
56
+ {
57
+ "id": "output",
58
+ "definition_id": "workflow-input",
59
+ "parameters": {
60
+ "name": "out_filename"
61
+ },
62
+ "position": {
63
+ "x": -261.23423804912477,
64
+ "y": -155.41585621644475
65
+ }
66
+ }
67
+ ],
68
+ "inputs": [
69
+ {
70
+ "name": "in_filename",
71
+ "node_id": "input",
72
+ "node_port": "value"
73
+ },
74
+ {
75
+ "name": "out_filename",
76
+ "node_id": "output",
77
+ "node_port": "value"
78
+ }
79
+ ],
80
+ "outputs": [],
81
+ "edges": [
82
+ {
83
+ "source_node": "mesh_loader",
84
+ "source_port": "mesh",
85
+ "target_node": "mesh_writer",
86
+ "target_port": "mesh"
87
+ },
88
+ {
89
+ "source_node": "input",
90
+ "source_port": "value",
91
+ "target_node": "mesh_loader",
92
+ "target_port": "path"
93
+ },
94
+ {
95
+ "source_node": "output",
96
+ "source_port": "value",
97
+ "target_node": "mesh_writer",
98
+ "target_port": "filename"
99
+ }
100
+ ]
101
+ }
flowgraph/version.py ADDED
@@ -0,0 +1,3 @@
1
+ """Version information for FlowGraph."""
2
+
3
+ __version__ = "0.1.0"
@@ -0,0 +1,14 @@
1
+ Metadata-Version: 2.4
2
+ Name: flowgraph
3
+ Version: 0.1.1
4
+ Summary: Headless FlowGraph workflow runtime
5
+ Requires-Dist: muscat>=2.5.2
6
+ Requires-Dist: meshio>=5.3
7
+ Requires-Dist: meshlane>=5.5.0
8
+ Requires-Dist: scipy>=1.10
9
+ Requires-Dist: pandas
10
+ Requires-Dist: h5py
11
+ Requires-Dist: pillow>=10.0
12
+ Requires-Dist: cryptography>=42.0
13
+ Dynamic: requires-dist
14
+ Dynamic: summary
@@ -0,0 +1,47 @@
1
+ flowgraph/__init__.py,sha256=Q-18dghYsTNFKWCjOvZbtU1n7aoOfJfOsCH9aqSy3rA,108
2
+ flowgraph/core_cli.cp313-win_amd64.pyd,sha256=gMv5kBhohCAWcZ0vZBdjkqVX57_ZytoAqJiAmpmErtg,53760
3
+ flowgraph/resources.py,sha256=2Ysi4BJo1XzfeaawRPwlKX0Xrn_khzDdYdRM3Od1Gc4,919
4
+ flowgraph/version.py,sha256=-e_qWGe9lnkTYN_rKcYKI1rCXjw6KIc5j8_GX0CCyc0,64
5
+ flowgraph/adapters/__init__.py,sha256=lecfRzwl73IDTRag_WofBJQQyfdK235uwfVJ_ZSbeoE,4414
6
+ flowgraph/adapters/controls.cp313-win_amd64.pyd,sha256=bIPjvYK3JxhuhxmEVVBs7G-ALWgfc3QrpdQSK2vMrrA,78848
7
+ flowgraph/adapters/data_types.cp313-win_amd64.pyd,sha256=qF9pN3ao0lbvJuSjI74TmhbnC2rvyHsO5YcEyVi2AJ4,31232
8
+ flowgraph/adapters/documentation.cp313-win_amd64.pyd,sha256=N2LSZGh30Dny_-VgVcjmqNkQiZw82n7lvsL-mMEwTBQ,39936
9
+ flowgraph/adapters/field_ops.cp313-win_amd64.pyd,sha256=lzX9KyQik8xzJQhJUVL8ElVYE-ePCC2U1284_q5pNbU,68096
10
+ flowgraph/adapters/filters.cp313-win_amd64.pyd,sha256=efp-0UEFF5gSi1xgGD3Kxunc6PTkPP0mzJBCYaxCcmo,89600
11
+ flowgraph/adapters/image_tools.cp313-win_amd64.pyd,sha256=z8-6PyRVmfTjJ4news3JseNisFZ7HZ8UpANIV_iAk_w,146432
12
+ flowgraph/adapters/mesh_creation_tools.cp313-win_amd64.pyd,sha256=7AXyBrEYXsTrDGFPfi9qdisA2rTo3ffW0JvK7C6lxGo,136192
13
+ flowgraph/adapters/mesh_generations.cp313-win_amd64.pyd,sha256=ANFfWkB3QKjsI_rAffaS4VY2wxnOBL7CzMNULMSdcmc,66560
14
+ flowgraph/adapters/mesh_ops.cp313-win_amd64.pyd,sha256=va3bsljr2lBpQA2MyiWn2ifTzxhw60xlVOD_M6wyl3Q,158208
15
+ flowgraph/adapters/plaid_bridge.cp313-win_amd64.pyd,sha256=ToOhna8QljbOZQZdYRp71t9jZjCd8wjSyMkxnkk9I6U,86016
16
+ flowgraph/adapters/readers.cp313-win_amd64.pyd,sha256=NQXke07J73HW-VB-MemgH4uv5tTgcHeJRcBk5ofnw4A,84992
17
+ flowgraph/adapters/simple_sources.cp313-win_amd64.pyd,sha256=9g8ve9jUMFdbwBOM_k0FNiqbbPlwdH3FQ8TbsLYgKHo,119808
18
+ flowgraph/adapters/sinks.cp313-win_amd64.pyd,sha256=Adn49XMXD_bFyZReL4V-NX7z_4I_YMgfGmcfUDr4Upg,45568
19
+ flowgraph/adapters/user_code.cp313-win_amd64.pyd,sha256=GbZ2oU_aV8PGShg4MpfejTE88_KMKUMFPo-oe1HS2co,75776
20
+ flowgraph/adapters/workflow.cp313-win_amd64.pyd,sha256=_p2K1_LKMz1rKI0zmMtTSgYTScP2N51ue-7aEUHmvuY,75264
21
+ flowgraph/adapters/workflow_interfaces.cp313-win_amd64.pyd,sha256=fP4Uq3ujIfJFcyCykbXDPcluKV3Pzr0VDTyLoJ6vZKc,45056
22
+ flowgraph/adapters/writers.cp313-win_amd64.pyd,sha256=DiQfziBLVlnOGMr2vlAATamvC0Ag-rypB0hiZcEiaLY,76800
23
+ flowgraph/application/__init__.py,sha256=66RyuE0lr3x2yM2BsXCmFp_FWNPxOkZldZfRJPU7140,72
24
+ flowgraph/application/node_registry.cp313-win_amd64.pyd,sha256=lpurnHSo6GP7AwrCvHrJ0AyF77MiP0Yt1kWuhFCtAVw,39424
25
+ flowgraph/application/port_conversions.cp313-win_amd64.pyd,sha256=8rGGsOPXVrz-YzzNBotS4jBYuk1AKMQEKqDUWVdE3i4,49664
26
+ flowgraph/application/workflow_cli.cp313-win_amd64.pyd,sha256=K9BeOLubWOGJJ5iKxU_TSkOqbkBLtVULKgnH4aYjVmw,189440
27
+ flowgraph/application/workflow_core.cp313-win_amd64.pyd,sha256=w902_9Ixsi6aeL-yTGQqgG5zt_Om9oBWeUIbgr9lwbI,396288
28
+ flowgraph/application/workflow_io.cp313-win_amd64.pyd,sha256=OGIQ5Qj5Ns2m4ChdE878HNZ9ScPQKFxyTWMyIy8sc98,178176
29
+ flowgraph/domain/__init__.py,sha256=VZNM6JSED5RXd3GeOHroYC0HdmiKEUgV5RB9YMBgypU,127
30
+ flowgraph/domain/mesh_document.cp313-win_amd64.pyd,sha256=amnDTlTROx30dSdKVwyON5gikrlaI6DKBRr2WOnDJwc,55296
31
+ flowgraph/licensing/__init__.py,sha256=0va3bIj-uA5WaHoDXBsnarVrfapTHYjFKWkFRd2YikU,409
32
+ flowgraph/licensing/features.cp313-win_amd64.pyd,sha256=H9i3_cVHAoBtPh2d5OaxHZsNoYppxcKoQ7gZnFKnKjo,16896
33
+ flowgraph/licensing/keys.py,sha256=gDDqwAgT03dBgJ5wVKD5r4qYROMWVdCpqXzbh5c4rys,744
34
+ flowgraph/licensing/license.cp313-win_amd64.pyd,sha256=TU-4-nDScrPlkfETC3L-P67TpS58VrtH1gR8RNKanIM,94208
35
+ flowgraph/licensing/token.cp313-win_amd64.pyd,sha256=TsVgy7PP9qAAChf7jv9o1UjwhfVM7W6BcqLpBnKotrI,71680
36
+ flowgraph/testdata/AllFilters.json,sha256=-6DErKtpgwpTu70-E30QSHAhK2GH_4BPE2QSn6ZF_Is,8627
37
+ flowgraph/testdata/FlowGraph.h5,sha256=uYk8ISxfgVYhi205w7cJiglyKmrBLJtZsKh1hJXfOEs,1046104
38
+ flowgraph/testdata/FlowGraph.stl,sha256=I3XsdFztzj1qNPCw-01eq3mDgJ8kNcSRUefjEoW9zhE,811384
39
+ flowgraph/testdata/FlowGraph.xdmf,sha256=lryt5z4WKV524j-NJ8PS9KP5URfIPVTF1UOCwzSUbVA,1271
40
+ flowgraph/testdata/SimpleReadMesh.json,sha256=TKz0JO-g8f2ftTEKZBj_Ep4P4RjeG76RrR86RYCQADg,1530
41
+ flowgraph/testdata/SpherePoints.csv,sha256=6Dq9FsDoX37fro_qaLwNGMZHAX38S8efa-FVQY1zh3E,5206
42
+ flowgraph/testdata/muscat-muscat-mesh-conversion.json,sha256=5sLrCrhbJFnhwAooOpNVHtIVTiISD2NaVn_7DFaw9_I,2123
43
+ flowgraph-0.1.1.dist-info/METADATA,sha256=2igu2xMo8lp87DcFayBd9_GQ58rHkPvm1CAHuiNbPok,370
44
+ flowgraph-0.1.1.dist-info/WHEEL,sha256=0LUNoHxLvcpw9db_x0XozE5jW73-_GOAO7fDDJ4Xt4Q,101
45
+ flowgraph-0.1.1.dist-info/entry_points.txt,sha256=OQpXDhKRTUTSH-TbrP_d2I79Jw5W0RlPcYsZt_xopSE,54
46
+ flowgraph-0.1.1.dist-info/top_level.txt,sha256=-tjxx6w_V-3Dh01OmyY-ayst6EmeSefGlA4EQ6T5XeI,10
47
+ flowgraph-0.1.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp313-cp313-win_amd64
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ flowgraph = flowgraph.core_cli:main
@@ -0,0 +1 @@
1
+ flowgraph