Pipeline¶
Pipeline module providing unified access to sync and async pipelines.
This module imports and re-exports pipeline classes from their respective modules to maintain backward compatibility while keeping sync and async implementations separate.
AsyncPipeline
¶
Bases: Generic[T, E]
An asynchronous pipeline supporting three modes:
- run: Concurrent execution of registered tasks, one-to-one with inputs.
- run_sequence: Sequential chaining of tasks.
- run_parallel: Concurrent execution of multiple pipelines, returning PipelineResult objects.
Each method supports an optional debug flag to capture per-task traces.
Tasks must consume and return a Result[T, E].
Source code in neopipe/async_pipeline.py
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 |
|
replicate_task(task, num_replicas)
¶
Replicate a task multiple times with unique task IDs.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
task
|
BaseAsyncTask[T, E]
|
The async task to replicate |
required |
num_replicas
|
int
|
Number of replicas to create |
required |
Returns:
Type | Description |
---|---|
List[BaseAsyncTask[T, E]]
|
List[BaseAsyncTask[T, E]]: List of replicated tasks with unique IDs |
Source code in neopipe/async_pipeline.py
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
|
run(inputs, debug=False)
async
¶
Execute each task concurrently (1:1 to inputs). Returns: - .result: List[Result[U,E]] - .trace: None or Trace[List[Result],E]
Source code in neopipe/async_pipeline.py
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
|
run_parallel(pipelines, inputs, debug=False)
async
staticmethod
¶
Execute several pipelines concurrently, each with a single input. Returns: - .result: List[Result[U,E]] - .trace: None or Traces[List[Result],E]
Source code in neopipe/async_pipeline.py
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 |
|
run_sequence(input_result, debug=False)
async
¶
Run tasks in order, passing Result→Result. Returns: - .result: the final Result[U,E] - .trace: None or Trace[Result,U,E] of each step
Source code in neopipe/async_pipeline.py
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 |
|
SyncPipeline
¶
Bases: Generic[T, E]
A pipeline that executes BaseSyncTasks sequentially, passing Result[T, E] through each step.
Attributes:
Name | Type | Description |
---|---|---|
tasks |
List[BaseSyncTask]
|
Registered tasks. |
pipeline_id |
UUID
|
Unique ID for the pipeline. |
name |
str
|
Optional name for logging/debugging. |
Source code in neopipe/sync_pipeline.py
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 |
|
replicate_task(task, num_replicas)
¶
Replicate a task multiple times with unique task IDs.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
task
|
BaseSyncTask
|
The task to replicate |
required |
num_replicas
|
int
|
Number of replicas to create |
required |
Returns:
Type | Description |
---|---|
List[BaseSyncTask]
|
List[BaseSyncTask]: List of replicated tasks with unique IDs |
Source code in neopipe/sync_pipeline.py
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
|
run(input_result, debug=False)
¶
Run tasks sequentially. Always returns an ExecutionResult whose .result is a Result[T, E], and .trace is a Trace if debug=True.
Source code in neopipe/sync_pipeline.py
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
|
run_parallel(pipelines, inputs, max_workers=4, debug=False)
staticmethod
¶
Execute multiple pipelines concurrently. Returns ExecutionResult where .result is List[Result[T, E]] (one per pipeline), and .trace is Traces(...) if debug=True.
Source code in neopipe/sync_pipeline.py
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 |
|