bluehive 0.1.0a17__py3-none-any.whl → 0.1.0a19__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.
bluehive/_streaming.py CHANGED
@@ -54,11 +54,12 @@ class Stream(Generic[_T]):
54
54
  process_data = self._client._process_response_data
55
55
  iterator = self._iter_events()
56
56
 
57
- for sse in iterator:
58
- yield process_data(data=sse.json(), cast_to=cast_to, response=response)
59
-
60
- # As we might not fully consume the response stream, we need to close it explicitly
61
- response.close()
57
+ try:
58
+ for sse in iterator:
59
+ yield process_data(data=sse.json(), cast_to=cast_to, response=response)
60
+ finally:
61
+ # Ensure the response is closed even if the consumer doesn't read all data
62
+ response.close()
62
63
 
63
64
  def __enter__(self) -> Self:
64
65
  return self
@@ -117,11 +118,12 @@ class AsyncStream(Generic[_T]):
117
118
  process_data = self._client._process_response_data
118
119
  iterator = self._iter_events()
119
120
 
120
- async for sse in iterator:
121
- yield process_data(data=sse.json(), cast_to=cast_to, response=response)
122
-
123
- # As we might not fully consume the response stream, we need to close it explicitly
124
- await response.aclose()
121
+ try:
122
+ async for sse in iterator:
123
+ yield process_data(data=sse.json(), cast_to=cast_to, response=response)
124
+ finally:
125
+ # Ensure the response is closed even if the consumer doesn't read all data
126
+ await response.aclose()
125
127
 
126
128
  async def __aenter__(self) -> Self:
127
129
  return self
bluehive/_version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "bluehive"
4
- __version__ = "0.1.0-alpha.17" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.19" # x-release-please-version
@@ -7,7 +7,22 @@ from pydantic import Field as FieldInfo
7
7
 
8
8
  from .._models import BaseModel
9
9
 
10
- __all__ = ["OrderCreateResponse", "UnionMember0", "UnionMember1", "UnionMember1OrderResult"]
10
+ __all__ = [
11
+ "OrderCreateResponse",
12
+ "UnionMember0",
13
+ "UnionMember0UnavailableService",
14
+ "UnionMember1",
15
+ "UnionMember1OrderResult",
16
+ "UnionMember1UnavailableService",
17
+ ]
18
+
19
+
20
+ class UnionMember0UnavailableService(BaseModel):
21
+ reason: str
22
+
23
+ service_id: str = FieldInfo(alias="serviceId")
24
+
25
+ service_name: Optional[str] = FieldInfo(alias="serviceName", default=None)
11
26
 
12
27
 
13
28
  class UnionMember0(BaseModel):
@@ -21,8 +36,14 @@ class UnionMember0(BaseModel):
21
36
 
22
37
  message: Optional[str] = None
23
38
 
39
+ partial_success: Optional[bool] = FieldInfo(alias="partialSuccess", default=None)
40
+
24
41
  self_pay: Optional[bool] = FieldInfo(alias="selfPay", default=None)
25
42
 
43
+ unavailable_services: Optional[List[UnionMember0UnavailableService]] = FieldInfo(
44
+ alias="unavailableServices", default=None
45
+ )
46
+
26
47
 
27
48
  class UnionMember1OrderResult(BaseModel):
28
49
  order_id: str = FieldInfo(alias="orderId")
@@ -32,6 +53,14 @@ class UnionMember1OrderResult(BaseModel):
32
53
  provider_id: str = FieldInfo(alias="providerId")
33
54
 
34
55
 
56
+ class UnionMember1UnavailableService(BaseModel):
57
+ reason: str
58
+
59
+ service_id: str = FieldInfo(alias="serviceId")
60
+
61
+ service_name: Optional[str] = FieldInfo(alias="serviceName", default=None)
62
+
63
+
35
64
  class UnionMember1(BaseModel):
36
65
  order_results: List[UnionMember1OrderResult] = FieldInfo(alias="orderResults")
37
66
 
@@ -41,5 +70,11 @@ class UnionMember1(BaseModel):
41
70
 
42
71
  message: Optional[str] = None
43
72
 
73
+ partial_success: Optional[bool] = FieldInfo(alias="partialSuccess", default=None)
74
+
75
+ unavailable_services: Optional[List[UnionMember1UnavailableService]] = FieldInfo(
76
+ alias="unavailableServices", default=None
77
+ )
78
+
44
79
 
45
80
  OrderCreateResponse: TypeAlias = Union[UnionMember0, UnionMember1]
@@ -7,7 +7,23 @@ from pydantic import Field as FieldInfo
7
7
 
8
8
  from .._models import BaseModel
9
9
 
10
- __all__ = ["OrderSendForEmployeeResponse", "UnionMember0", "UnionMember1", "UnionMember1OrderResult"]
10
+ __all__ = [
11
+ "OrderSendForEmployeeResponse",
12
+ "UnionMember0",
13
+ "UnionMember0UnavailableService",
14
+ "UnionMember1",
15
+ "UnionMember1OrderResult",
16
+ "UnionMember1UnavailableService",
17
+ ]
18
+
19
+
20
+ class UnionMember0UnavailableService(BaseModel):
21
+ reason: str
22
+ """Why the service was unavailable"""
23
+
24
+ service_id: str = FieldInfo(alias="serviceId")
25
+
26
+ service_name: Optional[str] = FieldInfo(alias="serviceName", default=None)
11
27
 
12
28
 
13
29
  class UnionMember0(BaseModel):
@@ -19,6 +35,14 @@ class UnionMember0(BaseModel):
19
35
 
20
36
  message: Optional[str] = None
21
37
 
38
+ partial_success: Optional[bool] = FieldInfo(alias="partialSuccess", default=None)
39
+ """True when some services were unavailable but order was still created"""
40
+
41
+ unavailable_services: Optional[List[UnionMember0UnavailableService]] = FieldInfo(
42
+ alias="unavailableServices", default=None
43
+ )
44
+ """Services that could not be included in the order"""
45
+
22
46
 
23
47
  class UnionMember1OrderResult(BaseModel):
24
48
  order_id: str = FieldInfo(alias="orderId")
@@ -28,6 +52,15 @@ class UnionMember1OrderResult(BaseModel):
28
52
  provider_id: str = FieldInfo(alias="providerId")
29
53
 
30
54
 
55
+ class UnionMember1UnavailableService(BaseModel):
56
+ reason: str
57
+ """Why the service was unavailable"""
58
+
59
+ service_id: str = FieldInfo(alias="serviceId")
60
+
61
+ service_name: Optional[str] = FieldInfo(alias="serviceName", default=None)
62
+
63
+
31
64
  class UnionMember1(BaseModel):
32
65
  order_results: List[UnionMember1OrderResult] = FieldInfo(alias="orderResults")
33
66
 
@@ -37,5 +70,13 @@ class UnionMember1(BaseModel):
37
70
 
38
71
  message: Optional[str] = None
39
72
 
73
+ partial_success: Optional[bool] = FieldInfo(alias="partialSuccess", default=None)
74
+ """True when some services were unavailable but orders were still created"""
75
+
76
+ unavailable_services: Optional[List[UnionMember1UnavailableService]] = FieldInfo(
77
+ alias="unavailableServices", default=None
78
+ )
79
+ """Services that could not be included in any order"""
80
+
40
81
 
41
82
  OrderSendForEmployeeResponse: TypeAlias = Union[UnionMember0, UnionMember1]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bluehive
3
- Version: 0.1.0a17
3
+ Version: 0.1.0a19
4
4
  Summary: The official Python library for the bluehive API
5
5
  Project-URL: Homepage, https://github.com/bluehive-health/bluehive-sdk-python
6
6
  Project-URL: Repository, https://github.com/bluehive-health/bluehive-sdk-python
@@ -18,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.10
18
18
  Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
21
22
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
23
  Classifier: Typing :: Typed
23
24
  Requires-Python: >=3.9
@@ -9,9 +9,9 @@ bluehive/_models.py,sha256=3D65psj_C02Mw0K2zpBWrn1khmrvtEXgTTQ6P4r3tUY,31837
9
9
  bluehive/_qs.py,sha256=craIKyvPktJ94cvf9zn8j8ekG9dWJzhWv0ob34lIOv4,4828
10
10
  bluehive/_resource.py,sha256=MI2mGktYiePpr3PUh2uCPn1ubEsju6JkKoMupdTaqtc,1112
11
11
  bluehive/_response.py,sha256=u3wZ9ksvCqcP549TZTsozw0LNZmHf1yPVWPo1hxMNDg,28800
12
- bluehive/_streaming.py,sha256=ULiijxzSukAhT9t9G-1Mo2ks4iUt6kvD9NHYB8WlJwk,10157
12
+ bluehive/_streaming.py,sha256=XdfOw0CK5YOWsYw0YebCWmglGspKi9NOzjkR3Krj9To,10229
13
13
  bluehive/_types.py,sha256=9h31eihqlGo3KevS5EpSAWg-hJWTZW4wsWCrlTkVC_4,7238
14
- bluehive/_version.py,sha256=R4uo8omB6lbFbEHuSPXtXQcv5VkbadMEtGmJZ9KxmbU,169
14
+ bluehive/_version.py,sha256=NwkWmornUCT5co_EIWMATwpQhk0NjK57-Ia3TCd7VEs,169
15
15
  bluehive/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  bluehive/_utils/__init__.py,sha256=7fch0GT9zpNnErbciSpUNa-SjTxxjY6kxHxKMOM4AGs,2305
17
17
  bluehive/_utils/_compat.py,sha256=D8gtAvjJQrDWt9upS0XaG9Rr5l1QhiAx_I_1utT_tt0,1195
@@ -67,14 +67,14 @@ bluehive/types/hl7_send_results_response.py,sha256=KmOB5ULQtdPVvLu0bpiDFd8ABqygv
67
67
  bluehive/types/integration_check_active_response.py,sha256=-07-eOa1xFat1JcO8DE6YKNePIgIq8SC7W0CENPbDyc,233
68
68
  bluehive/types/integration_list_response.py,sha256=vx8WGfEzFBJNXPmNy9GLVkVX-3daPFAuXxZeXK8TwZI,490
69
69
  bluehive/types/order_create_params.py,sha256=cUPHNbs_411SS-ZMdTay3sbTUwE1CYxkWTLfNmoJOh8,9819
70
- bluehive/types/order_create_response.py,sha256=QSMxOF7go4d3EBytnxpfXlX5eGnm4G2xVIMgkuDpNwo,1187
70
+ bluehive/types/order_create_response.py,sha256=o63KgkgRodqO0UoLDqLySnnSe72-1nU_oixFk81xQSo,2140
71
71
  bluehive/types/order_retrieve_response.py,sha256=U-RkxPWVLtSlKSb265FLAIX7KBycAZJYxnZLtDE5ASk,453
72
72
  bluehive/types/order_retrieve_results_params.py,sha256=rFzo1sqb9ie2RKa8wfk7TLNYFirm9OaTVumeowMyToA,677
73
73
  bluehive/types/order_retrieve_results_response.py,sha256=MQjIN2M2SVLEts92ii7cFLYCIyqCQcRiE981raJUsDY,1383
74
74
  bluehive/types/order_schedule_appointment_params.py,sha256=St5aEKS6bSHqQy-sK8PLwALrtdSmp0siRNkhTkvE5Bc,1629
75
75
  bluehive/types/order_schedule_appointment_response.py,sha256=3rhnX46JIol9Y1BqTKrPFnfVjC2f3jCSdFWqexH_Ckw,256
76
76
  bluehive/types/order_send_for_employee_params.py,sha256=NW8n9uK61KbO3iYWUwDvcYDEunrk_pfmI2e7BGksiYE,2196
77
- bluehive/types/order_send_for_employee_response.py,sha256=Km-NtzpYkIYytbljzXxAXOJ0iTN2H-AL1BAbrd9gFww,1041
77
+ bluehive/types/order_send_for_employee_response.py,sha256=lhFLA7ha-J9CuZxChXQ0-BwrHfGYawp2o_ItO34sqvM,2356
78
78
  bluehive/types/order_update_params.py,sha256=CjxhU79M_HiDmuZ39FtnN4SOcNg59tPlkYUL63Ogqow,1052
79
79
  bluehive/types/order_update_response.py,sha256=m2oSWYKt0g90U8tqvoAwaa4zy_HI6b7vqpoEzAjyn7o,547
80
80
  bluehive/types/order_update_status_params.py,sha256=IqDeAflWoMfikRMMIEySCT8R9HNI7IE9oUdbGtZiKf0,470
@@ -91,7 +91,7 @@ bluehive/types/employers/service_bundle_list_response.py,sha256=vnZlYv7KObJ0OSSY
91
91
  bluehive/types/employers/service_bundle_retrieve_response.py,sha256=9nwdzfgErAQFzqwivKhKCLqA9k7ZsMj4YbNig09-Eho,1030
92
92
  bluehive/types/employers/service_bundle_update_params.py,sha256=gxRnvCSsBsUqi1M91nhEXgj-2l03xlrnPeXOPAQ1ujA,812
93
93
  bluehive/types/employers/service_bundle_update_response.py,sha256=zUR_nYflDEmLSmTcFb4EaTELCInqZZI-VIBHgcPq7G4,1026
94
- bluehive-0.1.0a17.dist-info/METADATA,sha256=g1Byh0eOLg0t0ai4wirmIOhCOqCqlPkr5xHsN6eLg8o,13629
95
- bluehive-0.1.0a17.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
96
- bluehive-0.1.0a17.dist-info/licenses/LICENSE,sha256=Q2LP5YQQAGzyScIIkgum9Z19KCG4jZvZHMgDQ_vOOqM,11338
97
- bluehive-0.1.0a17.dist-info/RECORD,,
94
+ bluehive-0.1.0a19.dist-info/METADATA,sha256=9lOuAC4qJFsGpz9UPlxOkncOLgcSAau5BVIg7X7Md1I,13680
95
+ bluehive-0.1.0a19.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
96
+ bluehive-0.1.0a19.dist-info/licenses/LICENSE,sha256=Q2LP5YQQAGzyScIIkgum9Z19KCG4jZvZHMgDQ_vOOqM,11338
97
+ bluehive-0.1.0a19.dist-info/RECORD,,