spot-sdk-python 2.0.0b2__tar.gz → 2.0.0b3__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.
Files changed (30) hide show
  1. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/PKG-INFO +2 -2
  2. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/README.md +1 -1
  3. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/pyproject.toml +1 -1
  4. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/mime.py +8 -6
  5. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/workflow.py +0 -6
  6. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/__init__.py +0 -0
  7. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/_json.py +0 -0
  8. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/app.py +0 -0
  9. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/clients.py +0 -0
  10. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/config.py +0 -0
  11. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/email.py +0 -0
  12. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/errors.py +0 -0
  13. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/knowledge.py +0 -0
  14. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/knowledge_tags.py +0 -0
  15. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/llm.py +0 -0
  16. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/logging.py +0 -0
  17. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/manifest.py +0 -0
  18. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/orchestrator.py +0 -0
  19. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/py.typed +0 -0
  20. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/retriever.py +0 -0
  21. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/settings.py +0 -0
  22. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/signals.py +0 -0
  23. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/testing/README.md +0 -0
  24. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/testing/__init__.py +0 -0
  25. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/testing/contract.py +0 -0
  26. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/testing/fake_knowledge_client.py +0 -0
  27. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/testing/fake_llm.py +0 -0
  28. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/testing/fake_spot.py +0 -0
  29. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/testing/views.py +0 -0
  30. {spot_sdk_python-2.0.0b2 → spot_sdk_python-2.0.0b3}/spot_sdk/verdict.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spot-sdk-python
3
- Version: 2.0.0b2
3
+ Version: 2.0.0b3
4
4
  Summary: SPOT plugin SDK: the plugin contract, the plugin runtime, its clients and test helpers
5
5
  License: Apache-2.0
6
6
  Author: SPOT Project
@@ -49,7 +49,7 @@ plugins share:
49
49
  ## Install
50
50
 
51
51
  ```bash
52
- pip install spot-sdk-python==2.0.0b2
52
+ pip install spot-sdk-python==2.0.0b3
53
53
  ```
54
54
 
55
55
  Python 3.11 to 3.15. Version 2 implements plugin contract 2, for
@@ -26,7 +26,7 @@ plugins share:
26
26
  ## Install
27
27
 
28
28
  ```bash
29
- pip install spot-sdk-python==2.0.0b2
29
+ pip install spot-sdk-python==2.0.0b3
30
30
  ```
31
31
 
32
32
  Python 3.11 to 3.15. Version 2 implements plugin contract 2, for
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
6
  name = "spot-sdk-python"
7
- version = "2.0.0b2"
7
+ version = "2.0.0b3"
8
8
  description = "SPOT plugin SDK: the plugin contract, the plugin runtime, its clients and test helpers"
9
9
  authors = ["SPOT Project <spot@sonn.lu>"]
10
10
  license = "Apache-2.0"
@@ -1631,13 +1631,15 @@ def _unclosed_parentheses(value: str) -> bytearray:
1631
1631
  # ----------------------------------------------------------------------- #
1632
1632
 
1633
1633
 
1634
- def _host(url: str) -> str:
1635
- """The host a browser would reach, lower-cased and IDNA-decoded; "" when none."""
1636
- if url[:4].lower() == "www.":
1637
- url = "http://" + url
1634
+ def url_host(text: str) -> str:
1635
+ """The host a browser would reach for ``text``, lower-cased and IDNA-decoded;
1636
+ "" when there is none. A backslash reads as a slash, and ``www.`` is a host
1637
+ without a scheme: the host ``parse`` records in ``Url.host``."""
1638
+ if text[:4].lower() == "www.":
1639
+ text = "http://" + text
1638
1640
  try:
1639
1641
  # Browsers read a backslash as a slash in web URLs.
1640
- host = urlsplit(url.replace("\\", "/")).hostname
1642
+ host = urlsplit(text.replace("\\", "/")).hostname
1641
1643
  except ValueError:
1642
1644
  return ""
1643
1645
  return _domain(host) if host else ""
@@ -1654,7 +1656,7 @@ def _url(
1654
1656
  whole URL) and anchor text to ``_STRING_BYTES``."""
1655
1657
  return Url(
1656
1658
  url=cut(url, _URL_BYTES),
1657
- host=cut(_host(url)),
1659
+ host=cut(url_host(url)),
1658
1660
  found_in=found_in,
1659
1661
  part_id=part_id,
1660
1662
  anchor_text=cut.optional(anchor_text),
@@ -127,12 +127,6 @@ class WorkflowStage(BaseModel):
127
127
  depends_on: list[str] = Field(
128
128
  default_factory=list, description="Names of stages this depends on"
129
129
  )
130
- continue_on_failure: bool = Field(
131
- default=True, description="Continue if some analyzers fail"
132
- )
133
- min_successful_analyzers: int = Field(
134
- default=1, ge=0, description="Minimum successful analyzers required"
135
- )
136
130
  condition: str | None = Field(None, description="Conditional execution expression")
137
131
 
138
132