Stefano Fiorucci
3f85a63468
fix: deepcopy the inputs of components ( #6987 )
...
* deepcopy inputs
* reno
* simplify test
2024-02-16 17:07:52 +01:00
Silvano Cerza
06a9349095
Change mermaid integration test to avoid comparing received image ( #7002 )
2024-02-15 15:01:04 +01:00
Silvano Cerza
f96eb3847f
refactor: Merge Pipeline
s definition in core
package ( #6973 )
...
* Move marshalling functions in core Pipeline
* Move telemetry gathering in core Pipeline
* Move run logic in core Pipeline
* Update root Pipeline import
* Add release notes
* Update Pipeline docs path
* Update releasenotes/notes/merge-pipeline-definitions-1da80e9803e2a8bb.yaml
Co-authored-by: Massimiliano Pippi <mpippi@gmail.com>
---------
Co-authored-by: Massimiliano Pippi <mpippi@gmail.com>
2024-02-12 18:25:28 +01:00
Silvano Cerza
21488ac6ca
fix: Fix Pipeline.draw()
failing cause of missing socket ( #6965 )
...
* Fix Pipeline.draw() issue
* Mark draw test as flaky
2024-02-09 16:10:48 +01:00
Silvano Cerza
d2d01f9fe1
feat: Enhance Pipeline.__repr__()
( #6963 )
...
* Enhance Pipeline.draw() to show image directly in Jupyter notebook
* Add util method to check if we're in a Jupyter notebook
* Split Pipeline.draw() in two methods
* Update tests
* Update releasenotes
* Enhance Pipeline.__repr__
* Simplify Pipeline.__repr__
* Update release notes
2024-02-09 14:44:34 +01:00
Silvano Cerza
a7f36fdd32
feat: Enhance Pipeline.draw()
to show image directly in Jupyter notebook ( #6961 )
...
* Enhance Pipeline.draw() to show image directly in Jupyter notebook
* Add util method to check if we're in a Jupyter notebook
* Split Pipeline.draw() in two methods
* Update tests
* Update releasenotes
2024-02-09 14:44:24 +01:00
Silvano Cerza
3d5c329949
Change Pipeline.connect() to return Pipeline instance ( #6922 )
2024-02-06 11:03:18 +01:00
Silvano Cerza
b9d7a98359
Rework Pipeline.connect() tests and structure ( #6917 )
2024-02-05 18:16:02 +01:00
Silvano Cerza
0191b1e6e4
feat: Change Component's I/O dunder type ( #6916 )
...
* Add Pipeline.get_component_name() method
* Add utility class to ease discoverability of Component I/O
* Move InputOutput in component package
* Rename InputOutput to _InputOutput
* Raise if inputs or outputs field already exist
* Fix tests
* Add release notes
* Move InputSocket and OutputSocket in types package
* Move _InputOutput in socket package
* Rename _InputOutput class to Sockets
* Simplify Sockets class
* Dictch I/O dunder fields in favour of inputs and outputs fields
* Update Sockets docstrings
* Update release notes
* Fix mypy
* Remove unnecessary assignment
* Remove unused logging
* Change SocketsType to SocketsIOType to avoid confusion
* Change sockets type and name
* Change Sockets.__repr__ to return component instance
* Fix linting
* Fix sockets tests
* Revert to dunder fields for Component IO
* Use singular in IO dunder fields
* Delete release notes
* Update haystack/core/component/types.py
Co-authored-by: Massimiliano Pippi <mpippi@gmail.com>
---------
Co-authored-by: Massimiliano Pippi <mpippi@gmail.com>
2024-02-05 17:46:45 +01:00
Silvano Cerza
76d324a149
feat: Change Pipeline.add_component
to fail when reusing Component
instances ( #6847 )
...
* Change Pipeline.add_component to fail when reusing Component instances
* Change variable name and store Pipeline instance in it
* Fix tests
2024-01-30 11:15:26 +01:00
Silvano Cerza
9211f535b6
Remove unnecessary Connection class ( #6842 )
2024-01-29 17:25:52 +01:00
Silvano Cerza
d4f6531c52
feat: Refactor Pipeline.run()
( #6729 )
...
* First rough implementation of refactored run
* Further improve run logic
* Properly handle variadic input in run
* Further work
* Enhance names and add more documentation
* Fix issue with output distribution
* This works
* Enhance run comments
* Mark Multiplexer as greedy
* Remove MergeLoop in favour of Multiplexer in tests
* Remove FirstIntSelector in favour of Multiplexer
* Handle corner when waiting for input is stuck
* Remove unused import
* Handle mutable input data in run and misbehaving components
* Handle run input validation
* Test validation
* Fix pylint
* Fix mypy
* Call warm_up in run to fix tests
2024-01-18 17:53:47 +01:00
Stefano Fiorucci
8eba053dbc
fix pipeline test ( #6741 )
2024-01-15 13:59:11 +01:00
Massimiliano Pippi
9ace6bf63d
feat: store input's default value in InputSocket
( #6651 )
...
* track default value in sockets
* remove dead code
* include default value in socket description
* add unit test
* add relnote
* unused import
* clarify
2024-01-09 12:17:46 +01:00
Silvano Cerza
e836fd6875
fix: Fix Pipeline.connect()
when multiple compatible sockets are found ( #6594 )
...
* Fix connect not picking the correct socket
* Add release notes
2023-12-20 11:01:18 +01:00
Massimiliano Pippi
09abcc1d4c
allow connecting the same components multiple times ( #6530 )
2023-12-12 16:01:09 +01:00
Massimiliano Pippi
1b247ca395
clean up tests ( #6488 )
2023-12-05 15:49:10 +01:00
Massimiliano Pippi
84da80c1f3
chore: make core
tests layout consistent ( #6449 )
...
* move unit tests up
* move tests up one dir, make them unit
2023-11-29 18:58:44 +01:00
Massimiliano Pippi
00e1dd6eb8
chore: rearrange the core
package, move tests and clean up ( #6427 )
...
* rearrange code
* fix tests
* relnote
* merge test modules
* remove extra
* rearrange draw tests
* forgot
* remove unused import
2023-11-28 09:58:56 +01:00