mirror of
https://github.com/deepset-ai/haystack.git
synced 2025-11-02 18:59:28 +00:00
fix: Pipeline - disable autoshow on Jupyter (#7397)
* try * fix docstring * simplify tests * add release note
This commit is contained in:
parent
b0a9508116
commit
6e69d4f188
@ -86,13 +86,7 @@ class Pipeline:
|
|||||||
def __repr__(self) -> str:
|
def __repr__(self) -> str:
|
||||||
"""
|
"""
|
||||||
Returns a text representation of the Pipeline.
|
Returns a text representation of the Pipeline.
|
||||||
If this runs in a Jupyter notebook, it will instead display the Pipeline image.
|
|
||||||
"""
|
"""
|
||||||
if is_in_jupyter():
|
|
||||||
# If we're in a Jupyter notebook we want to display the image instead of the text repr.
|
|
||||||
self.show()
|
|
||||||
return ""
|
|
||||||
|
|
||||||
res = f"{object.__repr__(self)}\n"
|
res = f"{object.__repr__(self)}\n"
|
||||||
if self.metadata:
|
if self.metadata:
|
||||||
res += "🧱 Metadata\n"
|
res += "🧱 Metadata\n"
|
||||||
|
|||||||
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
enhancements:
|
||||||
|
- |
|
||||||
|
In Jupyter notebooks, the image of the Pipeline will no longer be displayed automatically.
|
||||||
|
The textual representation of the Pipeline will be displayed.
|
||||||
|
|
||||||
|
To display the Pipeline image, use the `show` method of the Pipeline object.
|
||||||
@ -281,8 +281,7 @@ def test_get_component_name_not_added_to_pipeline():
|
|||||||
assert pipe.get_component_name(some_component) == ""
|
assert pipe.get_component_name(some_component) == ""
|
||||||
|
|
||||||
|
|
||||||
@patch("haystack.core.pipeline.pipeline.is_in_jupyter")
|
def test_repr():
|
||||||
def test_repr(mock_is_in_jupyter):
|
|
||||||
pipe = Pipeline(metadata={"test": "test"}, max_loops_allowed=42)
|
pipe = Pipeline(metadata={"test": "test"}, max_loops_allowed=42)
|
||||||
pipe.add_component("add_two", AddFixedValue(add=2))
|
pipe.add_component("add_two", AddFixedValue(add=2))
|
||||||
pipe.add_component("add_default", AddFixedValue())
|
pipe.add_component("add_default", AddFixedValue())
|
||||||
@ -302,28 +301,10 @@ def test_repr(mock_is_in_jupyter):
|
|||||||
" - add_two.result -> double.value (int)\n"
|
" - add_two.result -> double.value (int)\n"
|
||||||
" - double.value -> add_default.value (int)\n"
|
" - double.value -> add_default.value (int)\n"
|
||||||
)
|
)
|
||||||
# Simulate not being in a notebook
|
|
||||||
mock_is_in_jupyter.return_value = False
|
|
||||||
assert repr(pipe) == expected_repr
|
assert repr(pipe) == expected_repr
|
||||||
|
|
||||||
|
|
||||||
@patch("haystack.core.pipeline.pipeline.is_in_jupyter")
|
|
||||||
def test_repr_in_notebook(mock_is_in_jupyter):
|
|
||||||
pipe = Pipeline(metadata={"test": "test"}, max_loops_allowed=42)
|
|
||||||
pipe.add_component("add_two", AddFixedValue(add=2))
|
|
||||||
pipe.add_component("add_default", AddFixedValue())
|
|
||||||
pipe.add_component("double", Double())
|
|
||||||
pipe.connect("add_two", "double")
|
|
||||||
pipe.connect("double", "add_default")
|
|
||||||
|
|
||||||
# Simulate being in a notebook
|
|
||||||
mock_is_in_jupyter.return_value = True
|
|
||||||
|
|
||||||
with patch.object(Pipeline, "show") as mock_show:
|
|
||||||
assert repr(pipe) == ""
|
|
||||||
mock_show.assert_called_once_with()
|
|
||||||
|
|
||||||
|
|
||||||
def test_run_raises_if_max_visits_reached():
|
def test_run_raises_if_max_visits_reached():
|
||||||
def custom_init(self):
|
def custom_init(self):
|
||||||
component.set_input_type(self, "x", int)
|
component.set_input_type(self, "x", int)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user