airbyte-agent-greenhouse 0.17.48__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.
Files changed (57) hide show
  1. airbyte_agent_greenhouse/__init__.py +105 -0
  2. airbyte_agent_greenhouse/_vendored/__init__.py +1 -0
  3. airbyte_agent_greenhouse/_vendored/connector_sdk/__init__.py +82 -0
  4. airbyte_agent_greenhouse/_vendored/connector_sdk/auth_strategies.py +1120 -0
  5. airbyte_agent_greenhouse/_vendored/connector_sdk/auth_template.py +135 -0
  6. airbyte_agent_greenhouse/_vendored/connector_sdk/cloud_utils/__init__.py +5 -0
  7. airbyte_agent_greenhouse/_vendored/connector_sdk/cloud_utils/client.py +213 -0
  8. airbyte_agent_greenhouse/_vendored/connector_sdk/connector_model_loader.py +965 -0
  9. airbyte_agent_greenhouse/_vendored/connector_sdk/constants.py +78 -0
  10. airbyte_agent_greenhouse/_vendored/connector_sdk/exceptions.py +23 -0
  11. airbyte_agent_greenhouse/_vendored/connector_sdk/executor/__init__.py +31 -0
  12. airbyte_agent_greenhouse/_vendored/connector_sdk/executor/hosted_executor.py +196 -0
  13. airbyte_agent_greenhouse/_vendored/connector_sdk/executor/local_executor.py +1724 -0
  14. airbyte_agent_greenhouse/_vendored/connector_sdk/executor/models.py +190 -0
  15. airbyte_agent_greenhouse/_vendored/connector_sdk/extensions.py +693 -0
  16. airbyte_agent_greenhouse/_vendored/connector_sdk/http/__init__.py +37 -0
  17. airbyte_agent_greenhouse/_vendored/connector_sdk/http/adapters/__init__.py +9 -0
  18. airbyte_agent_greenhouse/_vendored/connector_sdk/http/adapters/httpx_adapter.py +251 -0
  19. airbyte_agent_greenhouse/_vendored/connector_sdk/http/config.py +98 -0
  20. airbyte_agent_greenhouse/_vendored/connector_sdk/http/exceptions.py +119 -0
  21. airbyte_agent_greenhouse/_vendored/connector_sdk/http/protocols.py +114 -0
  22. airbyte_agent_greenhouse/_vendored/connector_sdk/http/response.py +104 -0
  23. airbyte_agent_greenhouse/_vendored/connector_sdk/http_client.py +693 -0
  24. airbyte_agent_greenhouse/_vendored/connector_sdk/introspection.py +262 -0
  25. airbyte_agent_greenhouse/_vendored/connector_sdk/logging/__init__.py +11 -0
  26. airbyte_agent_greenhouse/_vendored/connector_sdk/logging/logger.py +273 -0
  27. airbyte_agent_greenhouse/_vendored/connector_sdk/logging/types.py +93 -0
  28. airbyte_agent_greenhouse/_vendored/connector_sdk/observability/__init__.py +11 -0
  29. airbyte_agent_greenhouse/_vendored/connector_sdk/observability/config.py +179 -0
  30. airbyte_agent_greenhouse/_vendored/connector_sdk/observability/models.py +19 -0
  31. airbyte_agent_greenhouse/_vendored/connector_sdk/observability/redactor.py +81 -0
  32. airbyte_agent_greenhouse/_vendored/connector_sdk/observability/session.py +103 -0
  33. airbyte_agent_greenhouse/_vendored/connector_sdk/performance/__init__.py +6 -0
  34. airbyte_agent_greenhouse/_vendored/connector_sdk/performance/instrumentation.py +57 -0
  35. airbyte_agent_greenhouse/_vendored/connector_sdk/performance/metrics.py +93 -0
  36. airbyte_agent_greenhouse/_vendored/connector_sdk/schema/__init__.py +75 -0
  37. airbyte_agent_greenhouse/_vendored/connector_sdk/schema/base.py +164 -0
  38. airbyte_agent_greenhouse/_vendored/connector_sdk/schema/components.py +239 -0
  39. airbyte_agent_greenhouse/_vendored/connector_sdk/schema/connector.py +120 -0
  40. airbyte_agent_greenhouse/_vendored/connector_sdk/schema/extensions.py +230 -0
  41. airbyte_agent_greenhouse/_vendored/connector_sdk/schema/operations.py +146 -0
  42. airbyte_agent_greenhouse/_vendored/connector_sdk/schema/security.py +223 -0
  43. airbyte_agent_greenhouse/_vendored/connector_sdk/secrets.py +182 -0
  44. airbyte_agent_greenhouse/_vendored/connector_sdk/telemetry/__init__.py +10 -0
  45. airbyte_agent_greenhouse/_vendored/connector_sdk/telemetry/config.py +32 -0
  46. airbyte_agent_greenhouse/_vendored/connector_sdk/telemetry/events.py +59 -0
  47. airbyte_agent_greenhouse/_vendored/connector_sdk/telemetry/tracker.py +155 -0
  48. airbyte_agent_greenhouse/_vendored/connector_sdk/types.py +245 -0
  49. airbyte_agent_greenhouse/_vendored/connector_sdk/utils.py +60 -0
  50. airbyte_agent_greenhouse/_vendored/connector_sdk/validation.py +828 -0
  51. airbyte_agent_greenhouse/connector.py +1391 -0
  52. airbyte_agent_greenhouse/connector_model.py +2356 -0
  53. airbyte_agent_greenhouse/models.py +281 -0
  54. airbyte_agent_greenhouse/types.py +136 -0
  55. airbyte_agent_greenhouse-0.17.48.dist-info/METADATA +116 -0
  56. airbyte_agent_greenhouse-0.17.48.dist-info/RECORD +57 -0
  57. airbyte_agent_greenhouse-0.17.48.dist-info/WHEEL +4 -0
@@ -0,0 +1,104 @@
1
+ """HTTP response wrapper providing a consistent interface across HTTP clients."""
2
+
3
+ import json as json_module
4
+ from typing import Any
5
+
6
+
7
+ class HTTPResponse:
8
+ """Wrapper for HTTP responses that provides a consistent interface.
9
+
10
+ This class wraps responses from any HTTP client (httpx, aiohttp, etc.) and
11
+ provides a standard interface that the SDK can rely on.
12
+ """
13
+
14
+ def __init__(
15
+ self,
16
+ status_code: int,
17
+ headers: dict[str, str],
18
+ content: bytes,
19
+ _original_response: Any | None = None,
20
+ ) -> None:
21
+ """Initialize an HTTP response wrapper.
22
+
23
+ Args:
24
+ status_code: The HTTP status code (e.g., 200, 404, 500)
25
+ headers: Response headers as a dictionary
26
+ content: Raw response body as bytes
27
+ _original_response: Optional original response object from the underlying client
28
+ """
29
+ self._status_code = status_code
30
+ self._headers = headers
31
+ self._content = content
32
+ self._original_response = _original_response
33
+ self._text_cache: str | None = None
34
+ self._json_cache: Any | None = None
35
+ self._json_parsed = False
36
+
37
+ @property
38
+ def status_code(self) -> int:
39
+ """The HTTP status code of the response."""
40
+ return self._status_code
41
+
42
+ @property
43
+ def headers(self) -> dict[str, str]:
44
+ """The response headers as a dictionary."""
45
+ return self._headers
46
+
47
+ async def text(self) -> str:
48
+ """Get the response body as text.
49
+
50
+ Returns:
51
+ The response body decoded as a string.
52
+ """
53
+ if self._text_cache is None:
54
+ self._text_cache = self._content.decode("utf-8", errors="replace")
55
+ return self._text_cache
56
+
57
+ async def json(self) -> Any:
58
+ """Parse the response body as JSON.
59
+
60
+ Returns:
61
+ The parsed JSON data (dict, list, or primitive).
62
+
63
+ Raises:
64
+ ValueError: If the response body is not valid JSON.
65
+ """
66
+ if not self._json_parsed:
67
+ try:
68
+ text = await self.text()
69
+ self._json_cache = json_module.loads(text)
70
+ except json_module.JSONDecodeError as e:
71
+ raise ValueError(f"Invalid JSON in response: {e}") from e
72
+ finally:
73
+ self._json_parsed = True
74
+ return self._json_cache
75
+
76
+ def raise_for_status(self) -> None:
77
+ """Raise an exception if the response status indicates an error.
78
+
79
+ Raises:
80
+ HTTPStatusError: For 4xx or 5xx status codes.
81
+ """
82
+ if 400 <= self._status_code < 600:
83
+ # NOTE: Import here intentionally to avoid circular import.
84
+ # exceptions.py imports HTTPResponse for type hints.
85
+ from .exceptions import HTTPStatusError
86
+
87
+ raise HTTPStatusError(
88
+ status_code=self._status_code,
89
+ message=f"HTTP {self._status_code} error",
90
+ response=self,
91
+ )
92
+
93
+ @property
94
+ def original_response(self) -> Any | None:
95
+ """Get the original response object from the underlying HTTP client.
96
+
97
+ This is provided for advanced use cases but should generally not be needed.
98
+ Returns None if the original response was not provided.
99
+ """
100
+ return self._original_response
101
+
102
+ def __repr__(self) -> str:
103
+ """String representation of the response."""
104
+ return f"HTTPResponse(status_code={self.status_code})"