diff --git a/.github/workflows/pr-review-slack.yml b/.github/workflows/pr-review-slack.yml new file mode 100644 index 0000000..20c6516 --- /dev/null +++ b/.github/workflows/pr-review-slack.yml @@ -0,0 +1,37 @@ +name: PR Review Slack + +on: + pull_request: + types: [opened, reopened, ready_for_review] + +jobs: + notify: + if: github.event.pull_request.draft == false + runs-on: ubuntu-latest + steps: + - name: Post to Slack + uses: slackapi/slack-github-action@v2.0.0 + with: + method: chat.postMessage + token: ${{ secrets.SLACK_BOT_TOKEN }} + payload: | + { + "channel": "C0AE0B1A874", + "text": "A new PR needs your review", + "blocks": [ + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "*A new PR needs your review*" + } + }, + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "*Repo:* ${{ github.repository }}\n*Title:* ${{ github.event.pull_request.title }}\n*Author:* ${{ github.event.pull_request.user.login }}\n<${{ github.event.pull_request.html_url }}|View PR>" + } + } + ] + } diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 2aca35a..4208b5c 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.5.0" + ".": "0.6.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 20fc47e..825fb78 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 114 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/casemark%2Frouter-bd405528598f3651701eeddd54ea13fa8eeb40ac31f67456ef36972e6ab9ec3e.yml -openapi_spec_hash: b3fef85dfb46022c54c97dba898121ae -config_hash: 0b0fa7d7b7aca09da4b4f7e1d28f8c3c +configured_endpoints: 112 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/casemark%2Frouter-b7ad2a37a671b2b258b3a303fdfa84af4b003dcb28ce579f8eb5407d7b6483ae.yml +openapi_spec_hash: f86f6bb2c0fa3c011a2d400f26e99fa0 +config_hash: 3f4ac44914c70706a4ad30173624bd72 diff --git a/CHANGELOG.md b/CHANGELOG.md index ba040f2..d749a06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 0.6.0 (2026-02-10) + +Full Changelog: [v0.5.0...v0.6.0](https://github.com/CaseMark/casedev-python/compare/v0.5.0...v0.6.0) + +### Features + +* **api:** api update ([36cbc0c](https://github.com/CaseMark/casedev-python/commit/36cbc0cf466fd98fcf58b7a40a2b2080ad9b21f3)) + + +### Chores + +* update SDK settings ([4f246c4](https://github.com/CaseMark/casedev-python/commit/4f246c445acecc3553791855f9eb9b24a1423c00)) + ## 0.5.0 (2026-02-06) Full Changelog: [v0.4.0...v0.5.0](https://github.com/CaseMark/casedev-python/compare/v0.4.0...v0.5.0) diff --git a/api.md b/api.md index f234575..1c40978 100644 --- a/api.md +++ b/api.md @@ -429,15 +429,13 @@ Methods: Types: ```python -from casedev.types.vault import MultipartGetPartURLsResponse, MultipartInitResponse +from casedev.types.vault import MultipartGetPartURLsResponse ``` Methods: - client.vault.multipart.abort(id, \*\*params) -> None -- client.vault.multipart.complete(id, \*\*params) -> None - client.vault.multipart.get_part_urls(id, \*\*params) -> MultipartGetPartURLsResponse -- client.vault.multipart.init(id, \*\*params) -> MultipartInitResponse ## Objects diff --git a/pyproject.toml b/pyproject.toml index 78280eb..12dfbdf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "casedev" -version = "0.5.0" +version = "0.6.0" description = "The official Python library for the casedev API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/casedev/_version.py b/src/casedev/_version.py index 9496146..48ab768 100644 --- a/src/casedev/_version.py +++ b/src/casedev/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "casedev" -__version__ = "0.5.0" # x-release-please-version +__version__ = "0.6.0" # x-release-please-version diff --git a/src/casedev/resources/vault/multipart.py b/src/casedev/resources/vault/multipart.py index ea1e157..7c57246 100644 --- a/src/casedev/resources/vault/multipart.py +++ b/src/casedev/resources/vault/multipart.py @@ -6,7 +6,7 @@ import httpx -from ..._types import Body, Omit, Query, Headers, NoneType, NotGiven, omit, not_given +from ..._types import Body, Query, Headers, NoneType, NotGiven, not_given from ..._utils import maybe_transform, async_maybe_transform from ..._compat import cached_property from ..._resource import SyncAPIResource, AsyncAPIResource @@ -16,14 +16,8 @@ async_to_raw_response_wrapper, async_to_streamed_response_wrapper, ) -from ...types.vault import ( - multipart_init_params, - multipart_abort_params, - multipart_complete_params, - multipart_get_part_urls_params, -) +from ...types.vault import multipart_abort_params, multipart_get_part_urls_params from ..._base_client import make_request_options -from ...types.vault.multipart_init_response import MultipartInitResponse from ...types.vault.multipart_get_part_urls_response import MultipartGetPartURLsResponse __all__ = ["MultipartResource", "AsyncMultipartResource"] @@ -63,7 +57,7 @@ def abort( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> None: """ - Abort a multipart upload and discard uploaded parts. + Abort a multipart upload and discard uploaded parts (live). Args: extra_headers: Send extra headers @@ -92,53 +86,6 @@ def abort( cast_to=NoneType, ) - def complete( - self, - id: str, - *, - object_id: str, - parts: Iterable[multipart_complete_params.Part], - size_bytes: int, - upload_id: str, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> None: - """ - Complete a multipart upload by providing the list of part numbers and ETags. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not id: - raise ValueError(f"Expected a non-empty value for `id` but received {id!r}") - extra_headers = {"Accept": "*/*", **(extra_headers or {})} - return self._post( - f"/vault/{id}/multipart/complete", - body=maybe_transform( - { - "object_id": object_id, - "parts": parts, - "size_bytes": size_bytes, - "upload_id": upload_id, - }, - multipart_complete_params.MultipartCompleteParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=NoneType, - ) - def get_part_urls( self, id: str, @@ -154,7 +101,7 @@ def get_part_urls( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> MultipartGetPartURLsResponse: """ - Generate presigned URLs for individual multipart upload parts. + Generate presigned URLs for individual multipart upload parts (live). Args: extra_headers: Send extra headers @@ -183,75 +130,6 @@ def get_part_urls( cast_to=MultipartGetPartURLsResponse, ) - def init( - self, - id: str, - *, - content_type: str, - filename: str, - size_bytes: int, - auto_index: bool | Omit = omit, - metadata: object | Omit = omit, - part_size_bytes: int | Omit = omit, - path: str | Omit = omit, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> MultipartInitResponse: - """Initiate a multipart upload for large files (>5GB). - - Returns an uploadId and - object metadata. Use part URLs endpoint to upload parts and complete endpoint to - finalize. - - Args: - content_type: MIME type of the file - - filename: Name of the file to upload - - size_bytes: File size in bytes (required, max 8GB). - - auto_index: Whether to automatically process and index the file for search - - metadata: Additional metadata to associate with the file - - part_size_bytes: Multipart part size in bytes (min 5MB). Defaults to 64MB. - - path: Optional folder path for hierarchy preservation - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not id: - raise ValueError(f"Expected a non-empty value for `id` but received {id!r}") - return self._post( - f"/vault/{id}/multipart/init", - body=maybe_transform( - { - "content_type": content_type, - "filename": filename, - "size_bytes": size_bytes, - "auto_index": auto_index, - "metadata": metadata, - "part_size_bytes": part_size_bytes, - "path": path, - }, - multipart_init_params.MultipartInitParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=MultipartInitResponse, - ) - class AsyncMultipartResource(AsyncAPIResource): @cached_property @@ -287,7 +165,7 @@ async def abort( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> None: """ - Abort a multipart upload and discard uploaded parts. + Abort a multipart upload and discard uploaded parts (live). Args: extra_headers: Send extra headers @@ -316,53 +194,6 @@ async def abort( cast_to=NoneType, ) - async def complete( - self, - id: str, - *, - object_id: str, - parts: Iterable[multipart_complete_params.Part], - size_bytes: int, - upload_id: str, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> None: - """ - Complete a multipart upload by providing the list of part numbers and ETags. - - Args: - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not id: - raise ValueError(f"Expected a non-empty value for `id` but received {id!r}") - extra_headers = {"Accept": "*/*", **(extra_headers or {})} - return await self._post( - f"/vault/{id}/multipart/complete", - body=await async_maybe_transform( - { - "object_id": object_id, - "parts": parts, - "size_bytes": size_bytes, - "upload_id": upload_id, - }, - multipart_complete_params.MultipartCompleteParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=NoneType, - ) - async def get_part_urls( self, id: str, @@ -378,7 +209,7 @@ async def get_part_urls( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> MultipartGetPartURLsResponse: """ - Generate presigned URLs for individual multipart upload parts. + Generate presigned URLs for individual multipart upload parts (live). Args: extra_headers: Send extra headers @@ -407,75 +238,6 @@ async def get_part_urls( cast_to=MultipartGetPartURLsResponse, ) - async def init( - self, - id: str, - *, - content_type: str, - filename: str, - size_bytes: int, - auto_index: bool | Omit = omit, - metadata: object | Omit = omit, - part_size_bytes: int | Omit = omit, - path: str | Omit = omit, - # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. - # The extra values given here take precedence over values defined on the client or passed to this method. - extra_headers: Headers | None = None, - extra_query: Query | None = None, - extra_body: Body | None = None, - timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> MultipartInitResponse: - """Initiate a multipart upload for large files (>5GB). - - Returns an uploadId and - object metadata. Use part URLs endpoint to upload parts and complete endpoint to - finalize. - - Args: - content_type: MIME type of the file - - filename: Name of the file to upload - - size_bytes: File size in bytes (required, max 8GB). - - auto_index: Whether to automatically process and index the file for search - - metadata: Additional metadata to associate with the file - - part_size_bytes: Multipart part size in bytes (min 5MB). Defaults to 64MB. - - path: Optional folder path for hierarchy preservation - - extra_headers: Send extra headers - - extra_query: Add additional query parameters to the request - - extra_body: Add additional JSON properties to the request - - timeout: Override the client-level default timeout for this request, in seconds - """ - if not id: - raise ValueError(f"Expected a non-empty value for `id` but received {id!r}") - return await self._post( - f"/vault/{id}/multipart/init", - body=await async_maybe_transform( - { - "content_type": content_type, - "filename": filename, - "size_bytes": size_bytes, - "auto_index": auto_index, - "metadata": metadata, - "part_size_bytes": part_size_bytes, - "path": path, - }, - multipart_init_params.MultipartInitParams, - ), - options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout - ), - cast_to=MultipartInitResponse, - ) - class MultipartResourceWithRawResponse: def __init__(self, multipart: MultipartResource) -> None: @@ -484,15 +246,9 @@ def __init__(self, multipart: MultipartResource) -> None: self.abort = to_raw_response_wrapper( multipart.abort, ) - self.complete = to_raw_response_wrapper( - multipart.complete, - ) self.get_part_urls = to_raw_response_wrapper( multipart.get_part_urls, ) - self.init = to_raw_response_wrapper( - multipart.init, - ) class AsyncMultipartResourceWithRawResponse: @@ -502,15 +258,9 @@ def __init__(self, multipart: AsyncMultipartResource) -> None: self.abort = async_to_raw_response_wrapper( multipart.abort, ) - self.complete = async_to_raw_response_wrapper( - multipart.complete, - ) self.get_part_urls = async_to_raw_response_wrapper( multipart.get_part_urls, ) - self.init = async_to_raw_response_wrapper( - multipart.init, - ) class MultipartResourceWithStreamingResponse: @@ -520,15 +270,9 @@ def __init__(self, multipart: MultipartResource) -> None: self.abort = to_streamed_response_wrapper( multipart.abort, ) - self.complete = to_streamed_response_wrapper( - multipart.complete, - ) self.get_part_urls = to_streamed_response_wrapper( multipart.get_part_urls, ) - self.init = to_streamed_response_wrapper( - multipart.init, - ) class AsyncMultipartResourceWithStreamingResponse: @@ -538,12 +282,6 @@ def __init__(self, multipart: AsyncMultipartResource) -> None: self.abort = async_to_streamed_response_wrapper( multipart.abort, ) - self.complete = async_to_streamed_response_wrapper( - multipart.complete, - ) self.get_part_urls = async_to_streamed_response_wrapper( multipart.get_part_urls, ) - self.init = async_to_streamed_response_wrapper( - multipart.init, - ) diff --git a/src/casedev/types/vault/__init__.py b/src/casedev/types/vault/__init__.py index 41b96cb..c0bb5a9 100644 --- a/src/casedev/types/vault/__init__.py +++ b/src/casedev/types/vault/__init__.py @@ -5,16 +5,13 @@ from .object_delete_params import ObjectDeleteParams as ObjectDeleteParams from .object_list_response import ObjectListResponse as ObjectListResponse from .object_update_params import ObjectUpdateParams as ObjectUpdateParams -from .multipart_init_params import MultipartInitParams as MultipartInitParams from .graphrag_init_response import GraphragInitResponse as GraphragInitResponse from .multipart_abort_params import MultipartAbortParams as MultipartAbortParams from .object_delete_response import ObjectDeleteResponse as ObjectDeleteResponse from .object_update_response import ObjectUpdateResponse as ObjectUpdateResponse -from .multipart_init_response import MultipartInitResponse as MultipartInitResponse from .object_download_response import ObjectDownloadResponse as ObjectDownloadResponse from .object_get_text_response import ObjectGetTextResponse as ObjectGetTextResponse from .object_retrieve_response import ObjectRetrieveResponse as ObjectRetrieveResponse -from .multipart_complete_params import MultipartCompleteParams as MultipartCompleteParams from .graphrag_get_stats_response import GraphragGetStatsResponse as GraphragGetStatsResponse from .object_get_ocr_words_params import ObjectGetOcrWordsParams as ObjectGetOcrWordsParams from .object_get_ocr_words_response import ObjectGetOcrWordsResponse as ObjectGetOcrWordsResponse diff --git a/src/casedev/types/vault/multipart_complete_params.py b/src/casedev/types/vault/multipart_complete_params.py deleted file mode 100644 index 9a5ad45..0000000 --- a/src/casedev/types/vault/multipart_complete_params.py +++ /dev/null @@ -1,26 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Iterable -from typing_extensions import Required, Annotated, TypedDict - -from ..._utils import PropertyInfo - -__all__ = ["MultipartCompleteParams", "Part"] - - -class MultipartCompleteParams(TypedDict, total=False): - object_id: Required[Annotated[str, PropertyInfo(alias="objectId")]] - - parts: Required[Iterable[Part]] - - size_bytes: Required[Annotated[int, PropertyInfo(alias="sizeBytes")]] - - upload_id: Required[Annotated[str, PropertyInfo(alias="uploadId")]] - - -class Part(TypedDict, total=False): - etag: Required[str] - - part_number: Required[Annotated[int, PropertyInfo(alias="partNumber")]] diff --git a/src/casedev/types/vault/multipart_get_part_urls_params.py b/src/casedev/types/vault/multipart_get_part_urls_params.py index 462a79c..32ccbd0 100644 --- a/src/casedev/types/vault/multipart_get_part_urls_params.py +++ b/src/casedev/types/vault/multipart_get_part_urls_params.py @@ -22,3 +22,4 @@ class Part(TypedDict, total=False): part_number: Required[Annotated[int, PropertyInfo(alias="partNumber")]] size_bytes: Required[Annotated[int, PropertyInfo(alias="sizeBytes")]] + """Part size in bytes (min 5MB except final part, max 5GB).""" diff --git a/src/casedev/types/vault/multipart_init_params.py b/src/casedev/types/vault/multipart_init_params.py deleted file mode 100644 index f5f3018..0000000 --- a/src/casedev/types/vault/multipart_init_params.py +++ /dev/null @@ -1,32 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing_extensions import Required, Annotated, TypedDict - -from ..._utils import PropertyInfo - -__all__ = ["MultipartInitParams"] - - -class MultipartInitParams(TypedDict, total=False): - content_type: Required[Annotated[str, PropertyInfo(alias="contentType")]] - """MIME type of the file""" - - filename: Required[str] - """Name of the file to upload""" - - size_bytes: Required[Annotated[int, PropertyInfo(alias="sizeBytes")]] - """File size in bytes (required, max 8GB).""" - - auto_index: bool - """Whether to automatically process and index the file for search""" - - metadata: object - """Additional metadata to associate with the file""" - - part_size_bytes: Annotated[int, PropertyInfo(alias="partSizeBytes")] - """Multipart part size in bytes (min 5MB). Defaults to 64MB.""" - - path: str - """Optional folder path for hierarchy preservation""" diff --git a/src/casedev/types/vault/multipart_init_response.py b/src/casedev/types/vault/multipart_init_response.py deleted file mode 100644 index 2ec7c9b..0000000 --- a/src/casedev/types/vault/multipart_init_response.py +++ /dev/null @@ -1,23 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from pydantic import Field as FieldInfo - -from ..._models import BaseModel - -__all__ = ["MultipartInitResponse"] - - -class MultipartInitResponse(BaseModel): - next_step: Optional[str] = None - - object_id: Optional[str] = FieldInfo(alias="objectId", default=None) - - part_count: Optional[int] = FieldInfo(alias="partCount", default=None) - - part_size_bytes: Optional[int] = FieldInfo(alias="partSizeBytes", default=None) - - s3_key: Optional[str] = FieldInfo(alias="s3Key", default=None) - - upload_id: Optional[str] = FieldInfo(alias="uploadId", default=None) diff --git a/tests/api_resources/vault/test_multipart.py b/tests/api_resources/vault/test_multipart.py index 8eb4b6d..45e7d51 100644 --- a/tests/api_resources/vault/test_multipart.py +++ b/tests/api_resources/vault/test_multipart.py @@ -9,10 +9,7 @@ from casedev import Casedev, AsyncCasedev from tests.utils import assert_matches_type -from casedev.types.vault import ( - MultipartInitResponse, - MultipartGetPartURLsResponse, -) +from casedev.types.vault import MultipartGetPartURLsResponse base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -70,84 +67,6 @@ def test_path_params_abort(self, client: Casedev) -> None: upload_id="uploadId", ) - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - def test_method_complete(self, client: Casedev) -> None: - multipart = client.vault.multipart.complete( - id="id", - object_id="objectId", - parts=[ - { - "etag": "etag", - "part_number": 1, - } - ], - size_bytes=1, - upload_id="uploadId", - ) - assert multipart is None - - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - def test_raw_response_complete(self, client: Casedev) -> None: - response = client.vault.multipart.with_raw_response.complete( - id="id", - object_id="objectId", - parts=[ - { - "etag": "etag", - "part_number": 1, - } - ], - size_bytes=1, - upload_id="uploadId", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - multipart = response.parse() - assert multipart is None - - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - def test_streaming_response_complete(self, client: Casedev) -> None: - with client.vault.multipart.with_streaming_response.complete( - id="id", - object_id="objectId", - parts=[ - { - "etag": "etag", - "part_number": 1, - } - ], - size_bytes=1, - upload_id="uploadId", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - multipart = response.parse() - assert multipart is None - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - def test_path_params_complete(self, client: Casedev) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"): - client.vault.multipart.with_raw_response.complete( - id="", - object_id="objectId", - parts=[ - { - "etag": "etag", - "part_number": 1, - } - ], - size_bytes=1, - upload_id="uploadId", - ) - @pytest.mark.skip(reason="Prism tests are disabled") @parametrize def test_method_get_part_urls(self, client: Casedev) -> None: @@ -222,75 +141,6 @@ def test_path_params_get_part_urls(self, client: Casedev) -> None: upload_id="uploadId", ) - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - def test_method_init(self, client: Casedev) -> None: - multipart = client.vault.multipart.init( - id="id", - content_type="contentType", - filename="filename", - size_bytes=1, - ) - assert_matches_type(MultipartInitResponse, multipart, path=["response"]) - - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - def test_method_init_with_all_params(self, client: Casedev) -> None: - multipart = client.vault.multipart.init( - id="id", - content_type="contentType", - filename="filename", - size_bytes=1, - auto_index=True, - metadata={}, - part_size_bytes=5242880, - path="path", - ) - assert_matches_type(MultipartInitResponse, multipart, path=["response"]) - - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - def test_raw_response_init(self, client: Casedev) -> None: - response = client.vault.multipart.with_raw_response.init( - id="id", - content_type="contentType", - filename="filename", - size_bytes=1, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - multipart = response.parse() - assert_matches_type(MultipartInitResponse, multipart, path=["response"]) - - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - def test_streaming_response_init(self, client: Casedev) -> None: - with client.vault.multipart.with_streaming_response.init( - id="id", - content_type="contentType", - filename="filename", - size_bytes=1, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - multipart = response.parse() - assert_matches_type(MultipartInitResponse, multipart, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - def test_path_params_init(self, client: Casedev) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"): - client.vault.multipart.with_raw_response.init( - id="", - content_type="contentType", - filename="filename", - size_bytes=1, - ) - class TestAsyncMultipart: parametrize = pytest.mark.parametrize( @@ -347,84 +197,6 @@ async def test_path_params_abort(self, async_client: AsyncCasedev) -> None: upload_id="uploadId", ) - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - async def test_method_complete(self, async_client: AsyncCasedev) -> None: - multipart = await async_client.vault.multipart.complete( - id="id", - object_id="objectId", - parts=[ - { - "etag": "etag", - "part_number": 1, - } - ], - size_bytes=1, - upload_id="uploadId", - ) - assert multipart is None - - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - async def test_raw_response_complete(self, async_client: AsyncCasedev) -> None: - response = await async_client.vault.multipart.with_raw_response.complete( - id="id", - object_id="objectId", - parts=[ - { - "etag": "etag", - "part_number": 1, - } - ], - size_bytes=1, - upload_id="uploadId", - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - multipart = await response.parse() - assert multipart is None - - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - async def test_streaming_response_complete(self, async_client: AsyncCasedev) -> None: - async with async_client.vault.multipart.with_streaming_response.complete( - id="id", - object_id="objectId", - parts=[ - { - "etag": "etag", - "part_number": 1, - } - ], - size_bytes=1, - upload_id="uploadId", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - multipart = await response.parse() - assert multipart is None - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - async def test_path_params_complete(self, async_client: AsyncCasedev) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"): - await async_client.vault.multipart.with_raw_response.complete( - id="", - object_id="objectId", - parts=[ - { - "etag": "etag", - "part_number": 1, - } - ], - size_bytes=1, - upload_id="uploadId", - ) - @pytest.mark.skip(reason="Prism tests are disabled") @parametrize async def test_method_get_part_urls(self, async_client: AsyncCasedev) -> None: @@ -498,72 +270,3 @@ async def test_path_params_get_part_urls(self, async_client: AsyncCasedev) -> No ], upload_id="uploadId", ) - - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - async def test_method_init(self, async_client: AsyncCasedev) -> None: - multipart = await async_client.vault.multipart.init( - id="id", - content_type="contentType", - filename="filename", - size_bytes=1, - ) - assert_matches_type(MultipartInitResponse, multipart, path=["response"]) - - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - async def test_method_init_with_all_params(self, async_client: AsyncCasedev) -> None: - multipart = await async_client.vault.multipart.init( - id="id", - content_type="contentType", - filename="filename", - size_bytes=1, - auto_index=True, - metadata={}, - part_size_bytes=5242880, - path="path", - ) - assert_matches_type(MultipartInitResponse, multipart, path=["response"]) - - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - async def test_raw_response_init(self, async_client: AsyncCasedev) -> None: - response = await async_client.vault.multipart.with_raw_response.init( - id="id", - content_type="contentType", - filename="filename", - size_bytes=1, - ) - - assert response.is_closed is True - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - multipart = await response.parse() - assert_matches_type(MultipartInitResponse, multipart, path=["response"]) - - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - async def test_streaming_response_init(self, async_client: AsyncCasedev) -> None: - async with async_client.vault.multipart.with_streaming_response.init( - id="id", - content_type="contentType", - filename="filename", - size_bytes=1, - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" - - multipart = await response.parse() - assert_matches_type(MultipartInitResponse, multipart, path=["response"]) - - assert cast(Any, response.is_closed) is True - - @pytest.mark.skip(reason="Prism tests are disabled") - @parametrize - async def test_path_params_init(self, async_client: AsyncCasedev) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"): - await async_client.vault.multipart.with_raw_response.init( - id="", - content_type="contentType", - filename="filename", - size_bytes=1, - )