weave-haystack 2.0.0__tar.gz → 3.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/CHANGELOG.md +15 -0
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/PKG-INFO +5 -6
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/README.md +1 -1
- weave_haystack-3.0.0/pydoc/config_docusaurus.yml +29 -0
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/pyproject.toml +8 -14
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/src/haystack_integrations/components/connectors/weave/weave_connector.py +3 -3
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/src/haystack_integrations/tracing/weave/tracer.py +13 -19
- weave_haystack-2.0.0/pydoc/config.yml +0 -30
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/.gitignore +0 -0
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/LICENSE.txt +0 -0
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/example/README.md +0 -0
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/example/hybrid_retrieval.py +0 -0
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/src/haystack_integrations/components/connectors/py.typed +0 -0
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/src/haystack_integrations/components/connectors/weave/__init__.py +0 -0
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/src/haystack_integrations/tracing/py.typed +0 -0
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/src/haystack_integrations/tracing/weave/__init__.py +0 -0
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/tests/test_tracer.py +0 -0
- {weave_haystack-2.0.0 → weave_haystack-3.0.0}/tests/test_weave_connector.py +0 -0
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [integrations/weights_and_biases_weave-v2.0.0] - 2025-09-16
|
|
4
|
+
|
|
5
|
+
### 🐛 Bug Fixes
|
|
6
|
+
|
|
7
|
+
- Weave - pin gql (#2198)
|
|
8
|
+
|
|
9
|
+
### 🚜 Refactor
|
|
10
|
+
|
|
11
|
+
- [**breaking**] Weave - update patching support and unpin gql (#2272)
|
|
12
|
+
|
|
13
|
+
### 🧹 Chores
|
|
14
|
+
|
|
15
|
+
- Standardize readmes - part 2 (#2205)
|
|
16
|
+
|
|
17
|
+
|
|
3
18
|
## [integrations/weights_and_biases_weave-v1.0.0] - 2025-07-01
|
|
4
19
|
|
|
5
20
|
### 🐛 Bug Fixes
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: weave-haystack
|
|
3
|
-
Version:
|
|
3
|
+
Version: 3.0.0
|
|
4
4
|
Summary: An integration of Weights & Biases Weave tracer with Haystack
|
|
5
5
|
Project-URL: Source, https://github.com/deepset-ai/haystack-core-integrations
|
|
6
|
-
Project-URL: Documentation, https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/
|
|
6
|
+
Project-URL: Documentation, https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/weave/README.md
|
|
7
7
|
Project-URL: Issues, https://github.com/deepset-ai/haystack-core-integrations/issues
|
|
8
8
|
Author-email: deepset GmbH <info@deepset.ai>
|
|
9
9
|
License-Expression: Apache-2.0
|
|
@@ -11,15 +11,14 @@ License-File: LICENSE.txt
|
|
|
11
11
|
Classifier: Development Status :: 4 - Beta
|
|
12
12
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
13
13
|
Classifier: Programming Language :: Python
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.10
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.13
|
|
19
18
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
20
19
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
21
|
-
Requires-Python: >=3.
|
|
22
|
-
Requires-Dist: haystack-ai
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Requires-Dist: haystack-ai>=2.22.0
|
|
23
22
|
Requires-Dist: weave>=0.52.7
|
|
24
23
|
Description-Content-Type: text/markdown
|
|
25
24
|
|
|
@@ -29,7 +28,7 @@ Description-Content-Type: text/markdown
|
|
|
29
28
|
[](https://pypi.org/project/weave-haystack)
|
|
30
29
|
|
|
31
30
|
- [Integration page](https://haystack.deepset.ai/integrations/weights-and-bias-tracer)
|
|
32
|
-
- [Changelog](https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/
|
|
31
|
+
- [Changelog](https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/weave/CHANGELOG.md)
|
|
33
32
|
|
|
34
33
|
---
|
|
35
34
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
[](https://pypi.org/project/weave-haystack)
|
|
5
5
|
|
|
6
6
|
- [Integration page](https://haystack.deepset.ai/integrations/weights-and-bias-tracer)
|
|
7
|
-
- [Changelog](https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/
|
|
7
|
+
- [Changelog](https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/weave/CHANGELOG.md)
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
loaders:
|
|
2
|
+
- ignore_when_discovered:
|
|
3
|
+
- __init__
|
|
4
|
+
modules:
|
|
5
|
+
- haystack_integrations.components.connectors.weave.weave_connector
|
|
6
|
+
- haystack_integrations.tracing.weave.tracer
|
|
7
|
+
search_path:
|
|
8
|
+
- ../src
|
|
9
|
+
type: haystack_pydoc_tools.loaders.CustomPythonLoader
|
|
10
|
+
processors:
|
|
11
|
+
- do_not_filter_modules: false
|
|
12
|
+
documented_only: true
|
|
13
|
+
expression: null
|
|
14
|
+
skip_empty_modules: true
|
|
15
|
+
type: filter
|
|
16
|
+
- type: smart
|
|
17
|
+
- type: crossref
|
|
18
|
+
renderer:
|
|
19
|
+
description: Weights & Bias integration for Haystack
|
|
20
|
+
id: integrations-weights-bias
|
|
21
|
+
markdown:
|
|
22
|
+
add_member_class_prefix: false
|
|
23
|
+
add_method_class_prefix: true
|
|
24
|
+
classdef_code_block: false
|
|
25
|
+
descriptive_class_title: false
|
|
26
|
+
descriptive_module_title: true
|
|
27
|
+
filename: weights_and_bias.md
|
|
28
|
+
title: weights and bias
|
|
29
|
+
type: haystack_pydoc_tools.renderers.DocusaurusRenderer
|
|
@@ -7,7 +7,7 @@ name = "weave-haystack"
|
|
|
7
7
|
dynamic = ["version"]
|
|
8
8
|
description = "An integration of Weights & Biases Weave tracer with Haystack"
|
|
9
9
|
readme = "README.md"
|
|
10
|
-
requires-python = ">=3.
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
11
|
license = "Apache-2.0"
|
|
12
12
|
keywords = []
|
|
13
13
|
authors = [{ name = "deepset GmbH", email = "info@deepset.ai" }]
|
|
@@ -15,7 +15,6 @@ classifiers = [
|
|
|
15
15
|
"License :: OSI Approved :: Apache Software License",
|
|
16
16
|
"Development Status :: 4 - Beta",
|
|
17
17
|
"Programming Language :: Python",
|
|
18
|
-
"Programming Language :: Python :: 3.9",
|
|
19
18
|
"Programming Language :: Python :: 3.10",
|
|
20
19
|
"Programming Language :: Python :: 3.11",
|
|
21
20
|
"Programming Language :: Python :: 3.12",
|
|
@@ -23,11 +22,11 @@ classifiers = [
|
|
|
23
22
|
"Programming Language :: Python :: Implementation :: CPython",
|
|
24
23
|
"Programming Language :: Python :: Implementation :: PyPy",
|
|
25
24
|
]
|
|
26
|
-
dependencies = ["haystack-ai", "weave>=0.52.7"]
|
|
25
|
+
dependencies = ["haystack-ai>=2.22.0", "weave>=0.52.7"]
|
|
27
26
|
|
|
28
27
|
[project.urls]
|
|
29
28
|
Source = "https://github.com/deepset-ai/haystack-core-integrations"
|
|
30
|
-
Documentation = "https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/
|
|
29
|
+
Documentation = "https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/weave/README.md"
|
|
31
30
|
Issues = "https://github.com/deepset-ai/haystack-core-integrations/issues"
|
|
32
31
|
|
|
33
32
|
[tool.hatch.build.targets.wheel]
|
|
@@ -35,18 +34,18 @@ packages = ["src/haystack_integrations"]
|
|
|
35
34
|
|
|
36
35
|
[tool.hatch.version]
|
|
37
36
|
source = "vcs"
|
|
38
|
-
tag-pattern = 'integrations\/
|
|
37
|
+
tag-pattern = 'integrations\/weave-v(?P<version>.*)'
|
|
39
38
|
|
|
40
39
|
[tool.hatch.version.raw-options]
|
|
41
40
|
root = "../.."
|
|
42
|
-
git_describe_command = 'git describe --tags --match="integrations/
|
|
41
|
+
git_describe_command = 'git describe --tags --match="integrations/weave-v[0-9]*"'
|
|
43
42
|
|
|
44
43
|
[tool.hatch.envs.default]
|
|
45
44
|
installer = "uv"
|
|
46
45
|
dependencies = ["haystack-pydoc-tools", "ruff"]
|
|
47
46
|
[tool.hatch.envs.default.scripts]
|
|
48
|
-
docs = ["pydoc-markdown pydoc/
|
|
49
|
-
fmt = "ruff check --fix {args}
|
|
47
|
+
docs = ["pydoc-markdown pydoc/config_docusaurus.yml"]
|
|
48
|
+
fmt = "ruff check --fix {args}; ruff format {args}"
|
|
50
49
|
fmt-check = "ruff check {args} && ruff format --check {args}"
|
|
51
50
|
|
|
52
51
|
[tool.hatch.envs.test]
|
|
@@ -63,7 +62,7 @@ dependencies = [
|
|
|
63
62
|
unit = 'pytest -m "not integration" {args:tests}'
|
|
64
63
|
integration = 'pytest -m "integration" {args:tests}'
|
|
65
64
|
all = 'pytest {args:tests}'
|
|
66
|
-
cov-retry = '
|
|
65
|
+
cov-retry = 'pytest --cov=haystack_integrations --reruns 3 --reruns-delay 30 -x {args:tests}'
|
|
67
66
|
types = """mypy -p haystack_integrations.components.connectors.weave \
|
|
68
67
|
-p haystack_integrations.tracing.weave {args}"""
|
|
69
68
|
|
|
@@ -74,7 +73,6 @@ check_untyped_defs = true
|
|
|
74
73
|
disallow_incomplete_defs = true
|
|
75
74
|
|
|
76
75
|
[tool.ruff]
|
|
77
|
-
target-version = "py39"
|
|
78
76
|
line-length = 120
|
|
79
77
|
|
|
80
78
|
[tool.ruff.lint]
|
|
@@ -121,10 +119,6 @@ ignore = [
|
|
|
121
119
|
"PLR0913",
|
|
122
120
|
"PLR0915",
|
|
123
121
|
]
|
|
124
|
-
unfixable = [
|
|
125
|
-
# Don't touch unused imports
|
|
126
|
-
"F401",
|
|
127
|
-
]
|
|
128
122
|
|
|
129
123
|
[tool.ruff.lint.isort]
|
|
130
124
|
known-first-party = ["haystack_integrations"]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import Any
|
|
1
|
+
from typing import Any
|
|
2
2
|
|
|
3
3
|
from haystack import component, default_from_dict, default_to_dict, logging, tracing
|
|
4
4
|
|
|
@@ -71,7 +71,7 @@ class WeaveConnector:
|
|
|
71
71
|
|
|
72
72
|
"""
|
|
73
73
|
|
|
74
|
-
def __init__(self, pipeline_name: str, weave_init_kwargs:
|
|
74
|
+
def __init__(self, pipeline_name: str, weave_init_kwargs: dict[str, Any] | None = None) -> None:
|
|
75
75
|
"""
|
|
76
76
|
Initialize WeaveConnector.
|
|
77
77
|
|
|
@@ -80,7 +80,7 @@ class WeaveConnector:
|
|
|
80
80
|
"""
|
|
81
81
|
self.pipeline_name = pipeline_name
|
|
82
82
|
self.weave_init_kwargs = weave_init_kwargs or {}
|
|
83
|
-
self.tracer:
|
|
83
|
+
self.tracer: WeaveTracer | None = None
|
|
84
84
|
|
|
85
85
|
def warm_up(self) -> None:
|
|
86
86
|
"""Initialize the WeaveTracer."""
|
{weave_haystack-2.0.0 → weave_haystack-3.0.0}/src/haystack_integrations/tracing/weave/tracer.py
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import contextlib
|
|
2
2
|
import os
|
|
3
3
|
from collections.abc import Iterator
|
|
4
|
-
from typing import Any
|
|
4
|
+
from typing import Any
|
|
5
5
|
|
|
6
6
|
from haystack import logging
|
|
7
7
|
from haystack.tracing import Span, Tracer
|
|
@@ -22,9 +22,7 @@ class WeaveSpan(Span):
|
|
|
22
22
|
that describe the operation.
|
|
23
23
|
"""
|
|
24
24
|
|
|
25
|
-
def __init__(
|
|
26
|
-
self, call: Optional[Call] = None, parent: Optional[Call] = None, operation: Optional[str] = None
|
|
27
|
-
) -> None:
|
|
25
|
+
def __init__(self, call: Call | None = None, parent: Call | None = None, operation: str | None = None) -> None:
|
|
28
26
|
self._call = call
|
|
29
27
|
self._parent = parent
|
|
30
28
|
self._operation = operation
|
|
@@ -86,12 +84,10 @@ class WeaveTracer(Tracer):
|
|
|
86
84
|
)
|
|
87
85
|
|
|
88
86
|
self._client = weave.init(project_name, **weave_init_kwargs)
|
|
89
|
-
self._current_span:
|
|
87
|
+
self._current_span: WeaveSpan | None = None
|
|
90
88
|
|
|
91
89
|
@staticmethod
|
|
92
|
-
def create_call(
|
|
93
|
-
attributes: dict, client: WeaveClient, parent_span: Union[WeaveSpan, None], operation_name: str
|
|
94
|
-
) -> Call:
|
|
90
|
+
def create_call(attributes: dict, client: WeaveClient, parent_span: WeaveSpan | None, operation_name: str) -> Call:
|
|
95
91
|
comp_name = attributes.pop("haystack.component.name", "")
|
|
96
92
|
comp_type = attributes.pop("haystack.component.type", "")
|
|
97
93
|
comp_input = attributes.pop("haystack.component.input", {})
|
|
@@ -104,18 +100,16 @@ class WeaveTracer(Tracer):
|
|
|
104
100
|
)
|
|
105
101
|
return call
|
|
106
102
|
|
|
107
|
-
def current_span(self) ->
|
|
103
|
+
def current_span(self) -> Span | None:
|
|
108
104
|
"""Get the current active span."""
|
|
109
105
|
return self._current_span
|
|
110
106
|
|
|
111
107
|
@staticmethod
|
|
112
|
-
def _create_component_span(parent_span:
|
|
108
|
+
def _create_component_span(parent_span: WeaveSpan | None, operation_name: str) -> WeaveSpan:
|
|
113
109
|
"""Create a span for component runs with deferred call creation."""
|
|
114
110
|
return WeaveSpan(parent=parent_span.raw_span() if parent_span else None, operation=operation_name)
|
|
115
111
|
|
|
116
|
-
def _create_regular_span(
|
|
117
|
-
self, operation_name: str, tags: Optional[dict], parent_span: Optional[WeaveSpan]
|
|
118
|
-
) -> WeaveSpan:
|
|
112
|
+
def _create_regular_span(self, operation_name: str, tags: dict | None, parent_span: WeaveSpan | None) -> WeaveSpan:
|
|
119
113
|
"""Create a span for regular operations with immediate call creation."""
|
|
120
114
|
call = self._client.create_call(
|
|
121
115
|
op=operation_name,
|
|
@@ -124,7 +118,7 @@ class WeaveTracer(Tracer):
|
|
|
124
118
|
)
|
|
125
119
|
return WeaveSpan(call=call)
|
|
126
120
|
|
|
127
|
-
def _finish_component_call(self, span: WeaveSpan, parent_span:
|
|
121
|
+
def _finish_component_call(self, span: WeaveSpan, parent_span: WeaveSpan | None, operation_name: str) -> None:
|
|
128
122
|
"""Create and finish call for component runs."""
|
|
129
123
|
attributes = span.get_attributes()
|
|
130
124
|
call = self.create_call(
|
|
@@ -149,14 +143,14 @@ class WeaveTracer(Tracer):
|
|
|
149
143
|
output={key: coerce_tag_value(value) for key, value in pipeline_output.items()},
|
|
150
144
|
)
|
|
151
145
|
|
|
146
|
+
# the current implementation violates the Liskov Substitution Principle by using WeaveSpan instead of Span
|
|
147
|
+
# unfortunately, it seems hard to fix without rewriting the Tracer
|
|
152
148
|
@contextlib.contextmanager
|
|
153
|
-
def trace(
|
|
149
|
+
def trace( # type: ignore[override]
|
|
154
150
|
self,
|
|
155
151
|
operation_name: str,
|
|
156
|
-
tags:
|
|
157
|
-
|
|
158
|
-
# unfortunately, it seems hard to fix without rewriting the Tracer
|
|
159
|
-
parent_span: Optional[WeaveSpan] = None, # type: ignore[override]
|
|
152
|
+
tags: dict[str, Any] | None = None,
|
|
153
|
+
parent_span: WeaveSpan | None = None,
|
|
160
154
|
) -> Iterator[WeaveSpan]:
|
|
161
155
|
"""
|
|
162
156
|
A context manager that creates and manages spans for tracking operations in Weights & Biases Weave.
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
loaders:
|
|
2
|
-
- type: haystack_pydoc_tools.loaders.CustomPythonLoader
|
|
3
|
-
search_path: [../src]
|
|
4
|
-
modules: [
|
|
5
|
-
"haystack_integrations.components.connectors.weave.weave_connector",
|
|
6
|
-
"haystack_integrations.tracing.weave.tracer",
|
|
7
|
-
]
|
|
8
|
-
ignore_when_discovered: ["__init__"]
|
|
9
|
-
processors:
|
|
10
|
-
- type: filter
|
|
11
|
-
expression:
|
|
12
|
-
documented_only: true
|
|
13
|
-
do_not_filter_modules: false
|
|
14
|
-
skip_empty_modules: true
|
|
15
|
-
- type: smart
|
|
16
|
-
- type: crossref
|
|
17
|
-
renderer:
|
|
18
|
-
type: haystack_pydoc_tools.renderers.ReadmeIntegrationRenderer
|
|
19
|
-
excerpt: Weights & Bias integration for Haystack
|
|
20
|
-
category_slug: integrations-api
|
|
21
|
-
title: weights and bias
|
|
22
|
-
slug: integrations-weights-bias
|
|
23
|
-
order: 260
|
|
24
|
-
markdown:
|
|
25
|
-
descriptive_class_title: false
|
|
26
|
-
classdef_code_block: false
|
|
27
|
-
descriptive_module_title: true
|
|
28
|
-
add_method_class_prefix: true
|
|
29
|
-
add_member_class_prefix: false
|
|
30
|
-
filename: _readme_weights_and_bias.md
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{weave_haystack-2.0.0 → weave_haystack-3.0.0}/src/haystack_integrations/tracing/weave/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|