hubmap-search-sdk 1.0.0a1__tar.gz → 1.0.0a3__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 (96) hide show
  1. hubmap_search_sdk-1.0.0a3/.release-please-manifest.json +3 -0
  2. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/CHANGELOG.md +18 -0
  3. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/PKG-INFO +3 -3
  4. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/README.md +2 -2
  5. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/pyproject.toml +1 -1
  6. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_base_client.py +12 -0
  7. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_utils/_transform.py +22 -0
  8. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_version.py +1 -1
  9. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/test_client.py +1 -1
  10. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/test_transform.py +12 -0
  11. hubmap_search_sdk-1.0.0a1/.release-please-manifest.json +0 -3
  12. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/.gitignore +0 -0
  13. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/CONTRIBUTING.md +0 -0
  14. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/LICENSE +0 -0
  15. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/SECURITY.md +0 -0
  16. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/api.md +0 -0
  17. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/bin/check-release-environment +0 -0
  18. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/bin/publish-pypi +0 -0
  19. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/examples/.keep +0 -0
  20. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/mypy.ini +0 -0
  21. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/noxfile.py +0 -0
  22. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/release-please-config.json +0 -0
  23. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/requirements-dev.lock +0 -0
  24. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/requirements.lock +0 -0
  25. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/__init__.py +0 -0
  26. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_client.py +0 -0
  27. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_compat.py +0 -0
  28. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_constants.py +0 -0
  29. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_exceptions.py +0 -0
  30. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_files.py +0 -0
  31. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_models.py +0 -0
  32. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_qs.py +0 -0
  33. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_resource.py +0 -0
  34. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_response.py +0 -0
  35. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_streaming.py +0 -0
  36. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_types.py +0 -0
  37. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_utils/__init__.py +0 -0
  38. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_utils/_logs.py +0 -0
  39. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_utils/_proxy.py +0 -0
  40. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_utils/_reflection.py +0 -0
  41. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_utils/_streams.py +0 -0
  42. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_utils/_sync.py +0 -0
  43. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_utils/_typing.py +0 -0
  44. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/_utils/_utils.py +0 -0
  45. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/lib/.keep +0 -0
  46. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/py.typed +0 -0
  47. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/resources/__init__.py +0 -0
  48. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/resources/add.py +0 -0
  49. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/resources/clear_docs.py +0 -0
  50. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/resources/indices.py +0 -0
  51. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/resources/mapping.py +0 -0
  52. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/resources/mget.py +0 -0
  53. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/resources/param_search.py +0 -0
  54. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/resources/reindex.py +0 -0
  55. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/resources/scroll_search.py +0 -0
  56. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/resources/search.py +0 -0
  57. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/resources/update.py +0 -0
  58. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/types/__init__.py +0 -0
  59. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/types/add_create_document_params.py +0 -0
  60. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/types/add_create_document_with_index_params.py +0 -0
  61. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/types/add_update_document_with_scope_params.py +0 -0
  62. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/types/index_list_response.py +0 -0
  63. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/types/mget_retrieve_multiple_by_index_params.py +0 -0
  64. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/types/mget_retrieve_multiple_params.py +0 -0
  65. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/types/param_search_execute_params.py +0 -0
  66. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/types/scroll_search_create_params.py +0 -0
  67. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/types/search_execute_index_query_params.py +0 -0
  68. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/types/search_execute_query_params.py +0 -0
  69. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/types/update_update_document_at_index_params.py +0 -0
  70. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/types/update_update_document_params.py +0 -0
  71. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/src/hubmap_search_sdk/types/update_update_document_with_scope_params.py +0 -0
  72. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/__init__.py +0 -0
  73. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/api_resources/__init__.py +0 -0
  74. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/api_resources/test_add.py +0 -0
  75. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/api_resources/test_clear_docs.py +0 -0
  76. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/api_resources/test_indices.py +0 -0
  77. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/api_resources/test_mapping.py +0 -0
  78. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/api_resources/test_mget.py +0 -0
  79. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/api_resources/test_param_search.py +0 -0
  80. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/api_resources/test_reindex.py +0 -0
  81. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/api_resources/test_scroll_search.py +0 -0
  82. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/api_resources/test_search.py +0 -0
  83. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/api_resources/test_update.py +0 -0
  84. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/conftest.py +0 -0
  85. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/sample_file.txt +0 -0
  86. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/test_deepcopy.py +0 -0
  87. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/test_extract_files.py +0 -0
  88. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/test_files.py +0 -0
  89. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/test_models.py +0 -0
  90. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/test_qs.py +0 -0
  91. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/test_required_args.py +0 -0
  92. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/test_response.py +0 -0
  93. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/test_streaming.py +0 -0
  94. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/test_utils/test_proxy.py +0 -0
  95. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/test_utils/test_typing.py +0 -0
  96. {hubmap_search_sdk-1.0.0a1 → hubmap_search_sdk-1.0.0a3}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.0.0-alpha.3"
3
+ }
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.0-alpha.3 (2025-04-09)
4
+
5
+ Full Changelog: [v1.0.0-alpha.2...v1.0.0-alpha.3](https://github.com/hubmapconsortium/search-python-sdk/compare/v1.0.0-alpha.2...v1.0.0-alpha.3)
6
+
7
+ ### Chores
8
+
9
+ * **internal:** remove trailing character ([#20](https://github.com/hubmapconsortium/search-python-sdk/issues/20)) ([eba7907](https://github.com/hubmapconsortium/search-python-sdk/commit/eba7907ee5740d1280a2e8644505539d7e0f2bd2))
10
+ * **internal:** slight transform perf improvement ([#23](https://github.com/hubmapconsortium/search-python-sdk/issues/23)) ([4605f8b](https://github.com/hubmapconsortium/search-python-sdk/commit/4605f8b1836a291ab658811a196cb46a3df818b0))
11
+
12
+ ## 1.0.0-alpha.2 (2025-04-03)
13
+
14
+ Full Changelog: [v1.0.0-alpha.1...v1.0.0-alpha.2](https://github.com/hubmapconsortium/search-python-sdk/compare/v1.0.0-alpha.1...v1.0.0-alpha.2)
15
+
16
+ ### Features
17
+
18
+ * reimplemented previous manual sdk fixes to correct 303 handling, and remove content type for get requests ([09f9c53](https://github.com/hubmapconsortium/search-python-sdk/commit/09f9c53c01d17e00f1a9f967516ed3deebabc480))
19
+ * Update README.md ([adec897](https://github.com/hubmapconsortium/search-python-sdk/commit/adec897fa3887c963334694752697bcbb74b2361))
20
+
3
21
  ## 1.0.0-alpha.1 (2025-04-02)
4
22
 
5
23
  Full Changelog: [v0.0.1-alpha.0...v1.0.0-alpha.1](https://github.com/hubmapconsortium/search-python-sdk/compare/v0.0.1-alpha.0...v1.0.0-alpha.1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: hubmap_search_sdk
3
- Version: 1.0.0a1
3
+ Version: 1.0.0a3
4
4
  Summary: The official Python library for the hubmap-search-sdk API
5
5
  Project-URL: Homepage, https://github.com/hubmapconsortium/search-python-sdk
6
6
  Project-URL: Repository, https://github.com/hubmapconsortium/search-python-sdk
@@ -29,11 +29,11 @@ Requires-Dist: sniffio
29
29
  Requires-Dist: typing-extensions<5,>=4.10
30
30
  Description-Content-Type: text/markdown
31
31
 
32
- # Hubmap Search SDK Python API library
32
+ # HuBMAP Search SDK Python API Library
33
33
 
34
34
  [![PyPI version](https://img.shields.io/pypi/v/hubmap_search_sdk.svg)](https://pypi.org/project/hubmap_search_sdk/)
35
35
 
36
- The Hubmap Search SDK Python library provides convenient access to the Hubmap Search SDK REST API from any Python 3.8+
36
+ The HuBMAP Search SDK Python library provides convenient access to the HuBMAP Search REST API from any Python 3.8+
37
37
  application. The library includes type definitions for all request params and response fields,
38
38
  and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
39
39
 
@@ -1,8 +1,8 @@
1
- # Hubmap Search SDK Python API library
1
+ # HuBMAP Search SDK Python API Library
2
2
 
3
3
  [![PyPI version](https://img.shields.io/pypi/v/hubmap_search_sdk.svg)](https://pypi.org/project/hubmap_search_sdk/)
4
4
 
5
- The Hubmap Search SDK Python library provides convenient access to the Hubmap Search SDK REST API from any Python 3.8+
5
+ The HuBMAP Search SDK Python library provides convenient access to the HuBMAP Search REST API from any Python 3.8+
6
6
  application. The library includes type definitions for all request params and response fields,
7
7
  and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
8
8
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "hubmap_search_sdk"
3
- version = "1.0.0-alpha.1"
3
+ version = "1.0.0-alpha.3"
4
4
  description = "The official Python library for the hubmap-search-sdk API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -462,6 +462,9 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
462
462
  raise RuntimeError(f"Unexpected JSON data type, {type(json_data)}, cannot merge with `extra_body`")
463
463
 
464
464
  headers = self._build_headers(options, retries_taken=retries_taken)
465
+ # If it's a GET request and there's no body (no json_data or extra_json), remove Content-Type
466
+ if options.method.lower()=='get' and not json_data:
467
+ headers.pop('Content-Type', None)
465
468
  params = _merge_mappings(self.default_query, options.params)
466
469
  content_type = headers.get("Content-Type")
467
470
  files = options.files
@@ -999,6 +1002,15 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
999
1002
  response.raise_for_status()
1000
1003
  except httpx.HTTPStatusError as err: # thrown on 4xx and 5xx status code
1001
1004
  log.debug("Encountered httpx.HTTPStatusError", exc_info=True)
1005
+ if response.status_code in (301, 302, 303, 307, 308):
1006
+ return self._process_response(
1007
+ cast_to=cast_to,
1008
+ options=options,
1009
+ response=response,
1010
+ stream=stream,
1011
+ stream_cls=stream_cls,
1012
+ retries_taken=retries_taken,
1013
+ )
1002
1014
 
1003
1015
  if remaining_retries > 0 and self._should_retry(err.response):
1004
1016
  err.response.close()
@@ -142,6 +142,10 @@ def _maybe_transform_key(key: str, type_: type) -> str:
142
142
  return key
143
143
 
144
144
 
145
+ def _no_transform_needed(annotation: type) -> bool:
146
+ return annotation == float or annotation == int
147
+
148
+
145
149
  def _transform_recursive(
146
150
  data: object,
147
151
  *,
@@ -184,6 +188,15 @@ def _transform_recursive(
184
188
  return cast(object, data)
185
189
 
186
190
  inner_type = extract_type_arg(stripped_type, 0)
191
+ if _no_transform_needed(inner_type):
192
+ # for some types there is no need to transform anything, so we can get a small
193
+ # perf boost from skipping that work.
194
+ #
195
+ # but we still need to convert to a list to ensure the data is json-serializable
196
+ if is_list(data):
197
+ return data
198
+ return list(data)
199
+
187
200
  return [_transform_recursive(d, annotation=annotation, inner_type=inner_type) for d in data]
188
201
 
189
202
  if is_union_type(stripped_type):
@@ -332,6 +345,15 @@ async def _async_transform_recursive(
332
345
  return cast(object, data)
333
346
 
334
347
  inner_type = extract_type_arg(stripped_type, 0)
348
+ if _no_transform_needed(inner_type):
349
+ # for some types there is no need to transform anything, so we can get a small
350
+ # perf boost from skipping that work.
351
+ #
352
+ # but we still need to convert to a list to ensure the data is json-serializable
353
+ if is_list(data):
354
+ return data
355
+ return list(data)
356
+
335
357
  return [await _async_transform_recursive(d, annotation=annotation, inner_type=inner_type) for d in data]
336
358
 
337
359
  if is_union_type(stripped_type):
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "hubmap_search_sdk"
4
- __version__ = "1.0.0-alpha.1" # x-release-please-version
4
+ __version__ = "1.0.0-alpha.3" # x-release-please-version
@@ -1637,7 +1637,7 @@ class TestAsyncHubmapSearchSDK:
1637
1637
  import threading
1638
1638
 
1639
1639
  from hubmap_search_sdk._utils import asyncify
1640
- from hubmap_search_sdk._base_client import get_platform
1640
+ from hubmap_search_sdk._base_client import get_platform
1641
1641
 
1642
1642
  async def test_main() -> None:
1643
1643
  result = await asyncify(get_platform)()
@@ -432,3 +432,15 @@ async def test_base64_file_input(use_async: bool) -> None:
432
432
  assert await transform({"foo": io.BytesIO(b"Hello, world!")}, TypedDictBase64Input, use_async) == {
433
433
  "foo": "SGVsbG8sIHdvcmxkIQ=="
434
434
  } # type: ignore[comparison-overlap]
435
+
436
+
437
+ @parametrize
438
+ @pytest.mark.asyncio
439
+ async def test_transform_skipping(use_async: bool) -> None:
440
+ # lists of ints are left as-is
441
+ data = [1, 2, 3]
442
+ assert await transform(data, List[int], use_async) is data
443
+
444
+ # iterables of ints are converted to a list
445
+ data = iter([1, 2, 3])
446
+ assert await transform(data, Iterable[int], use_async) == [1, 2, 3]
@@ -1,3 +0,0 @@
1
- {
2
- ".": "1.0.0-alpha.1"
3
- }