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.
Files changed (83) hide show
  1. bluehive-0.1.0a5/.release-please-manifest.json +3 -0
  2. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/CHANGELOG.md +26 -0
  3. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/PKG-INFO +5 -5
  4. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/README.md +3 -3
  5. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/pyproject.toml +2 -2
  6. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_base_client.py +9 -2
  7. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_models.py +1 -1
  8. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_version.py +1 -1
  9. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_client.py +2 -2
  10. bluehive-0.1.0a3/.release-please-manifest.json +0 -3
  11. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/.gitignore +0 -0
  12. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/CONTRIBUTING.md +0 -0
  13. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/LICENSE +0 -0
  14. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/SECURITY.md +0 -0
  15. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/api.md +0 -0
  16. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/bin/check-release-environment +0 -0
  17. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/bin/publish-pypi +0 -0
  18. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/examples/.keep +0 -0
  19. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/mypy.ini +0 -0
  20. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/noxfile.py +0 -0
  21. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/release-please-config.json +0 -0
  22. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/requirements-dev.lock +0 -0
  23. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/requirements.lock +0 -0
  24. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/__init__.py +0 -0
  25. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_client.py +0 -0
  26. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_compat.py +0 -0
  27. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_constants.py +0 -0
  28. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_exceptions.py +0 -0
  29. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_files.py +0 -0
  30. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_qs.py +0 -0
  31. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_resource.py +0 -0
  32. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_response.py +0 -0
  33. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_streaming.py +0 -0
  34. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_types.py +0 -0
  35. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/__init__.py +0 -0
  36. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_logs.py +0 -0
  37. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_proxy.py +0 -0
  38. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_reflection.py +0 -0
  39. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_resources_proxy.py +0 -0
  40. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_streams.py +0 -0
  41. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_sync.py +0 -0
  42. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_transform.py +0 -0
  43. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_typing.py +0 -0
  44. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/_utils/_utils.py +0 -0
  45. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/lib/.keep +0 -0
  46. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/py.typed +0 -0
  47. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/resources/__init__.py +0 -0
  48. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/resources/database.py +0 -0
  49. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/resources/fax.py +0 -0
  50. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/resources/health.py +0 -0
  51. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/resources/providers.py +0 -0
  52. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/resources/version.py +0 -0
  53. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/__init__.py +0 -0
  54. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/database_check_health_response.py +0 -0
  55. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/fax_list_providers_response.py +0 -0
  56. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/fax_retrieve_status_response.py +0 -0
  57. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/fax_send_params.py +0 -0
  58. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/fax_send_response.py +0 -0
  59. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/health_check_response.py +0 -0
  60. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/provider_lookup_params.py +0 -0
  61. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/provider_lookup_response.py +0 -0
  62. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/src/bluehive/types/version_retrieve_response.py +0 -0
  63. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/__init__.py +0 -0
  64. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/api_resources/__init__.py +0 -0
  65. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/api_resources/test_database.py +0 -0
  66. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/api_resources/test_fax.py +0 -0
  67. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/api_resources/test_health.py +0 -0
  68. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/api_resources/test_providers.py +0 -0
  69. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/api_resources/test_version.py +0 -0
  70. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/conftest.py +0 -0
  71. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/sample_file.txt +0 -0
  72. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_deepcopy.py +0 -0
  73. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_extract_files.py +0 -0
  74. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_files.py +0 -0
  75. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_models.py +0 -0
  76. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_qs.py +0 -0
  77. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_required_args.py +0 -0
  78. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_response.py +0 -0
  79. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_streaming.py +0 -0
  80. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_transform.py +0 -0
  81. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_utils/test_proxy.py +0 -0
  82. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/test_utils/test_typing.py +0 -0
  83. {bluehive-0.1.0a3 → bluehive-0.1.0a5}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.1.0-alpha.5"
3
+ }
@@ -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.0a3
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.6; extra == 'aiohttp'
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
- [![PyPI version](https://github.com/bluehive-health/bluehive-sdk-python/tree/main/<https://img.shields.io/pypi/v/bluehive.svg?label=pypi%20(stable)>)](https://pypi.org/project/bluehive/)
38
+ <!-- prettier-ignore -->
39
+ [![PyPI version](https://img.shields.io/pypi/v/bluehive.svg?label=pypi%20(stable))](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=os.environ.get("BLUEHIVE_API_KEY"), # This is the default and can be omitted
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
- [![PyPI version](<https://img.shields.io/pypi/v/bluehive.svg?label=pypi%20(stable)>)](https://pypi.org/project/bluehive/)
3
+ <!-- prettier-ignore -->
4
+ [![PyPI version](https://img.shields.io/pypi/v/bluehive.svg?label=pypi%20(stable))](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=os.environ.get("BLUEHIVE_API_KEY"), # This is the default and can be omitted
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"
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.6"]
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:]
@@ -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.3" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.5" # x-release-please-version
@@ -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="get",
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="get",
1268
+ method="post",
1269
1269
  url="/foo",
1270
1270
  headers={"Content-Type": "multipart/form-data; boundary=6b7ba517decee4a450543ea6ae821c82"},
1271
1271
  json_data={"array": ["foo", "bar"]},
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.1.0-alpha.3"
3
- }
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