* Deduplicate Documents in Rankers
* Add unit tests
* Deduplicate Documents in run_async in HuggingFaceTEIRanker
* Add release note
* Use only one loop in _deduplicate_documents
* Avoid changing input variable in place
* Deduplicate Documents in MetafieldRanker when weight is set to 0
* Adapt doc strings
* Adapt release note
* Apply suggestion from @julian-risch
Co-authored-by: Julian Risch <julian.risch@deepset.ai>
---------
Co-authored-by: Julian Risch <julian.risch@deepset.ai>
* initial PoC idea running
* removing test code
* cleaning up
* wip
* cleaning up demos
* adding more pipelines to test persistence saving
* wip
* wip
* working example for logging components inputs in run time
* reverting to a simpler solution for intermediate results
* cleaning up
* testing that in a crash components outputs/inputs up to the crash point are returned
* adding tests for state persistance in a RAG pipeline
* updataing tests for state persistance in a RAG pipeline
* removing use cases of agent tests
* adding LICENSE header
* adding LICENSE header
* adding release notes
* updating tests for mocked components only
* updating release notes
* adapting PipelineRuntimeError
* cleaning up tests
* fixing test pipeline crash components inputs/outputs are saved
* fixing tests for state persistance
* removing code
* removing code
* removing code
* updating release notes
* validating parameters
* cleaning
* wip: debugging
* removing persistance tests
* formatting
* formatting
* cleaning up code
* updating release notes
* adding missing docstrings
* typo in release notes
* Update haystack/core/pipeline/pipeline.py
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
* PR comments
* handling potential issues with saving the snapshot file
* updating tests
* Update haystack/core/pipeline/pipeline.py
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
* Update haystack/core/pipeline/pipeline.py
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
* some more improvements
* fixing exxception
* fixing exception error name conflict
---------
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
* chore(lint): enforce and apply PEP 585 type hinting
* Run fmt fixes
* Fix all typing imports using some regex
* Fix all typing written in string in tests
* undo changes in the e2e tests
* make e2e test use list instead of List
* type fixes
* remove type:ignore
* pylint
* Remove typing from Usage example comments
* Remove typing from most of comments
* try to fix e2e tests on comm PRs
* fix
* Add tests typing.List in to adjust test compatiplity
- test/components/agents/test_state_class.py
- test/components/converters/test_output_adapter.py
- test/components/joiners/test_list_joiner.py
* simplify pyproject
* improve relnote
---------
Co-authored-by: anakin87 <stefanofiorucci@gmail.com>
* chore: Make the Haystack core "type complete"
For libraries with a `py.typed` marker, it is [recommended][1] to
make all public interfaces "type complete", i.e. to explicitly
annotate all function parameters and return types. Doing so has the
following benefits:
- It maximizes the type information available to users and IDEs.
- It ensures that the argument and return types are the intended ones.
- It sidesteps differences in type inference between the different
type checker implementations.
This change makes a first step towards type completeness by enabling
the Mypy `disallow_incomplete_defs` for the core modules (excluding
`haystack.components.*` and `haystack.testing.*`) and fixing the
resulting errors.
[1]: https://typing.python.org/en/latest/guides/libraries.html#how-much-of-my-library-needs-types
* chore: Add `python_version = 3.9` to Mypy config
This catches type constructs that are only supported in later Python
versions.
* Remove unused import
* try to fix linting
---------
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
* initial experiments
* progress
* draft
* fix header
* fix linting
* lot more lazy inits
* fixes to main init
* linting
* small refinements
* header fix
* release note
* improve consistency
* test: make sure no extra modules are being imported due to `__init__` definitions
* extend release note with an example
* refactoring import test
* updating release notes
* casting .keys() to list
* reverting to list
* Update haystack/__init__.py
Co-authored-by: Julian Risch <julian.risch@deepset.ai>
* fixing ident problem
* better comments
---------
Co-authored-by: David S. Batista <dsbatista@gmail.com>
Co-authored-by: Julian Risch <julian.risch@deepset.ai>