Skip to content

Commit 46ba72c

Browse files
committed
Remove unused pipe_type: PipeType
Add Changelog for v0.5.0
1 parent 43cef0c commit 46ba72c

5 files changed

Lines changed: 32 additions & 22 deletions

File tree

CHANGELOG.md

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,36 @@
11
# Changelog
22

3-
## [v0.5.0] - 2025-07-07
3+
## [v0.5.0] - 2025-07-01
44

5-
Draft:
5+
### Highlight: Vibe Coding an AI workflow becomes a reality
66

7-
- `WorkingMemoryFactory`: added method `make_for_dry_run`: Takes an array of tuple (`stuff_name`, `concept_code`, `class_structure`) and generates with `polyfactory` a working memory with fake objects.
8-
- Completed dry run for `PipeCondition`, `PipeParallel`, `PipeBatch`. Added static validation for those as well.
9-
- Added a config in the DryRunConfig: `allowed_to_fail_pipes` enables to list pipes that are allowed to fail the dry run, for example the pipe explicitly coded for creating an infinite loop
10-
- `ConceptLibrary`: Added method `is_concept_code_legal`, that checks that the domain attached to the concept exists.
11-
- Added `pipe_type: PipeType` to pipes classes (CONTROLLER/OPERATOR)
12-
- `PipeLibrary`: added method `dry_run_all_pipes` that runs the dry_run for all pipes.
13-
- Added validation of TOML files: Raise an error when there are trailing whitespaces, compilation blockers...
7+
**Create AI workflows from natural language without writing code** - The combination of Pipelex's declarative language, comprehensive Cursor rules, and robust validation tools enables AI assistants to autonomously iterate on pipelines until all errors are resolved and workflows are ready to run.
8+
9+
### Added
10+
11+
- **Complete Dry Run & Static Validation System** - A comprehensive validation framework that catches configuration and pipeline errors before any expensive inference operations.
12+
- **WorkingMemoryFactory Enhancement**: New `make_for_dry_run()` method creates working memory with realistic mock objects for zero-cost pipeline testing
13+
- **Enhanced Dry Run System**: Complete dry run support for all pipe controllers (`PipeCondition`, `PipeParallel`, `PipeBatch`) with mock data generation using `polyfactory`
14+
- **Comprehensive Static Validation**: Enhanced static validation with configurable error handling for missing/extraneous input variables and domain validation
15+
- **TOML File Validation**: Automatic detection and prevention of trailing whitespaces, formatting issues, and compilation blockers in pipeline files
16+
- **Pipeline Testing Framework**: New `dry_run_all_pipes()` method enables comprehensive testing of entire pipeline libraries
17+
- **Enhanced Library Loading**: Improved error handling and validation during TOML file loading with proper exception propagation
18+
19+
### Configuration
20+
21+
- **Dry Run Configuration**: New `allowed_to_fail_pipes` setting allows specific pipes (like infinite loop examples that fail on purpose) to be excluded from dry run validation
22+
- **Static Validation Control**: Configurable error reactions (`raise`, `log`, `ignore`) for different validation error types
23+
24+
### Documentation & Development Experience
25+
26+
- **Cursor Rules Enhancement**: Comprehensive pipe controller documentation covering `PipeSequence`, `PipeCondition`, `PipeBatch`, and `PipeParallel`, improved PipeOperator documentation for `PipeLLM`, `PipeOCR`
27+
- **Pipeline Validation CLI**: Enhanced `pipelex validate` command with better error reporting and validation coverage
28+
- **Improved Error Messages**: Better formatting and context for pipeline configuration errors
29+
30+
### Changed
31+
32+
- **OCR Input Standardization**: Changed OCR pipe input parameter naming to consistently use `ocr_input` for both image and PDF inputs, improving consistency across the API
33+
- **Error Message Improvements**: Updated PipeCondition error messages to reference `expression_template` instead of deprecated `expression_jinja2`
1434

1535
## [v0.4.11] - 2025-06-30
1636

pipelex/core/pipe_abstract.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,11 @@
1212
from pipelex.types import StrEnum
1313

1414

15-
class PipeType(StrEnum):
16-
OPERATOR = "operator"
17-
CONTROLLER = "controller"
18-
19-
2015
class PipeAbstract(ABC, BaseModel):
2116
model_config = ConfigDict(strict=True, extra="forbid")
2217

2318
code: str
2419
domain: str
25-
pipe_type: PipeType
2620
definition: Optional[str] = None
2721
# TODO: support auto (implicit) input, it makes sense for pipe controllers
2822
inputs: PipeInputSpec = Field(default_factory=PipeInputSpec)

pipelex/pipe_controllers/pipe_controller.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,14 @@
44
from typing_extensions import override
55

66
from pipelex import log
7-
from pipelex.core.pipe_abstract import PipeAbstract, PipeType
7+
from pipelex.core.pipe_abstract import PipeAbstract
88
from pipelex.core.pipe_output import PipeOutput
99
from pipelex.core.pipe_run_params import PipeRunMode, PipeRunParams
1010
from pipelex.core.working_memory import WorkingMemory
1111
from pipelex.pipeline.job_metadata import JobMetadata
1212

1313

1414
class PipeController(PipeAbstract):
15-
pipe_type: PipeType = PipeType.CONTROLLER
16-
1715
@override
1816
async def run_pipe(
1917
self,

pipelex/pipe_operators/pipe_operator.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from typing_extensions import override
55

66
from pipelex import log
7-
from pipelex.core.pipe_abstract import PipeAbstract, PipeType
7+
from pipelex.core.pipe_abstract import PipeAbstract
88
from pipelex.core.pipe_output import PipeOutput
99
from pipelex.core.pipe_run_params import PipeRunMode, PipeRunParams
1010
from pipelex.core.working_memory import WorkingMemory
@@ -14,8 +14,6 @@
1414

1515

1616
class PipeOperator(PipeAbstract):
17-
pipe_type: PipeType = PipeType.OPERATOR
18-
1917
@override
2018
async def run_pipe(
2119
self,

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "pipelex"
3-
version = "0.4.12"
3+
version = "0.5.0"
44
description = "Pipelex is an open-source dev tool based on a simple declarative language that lets you define replicable, structured, composable LLM pipelines."
55
authors = [{ name = "Evotis S.A.S.", email = "evotis@pipelex.com" }]
66
maintainers = [{ name = "Pipelex staff", email = "oss@pipelex.com" }]

0 commit comments

Comments
 (0)