bluehive 0.1.0a3__tar.gz → 0.1.0a5__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.
- bluehive-0.1.0a5/.release-please-manifest.json +3 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/CHANGELOG.md +26 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/PKG-INFO +5 -5
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/README.md +3 -3
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/pyproject.toml +2 -2
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_base_client.py +9 -2
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_models.py +1 -1
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_version.py +1 -1
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_client.py +2 -2
- bluehive-0.1.0a3/.release-please-manifest.json +0 -3
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/.gitignore +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/CONTRIBUTING.md +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/LICENSE +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/SECURITY.md +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/api.md +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/bin/check-release-environment +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/bin/publish-pypi +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/examples/.keep +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/mypy.ini +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/noxfile.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/release-please-config.json +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/requirements-dev.lock +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/requirements.lock +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/__init__.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_client.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_compat.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_constants.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_exceptions.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_files.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_qs.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_resource.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_response.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_streaming.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_types.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/__init__.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_logs.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_proxy.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_reflection.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_resources_proxy.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_streams.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_sync.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_transform.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_typing.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_utils.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/lib/.keep +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/py.typed +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/resources/__init__.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/resources/database.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/resources/fax.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/resources/health.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/resources/providers.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/resources/version.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/__init__.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/database_check_health_response.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/fax_list_providers_response.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/fax_retrieve_status_response.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/fax_send_params.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/fax_send_response.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/health_check_response.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/provider_lookup_params.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/provider_lookup_response.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/version_retrieve_response.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/__init__.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/api_resources/__init__.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/api_resources/test_database.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/api_resources/test_fax.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/api_resources/test_health.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/api_resources/test_providers.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/api_resources/test_version.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/conftest.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/sample_file.txt +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_deepcopy.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_extract_files.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_files.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_models.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_qs.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_required_args.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_response.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_streaming.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_transform.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_utils/test_proxy.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_utils/test_typing.py +0 -0
- {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/utils.py +0 -0
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.0-alpha.5 (2025-07-22)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.1.0-alpha.4...v0.1.0-alpha.5](https://github.com/bluehive-health/bluehive-sdk-python/compare/v0.1.0-alpha.4...v0.1.0-alpha.5)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* clean up environment call outs ([3277aa1](https://github.com/bluehive-health/bluehive-sdk-python/commit/3277aa128c028148a893af9e23ac74ac0349654a))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* **parsing:** ignore empty metadata ([937f49a](https://github.com/bluehive-health/bluehive-sdk-python/commit/937f49a01c0c6e7ac45880c16f1006b74bfb6133))
|
|
15
|
+
|
|
16
|
+
## 0.1.0-alpha.4 (2025-07-12)
|
|
17
|
+
|
|
18
|
+
Full Changelog: [v0.1.0-alpha.3...v0.1.0-alpha.4](https://github.com/bluehive-health/bluehive-sdk-python/compare/v0.1.0-alpha.3...v0.1.0-alpha.4)
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* **client:** don't send Content-Type header on GET requests ([2c2bbb9](https://github.com/bluehive-health/bluehive-sdk-python/commit/2c2bbb99f7774aeb7eaaf955c188819794376adc))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Chores
|
|
26
|
+
|
|
27
|
+
* **readme:** fix version rendering on pypi ([933fd60](https://github.com/bluehive-health/bluehive-sdk-python/commit/933fd60ff623cb82bc3017b5180c73fea804b72a))
|
|
28
|
+
|
|
3
29
|
## 0.1.0-alpha.3 (2025-07-10)
|
|
4
30
|
|
|
5
31
|
Full Changelog: [v0.1.0-alpha.2...v0.1.0-alpha.3](https://github.com/bluehive-health/bluehive-sdk-python/compare/v0.1.0-alpha.2...v0.1.0-alpha.3)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: bluehive
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.0a5
|
|
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
|
|
@@ -30,12 +30,13 @@ Requires-Dist: sniffio
|
|
|
30
30
|
Requires-Dist: typing-extensions<5,>=4.10
|
|
31
31
|
Provides-Extra: aiohttp
|
|
32
32
|
Requires-Dist: aiohttp; extra == 'aiohttp'
|
|
33
|
-
Requires-Dist: httpx-aiohttp>=0.1.
|
|
33
|
+
Requires-Dist: httpx-aiohttp>=0.1.8; extra == 'aiohttp'
|
|
34
34
|
Description-Content-Type: text/markdown
|
|
35
35
|
|
|
36
36
|
# BlueHive Python API library
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
<!-- prettier-ignore -->
|
|
39
|
+
[)](https://pypi.org/project/bluehive/)
|
|
39
40
|
|
|
40
41
|
The BlueHive Python library provides convenient access to the BlueHive REST API from any Python 3.8+
|
|
41
42
|
application. The library includes type definitions for all request params and response fields,
|
|
@@ -113,7 +114,6 @@ pip install --pre bluehive[aiohttp]
|
|
|
113
114
|
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
114
115
|
|
|
115
116
|
```python
|
|
116
|
-
import os
|
|
117
117
|
import asyncio
|
|
118
118
|
from bluehive import DefaultAioHttpClient
|
|
119
119
|
from bluehive import AsyncBlueHive
|
|
@@ -121,7 +121,7 @@ from bluehive import AsyncBlueHive
|
|
|
121
121
|
|
|
122
122
|
async def main() -> None:
|
|
123
123
|
async with AsyncBlueHive(
|
|
124
|
-
api_key=
|
|
124
|
+
api_key="My API Key",
|
|
125
125
|
http_client=DefaultAioHttpClient(),
|
|
126
126
|
) as client:
|
|
127
127
|
response = await client.health.check()
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# BlueHive Python API library
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<!-- prettier-ignore -->
|
|
4
|
+
[)](https://pypi.org/project/bluehive/)
|
|
4
5
|
|
|
5
6
|
The BlueHive Python library provides convenient access to the BlueHive REST API from any Python 3.8+
|
|
6
7
|
application. The library includes type definitions for all request params and response fields,
|
|
@@ -78,7 +79,6 @@ pip install --pre bluehive[aiohttp]
|
|
|
78
79
|
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
79
80
|
|
|
80
81
|
```python
|
|
81
|
-
import os
|
|
82
82
|
import asyncio
|
|
83
83
|
from bluehive import DefaultAioHttpClient
|
|
84
84
|
from bluehive import AsyncBlueHive
|
|
@@ -86,7 +86,7 @@ from bluehive import AsyncBlueHive
|
|
|
86
86
|
|
|
87
87
|
async def main() -> None:
|
|
88
88
|
async with AsyncBlueHive(
|
|
89
|
-
api_key=
|
|
89
|
+
api_key="My API Key",
|
|
90
90
|
http_client=DefaultAioHttpClient(),
|
|
91
91
|
) as client:
|
|
92
92
|
response = await client.health.check()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "bluehive"
|
|
3
|
-
version = "0.1.0-alpha.
|
|
3
|
+
version = "0.1.0-alpha.5"
|
|
4
4
|
description = "The official Python library for the bluehive API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -39,7 +39,7 @@ Homepage = "https://github.com/bluehive-health/bluehive-sdk-python"
|
|
|
39
39
|
Repository = "https://github.com/bluehive-health/bluehive-sdk-python"
|
|
40
40
|
|
|
41
41
|
[project.optional-dependencies]
|
|
42
|
-
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.
|
|
42
|
+
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.8"]
|
|
43
43
|
|
|
44
44
|
[tool.rye]
|
|
45
45
|
managed = true
|
|
@@ -529,6 +529,15 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
529
529
|
# work around https://github.com/encode/httpx/discussions/2880
|
|
530
530
|
kwargs["extensions"] = {"sni_hostname": prepared_url.host.replace("_", "-")}
|
|
531
531
|
|
|
532
|
+
is_body_allowed = options.method.lower() != "get"
|
|
533
|
+
|
|
534
|
+
if is_body_allowed:
|
|
535
|
+
kwargs["json"] = json_data if is_given(json_data) else None
|
|
536
|
+
kwargs["files"] = files
|
|
537
|
+
else:
|
|
538
|
+
headers.pop("Content-Type", None)
|
|
539
|
+
kwargs.pop("data", None)
|
|
540
|
+
|
|
532
541
|
# TODO: report this error to httpx
|
|
533
542
|
return self._client.build_request( # pyright: ignore[reportUnknownMemberType]
|
|
534
543
|
headers=headers,
|
|
@@ -540,8 +549,6 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
540
549
|
# so that passing a `TypedDict` doesn't cause an error.
|
|
541
550
|
# https://github.com/microsoft/pyright/issues/3526#event-6715453066
|
|
542
551
|
params=self.qs.stringify(cast(Mapping[str, Any], params)) if params else None,
|
|
543
|
-
json=json_data if is_given(json_data) else None,
|
|
544
|
-
files=files,
|
|
545
552
|
**kwargs,
|
|
546
553
|
)
|
|
547
554
|
|
|
@@ -439,7 +439,7 @@ def construct_type(*, value: object, type_: object, metadata: Optional[List[Any]
|
|
|
439
439
|
type_ = type_.__value__ # type: ignore[unreachable]
|
|
440
440
|
|
|
441
441
|
# unwrap `Annotated[T, ...]` -> `T`
|
|
442
|
-
if metadata is not None:
|
|
442
|
+
if metadata is not None and len(metadata) > 0:
|
|
443
443
|
meta: tuple[Any, ...] = tuple(metadata)
|
|
444
444
|
elif is_annotated_type(type_):
|
|
445
445
|
meta = get_args(type_)[1:]
|
|
@@ -464,7 +464,7 @@ class TestBlueHive:
|
|
|
464
464
|
def test_multipart_repeating_array(self, client: BlueHive) -> None:
|
|
465
465
|
request = client._build_request(
|
|
466
466
|
FinalRequestOptions.construct(
|
|
467
|
-
method="
|
|
467
|
+
method="post",
|
|
468
468
|
url="/foo",
|
|
469
469
|
headers={"Content-Type": "multipart/form-data; boundary=6b7ba517decee4a450543ea6ae821c82"},
|
|
470
470
|
json_data={"array": ["foo", "bar"]},
|
|
@@ -1265,7 +1265,7 @@ class TestAsyncBlueHive:
|
|
|
1265
1265
|
def test_multipart_repeating_array(self, async_client: AsyncBlueHive) -> None:
|
|
1266
1266
|
request = async_client._build_request(
|
|
1267
1267
|
FinalRequestOptions.construct(
|
|
1268
|
-
method="
|
|
1268
|
+
method="post",
|
|
1269
1269
|
url="/foo",
|
|
1270
1270
|
headers={"Content-Type": "multipart/form-data; boundary=6b7ba517decee4a450543ea6ae821c82"},
|
|
1271
1271
|
json_data={"array": ["foo", "bar"]},
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|