github-haystack 1.0.1__py3-none-any.whl → 1.1.0__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github-haystack
3
- Version: 1.0.1
3
+ Version: 1.1.0
4
4
  Summary: Haystack components for interacting with GitHub repositories
5
5
  Project-URL: Source, https://github.com/deepset-ai/haystack-core-integrations/github
6
6
  Project-URL: Documentation, https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/github/README.md
@@ -1,10 +1,12 @@
1
+ haystack_integrations/components/connectors/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1
2
  haystack_integrations/components/connectors/github/__init__.py,sha256=aRIkCcJ_ogsyt67cwjZQu8rqP7yIQu8jRzK6TAYRGx4,557
2
3
  haystack_integrations/components/connectors/github/file_editor.py,sha256=DbW57Ztm9kv8mCYSJGhUY7xp9wXOvRdhomOosNbBFnQ,11738
3
4
  haystack_integrations/components/connectors/github/issue_commenter.py,sha256=S8VhaPaIQJ29TJNMsnfPns4lNBNAnC0QUxuktKTrnfE,5618
4
5
  haystack_integrations/components/connectors/github/issue_viewer.py,sha256=Xionw1Y8jGxMCo2AXDUjqWk_yaJTW0d9xhvSr8bOGcM,7368
5
6
  haystack_integrations/components/connectors/github/pr_creator.py,sha256=KEWgXVQlLjaSJiwqn-5vIxOCG1PHH8OKEJtNphI3o_g,11428
6
- haystack_integrations/components/connectors/github/repo_forker.py,sha256=HHDXrRzIOcDCBVxnxpe1ygR-CzIScGIMwXojrToeJ_I,11555
7
+ haystack_integrations/components/connectors/github/repo_forker.py,sha256=C52zONah1E5BNsNzOILohDKl2QBXZcJn3t1fm7AedQs,11538
7
8
  haystack_integrations/components/connectors/github/repo_viewer.py,sha256=tECbnxaBxqX3zAZQ2MzCrqvKfY-Ml9MGMhgtLKrsmKw,9199
9
+ haystack_integrations/prompts/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
10
  haystack_integrations/prompts/github/__init__.py,sha256=jjkSZGJ76S0EX-ZTv4qrhpxGrwVpBb_TCyqMJFhl2ec,759
9
11
  haystack_integrations/prompts/github/context_prompt.py,sha256=RSzISqtaBHaC7v6rcyyxt2vxmbBVp5OHsWR6Z2wp5pk,8783
10
12
  haystack_integrations/prompts/github/file_editor_prompt.py,sha256=_ro-I3MbVIpYpVFJbSpj4TuzbKLX7wTGn55Q95q8jFE,3301
@@ -13,14 +15,15 @@ haystack_integrations/prompts/github/issue_viewer_prompt.py,sha256=QlEjfrnoTRiZY
13
15
  haystack_integrations/prompts/github/pr_creator_prompt.py,sha256=tNC9BdzIowZ42o8bmnrJ46aonIzMfVHRrZopwryiABI,3944
14
16
  haystack_integrations/prompts/github/repo_viewer_prompt.py,sha256=JkU2ODn06Vs_YQozF1H0vYym7jzczSdN1kAOXSD5IkA,3257
15
17
  haystack_integrations/prompts/github/system_prompt.py,sha256=xiOEAbENJiLHL8M1qrgSdUxrfguAphI_6B0kqelxDok,4209
18
+ haystack_integrations/tools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
19
  haystack_integrations/tools/github/__init__.py,sha256=FyNJ5F0IO2Xied-wP6utoMB13lPLK1Y0fAu7YlKhWu0,532
17
- haystack_integrations/tools/github/file_editor_tool.py,sha256=RUhNvFD4ofug3tcuhwmEKM-LPvg2FAzMjVgVi2RCMLo,5279
18
- haystack_integrations/tools/github/issue_commenter_tool.py,sha256=ZxDUbEzEe9oLAF-jKCRRx-xgzAXgiYqfPaUdXEpbJTg,5226
19
- haystack_integrations/tools/github/issue_viewer_tool.py,sha256=cfpQLoSj3KvZc0gv78OCYGC4kxTwOEhASTdAkcdp2ls,5166
20
- haystack_integrations/tools/github/pr_creator_tool.py,sha256=WGn6ovtmiiFINrwlP00l_Jt6PUrF7A_N9ATPJHOLQEE,4925
21
- haystack_integrations/tools/github/repo_viewer_tool.py,sha256=jcXv0zXEQnAstWq5A4H_5hp50DUfGobRKI5COlnTupE,5984
22
- haystack_integrations/tools/github/utils.py,sha256=xNAOtPo7Txq8Q4KhYARopP-4DOiU_m53hd4tHZKaStE,2936
23
- github_haystack-1.0.1.dist-info/METADATA,sha256=0G5__sZ4KvI0i-T0Yn5nE6ulCgGly4ddxUJzckcjvWA,1709
24
- github_haystack-1.0.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
25
- github_haystack-1.0.1.dist-info/licenses/LICENSE.txt,sha256=B05uMshqTA74s-0ltyHKI6yoPfJ3zYgQbvcXfDVGFf8,10280
26
- github_haystack-1.0.1.dist-info/RECORD,,
20
+ haystack_integrations/tools/github/file_editor_tool.py,sha256=ETvDnSqjaXgzHyo8nNtqhxgZf0RiM4Z7k82TDyOLPTo,5178
21
+ haystack_integrations/tools/github/issue_commenter_tool.py,sha256=AVlto9NxLLJcnmW-U2PZhOoeagICh7STQR5_paXfY2Y,5125
22
+ haystack_integrations/tools/github/issue_viewer_tool.py,sha256=mEiDxyx9xuttOR3LEq29eETt4UYF8zBd8uAtWE3TuiI,5065
23
+ haystack_integrations/tools/github/pr_creator_tool.py,sha256=Bfqn1gSsnfkzJg69Dk4DuICnjkviHYIw7vTX9zsaQa4,4824
24
+ haystack_integrations/tools/github/repo_viewer_tool.py,sha256=QWnbpQS3XrmxJ3qbBIjTUR9eOXfHR_MfQgd1ClDS5qE,5883
25
+ haystack_integrations/tools/github/utils.py,sha256=iSIEFulC3KqZvAY1QcrE2rTZJSkCp49SSqC62BTpcs8,3312
26
+ github_haystack-1.1.0.dist-info/METADATA,sha256=Ks5JPUEfFqMCy7N0JCE3leQnQ7VAUqfaGefteHSx94k,1709
27
+ github_haystack-1.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
28
+ github_haystack-1.1.0.dist-info/licenses/LICENSE.txt,sha256=B05uMshqTA74s-0ltyHKI6yoPfJ3zYgQbvcXfDVGFf8,10280
29
+ github_haystack-1.1.0.dist-info/RECORD,,
@@ -2,6 +2,7 @@
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
  import re
5
+ import time
5
6
  from typing import Any, Dict, Optional
6
7
 
7
8
  import requests
@@ -274,8 +275,6 @@ class GitHubRepoForker:
274
275
 
275
276
  # Wait for fork completion if requested
276
277
  if self.wait_for_completion:
277
- import time
278
-
279
278
  start_time = time.time()
280
279
 
281
280
  while time.time() - start_time < self.max_wait_seconds:
File without changes
File without changes
@@ -62,9 +62,6 @@ class GitHubFileEditorTool(ComponentTool):
62
62
  "documents": {"handler": custom_handler}
63
63
  }
64
64
  """
65
- self.name = name
66
- self.description = description
67
- self.parameters = parameters
68
65
  self.github_token = github_token
69
66
  self.repo = repo
70
67
  self.branch = branch
@@ -60,9 +60,6 @@ class GitHubIssueCommenterTool(ComponentTool):
60
60
  "documents": {"handler": custom_handler}
61
61
  }
62
62
  """
63
- self.name = name
64
- self.description = description
65
- self.parameters = parameters
66
63
  self.github_token = github_token
67
64
  self.raise_on_failure = raise_on_failure
68
65
  self.retry_attempts = retry_attempts
@@ -60,9 +60,6 @@ class GitHubIssueViewerTool(ComponentTool):
60
60
  "documents": {"handler": custom_handler}
61
61
  }
62
62
  """
63
- self.name = name
64
- self.description = description
65
- self.parameters = parameters
66
63
  self.github_token = github_token
67
64
  self.raise_on_failure = raise_on_failure
68
65
  self.retry_attempts = retry_attempts
@@ -58,9 +58,6 @@ class GitHubPRCreatorTool(ComponentTool):
58
58
  "documents": {"handler": custom_handler}
59
59
  }
60
60
  """
61
- self.name = name
62
- self.description = description
63
- self.parameters = parameters
64
61
  self.github_token = github_token
65
62
  self.raise_on_failure = raise_on_failure
66
63
  self.outputs_to_string = outputs_to_string
@@ -67,9 +67,6 @@ class GitHubRepoViewerTool(ComponentTool):
67
67
  "documents": {"handler": custom_handler}
68
68
  }
69
69
  """
70
- self.name = name
71
- self.description = description
72
- self.parameters = parameters
73
70
  self.github_token = github_token
74
71
  self.repo = repo
75
72
  self.branch = branch
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
5
- from typing import Any, Callable, Dict, List, Union
5
+ from typing import Any, Callable, Dict, List, Optional, Union
6
6
 
7
7
  from haystack import Document
8
8
  from haystack.utils.callable_serialization import deserialize_callable, serialize_callable
@@ -20,10 +20,10 @@ def message_handler(documents: List[Document], max_length: int = 150_000) -> str
20
20
  result_str = ""
21
21
  for document in documents:
22
22
  if document.meta["type"] in ["file", "dir", "error"]:
23
- result_str += document.content + "\n"
23
+ result_str += document.content or "" + "\n"
24
24
  else:
25
25
  result_str += f"File Content for {document.meta['path']}\n\n"
26
- result_str += document.content
26
+ result_str += document.content or ""
27
27
 
28
28
  if len(result_str) > max_length:
29
29
  result_str = result_str[:max_length] + "...(large file can't be fully displayed)"
@@ -33,8 +33,8 @@ def message_handler(documents: List[Document], max_length: int = 150_000) -> str
33
33
 
34
34
  def serialize_handlers(
35
35
  serialized: Dict[str, Any],
36
- outputs_to_state: Dict[str, Dict[str, Union[str, Callable]]],
37
- outputs_to_string: Dict[str, Union[str, Callable[[Any], str]]],
36
+ outputs_to_state: Optional[Dict[str, Dict[str, Union[str, Callable]]]],
37
+ outputs_to_string: Optional[Dict[str, Union[str, Callable[[Any], str]]]],
38
38
  ) -> None:
39
39
  """
40
40
  Serializes callable handlers in outputs_to_state and outputs_to_string.
@@ -48,12 +48,18 @@ def serialize_handlers(
48
48
  for key, config in outputs_to_state.items():
49
49
  serialized_config = config.copy()
50
50
  if "handler" in config:
51
+ if not callable(config["handler"]):
52
+ msg = f"Handler for outputs_to_state[{key}] is not a callable"
53
+ raise ValueError(msg)
51
54
  serialized_config["handler"] = serialize_callable(config["handler"])
52
55
  serialized_outputs[key] = serialized_config
53
56
  serialized["outputs_to_state"] = serialized_outputs
54
57
 
55
58
  if outputs_to_string is not None and "handler" in outputs_to_string:
56
59
  serialized_string = outputs_to_string.copy()
60
+ if not callable(outputs_to_string["handler"]):
61
+ msg = "Handler for outputs_to_string is not a callable"
62
+ raise ValueError(msg)
57
63
  serialized_string["handler"] = serialize_callable(outputs_to_string["handler"])
58
64
  serialized["outputs_to_string"] = serialized_string
59
65
 
File without changes