diff --git a/.gitignore b/.gitignore index 87797408..95ceb189 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ .prism.log -.vscode _dev __pycache__ diff --git a/.release-please-manifest.json b/.release-please-manifest.json index a579a434..97d8dbba 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.99.0" + ".": "0.100.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 1e54f59b..b4ca4228 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 166 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-54e6f7955e86265bc870eaae7f4a9cd716292457a83e032567f22bbb9ce6ad0d.yml -openapi_spec_hash: 6adbff5e5aeda88504047fc2c87e3fa0 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/lithic%2Flithic-aa089e65735b8884f8cb391b39b9a0b295819e438bf976c98cc6150628ca5488.yml +openapi_spec_hash: 719876533d1496e9192c7a734a78c736 config_hash: e9a46eb8acb9dc2c236f3e1958a1c4dd diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..5b010307 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.analysis.importFormat": "relative", +} diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b9575ce..b7e62177 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 0.100.0 (2025-07-28) + +Full Changelog: [v0.99.0...v0.100.0](https://github.com/lithic-com/lithic-python/compare/v0.99.0...v0.100.0) + +### Features + +* **api:** updates Transaction retrieve response to match API ([f659cd3](https://github.com/lithic-com/lithic-python/commit/f659cd3179c6ee214ab01d5dbc176931b1b503be)) + + +### Chores + +* **project:** add settings file for vscode ([5dc0933](https://github.com/lithic-com/lithic-python/commit/5dc09332b73ffe63937ca60a419e9e0c5ca533d9)) + ## 0.99.0 (2025-07-23) Full Changelog: [v0.98.2...v0.99.0](https://github.com/lithic-com/lithic-python/compare/v0.98.2...v0.99.0) diff --git a/api.md b/api.md index 4186f822..57316bcc 100644 --- a/api.md +++ b/api.md @@ -159,7 +159,6 @@ Types: ```python from lithic.types import ( Tokenization, - TokenizationRetrieveResponse, TokenizationSimulateResponse, TokenizationUpdateDigitalCardArtResponse, ) @@ -167,7 +166,7 @@ from lithic.types import ( Methods: -- client.tokenizations.retrieve(tokenization_token) -> TokenizationRetrieveResponse +- client.tokenizations.retrieve(tokenization_token) -> Tokenization - client.tokenizations.list(\*\*params) -> SyncCursorPage[Tokenization] - client.tokenizations.activate(tokenization_token) -> None - client.tokenizations.deactivate(tokenization_token) -> None diff --git a/pyproject.toml b/pyproject.toml index 2a0ef691..42d829b1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "lithic" -version = "0.99.0" +version = "0.100.0" description = "The official Python library for the lithic API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/lithic/_version.py b/src/lithic/_version.py index 379ad9d6..c16a3142 100644 --- a/src/lithic/_version.py +++ b/src/lithic/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "lithic" -__version__ = "0.99.0" # x-release-please-version +__version__ = "0.100.0" # x-release-please-version diff --git a/src/lithic/resources/tokenizations.py b/src/lithic/resources/tokenizations.py index 14c473d7..d5ece179 100644 --- a/src/lithic/resources/tokenizations.py +++ b/src/lithic/resources/tokenizations.py @@ -23,7 +23,6 @@ from ..pagination import SyncCursorPage, AsyncCursorPage from .._base_client import AsyncPaginator, make_request_options from ..types.tokenization import Tokenization -from ..types.tokenization_retrieve_response import TokenizationRetrieveResponse from ..types.tokenization_simulate_response import TokenizationSimulateResponse from ..types.tokenization_update_digital_card_art_response import TokenizationUpdateDigitalCardArtResponse @@ -60,7 +59,7 @@ def retrieve( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> TokenizationRetrieveResponse: + ) -> Tokenization: """ Get tokenization @@ -80,7 +79,7 @@ def retrieve( options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=TokenizationRetrieveResponse, + cast_to=Tokenization, ) def list( @@ -526,7 +525,7 @@ async def retrieve( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN, - ) -> TokenizationRetrieveResponse: + ) -> Tokenization: """ Get tokenization @@ -546,7 +545,7 @@ async def retrieve( options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=TokenizationRetrieveResponse, + cast_to=Tokenization, ) def list( diff --git a/src/lithic/types/__init__.py b/src/lithic/types/__init__.py index 18ce1226..9b641f87 100644 --- a/src/lithic/types/__init__.py +++ b/src/lithic/types/__init__.py @@ -106,7 +106,6 @@ from .external_payment_settle_params import ExternalPaymentSettleParams as ExternalPaymentSettleParams from .payment_simulate_action_params import PaymentSimulateActionParams as PaymentSimulateActionParams from .payment_simulate_return_params import PaymentSimulateReturnParams as PaymentSimulateReturnParams -from .tokenization_retrieve_response import TokenizationRetrieveResponse as TokenizationRetrieveResponse from .tokenization_simulate_response import TokenizationSimulateResponse as TokenizationSimulateResponse from .external_payment_release_params import ExternalPaymentReleaseParams as ExternalPaymentReleaseParams from .external_payment_reverse_params import ExternalPaymentReverseParams as ExternalPaymentReverseParams diff --git a/src/lithic/types/external_payment.py b/src/lithic/types/external_payment.py index 18e76652..15567ce0 100644 --- a/src/lithic/types/external_payment.py +++ b/src/lithic/types/external_payment.py @@ -50,27 +50,33 @@ class Event(BaseModel): class ExternalPayment(BaseModel): token: str - - category: Literal["EXTERNAL_WIRE", "EXTERNAL_ACH", "EXTERNAL_CHECK", "EXTERNAL_TRANSFER"] + """Unique identifier for the transaction""" created: datetime + """ISO 8601 timestamp of when the transaction was created""" - currency: str + family: Literal["CARD", "PAYMENT", "TRANSFER", "INTERNAL", "EXTERNAL_PAYMENT", "MANAGEMENT_OPERATION"] - events: List[Event] + status: Literal["PENDING", "SETTLED", "DECLINED", "REVERSED", "CANCELED"] + """The status of the transaction""" - financial_account_token: str + updated: datetime + """ISO 8601 timestamp of when the transaction was last updated""" - payment_type: Literal["DEPOSIT", "WITHDRAWAL"] + category: Optional[Literal["EXTERNAL_WIRE", "EXTERNAL_ACH", "EXTERNAL_CHECK", "EXTERNAL_TRANSFER"]] = None - pending_amount: int + currency: Optional[str] = None - result: Literal["APPROVED", "DECLINED"] + events: Optional[List[Event]] = None - settled_amount: int + financial_account_token: Optional[str] = None - status: Literal["PENDING", "SETTLED", "DECLINED", "REVERSED", "CANCELED"] + payment_type: Optional[Literal["DEPOSIT", "WITHDRAWAL"]] = None - updated: datetime + pending_amount: Optional[int] = None + + result: Optional[Literal["APPROVED", "DECLINED"]] = None + + settled_amount: Optional[int] = None user_defined_id: Optional[str] = None diff --git a/src/lithic/types/management_operation_transaction.py b/src/lithic/types/management_operation_transaction.py index 93dee879..2a46cb16 100644 --- a/src/lithic/types/management_operation_transaction.py +++ b/src/lithic/types/management_operation_transaction.py @@ -60,34 +60,46 @@ class TransactionSeries(BaseModel): class ManagementOperationTransaction(BaseModel): token: str - - category: Literal[ - "MANAGEMENT_FEE", "MANAGEMENT_DISPUTE", "MANAGEMENT_REWARD", "MANAGEMENT_ADJUSTMENT", "MANAGEMENT_DISBURSEMENT" - ] + """Unique identifier for the transaction""" created: datetime + """ISO 8601 timestamp of when the transaction was created""" - currency: str + family: Literal["CARD", "PAYMENT", "TRANSFER", "INTERNAL", "EXTERNAL_PAYMENT", "MANAGEMENT_OPERATION"] - direction: Literal["CREDIT", "DEBIT"] + status: Literal["PENDING", "SETTLED", "DECLINED", "REVERSED", "CANCELED"] + """The status of the transaction""" - events: List[Event] + updated: datetime + """ISO 8601 timestamp of when the transaction was last updated""" - financial_account_token: str + category: Optional[ + Literal[ + "MANAGEMENT_FEE", + "MANAGEMENT_DISPUTE", + "MANAGEMENT_REWARD", + "MANAGEMENT_ADJUSTMENT", + "MANAGEMENT_DISBURSEMENT", + ] + ] = None - pending_amount: int + currency: Optional[str] = None - result: Literal["APPROVED", "DECLINED"] + direction: Optional[Literal["CREDIT", "DEBIT"]] = None - settled_amount: int + events: Optional[List[Event]] = None - status: Literal["PENDING", "SETTLED", "DECLINED", "REVERSED", "CANCELED"] + external_resource: Optional[ExternalResource] = None + """External resource associated with the management operation""" - transaction_series: Optional[TransactionSeries] = None + financial_account_token: Optional[str] = None - updated: datetime + pending_amount: Optional[int] = None - external_resource: Optional[ExternalResource] = None - """External resource associated with the management operation""" + result: Optional[Literal["APPROVED", "DECLINED"]] = None + + settled_amount: Optional[int] = None + + transaction_series: Optional[TransactionSeries] = None user_defined_id: Optional[str] = None diff --git a/src/lithic/types/tokenization_retrieve_response.py b/src/lithic/types/tokenization_retrieve_response.py deleted file mode 100644 index 95f133a1..00000000 --- a/src/lithic/types/tokenization_retrieve_response.py +++ /dev/null @@ -1,12 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing import Optional - -from .._models import BaseModel -from .tokenization import Tokenization - -__all__ = ["TokenizationRetrieveResponse"] - - -class TokenizationRetrieveResponse(BaseModel): - data: Optional[Tokenization] = None diff --git a/tests/api_resources/test_management_operations.py b/tests/api_resources/test_management_operations.py index 3cc03525..89e1e3c0 100644 --- a/tests/api_resources/test_management_operations.py +++ b/tests/api_resources/test_management_operations.py @@ -24,7 +24,7 @@ class TestManagementOperations: @parametrize def test_method_create(self, client: Lithic) -> None: management_operation = client.management_operations.create( - amount=0, + amount=1, category="MANAGEMENT_FEE", direction="CREDIT", effective_date=parse_date("2019-12-27"), @@ -36,7 +36,7 @@ def test_method_create(self, client: Lithic) -> None: @parametrize def test_method_create_with_all_params(self, client: Lithic) -> None: management_operation = client.management_operations.create( - amount=0, + amount=1, category="MANAGEMENT_FEE", direction="CREDIT", effective_date=parse_date("2019-12-27"), @@ -53,7 +53,7 @@ def test_method_create_with_all_params(self, client: Lithic) -> None: @parametrize def test_raw_response_create(self, client: Lithic) -> None: response = client.management_operations.with_raw_response.create( - amount=0, + amount=1, category="MANAGEMENT_FEE", direction="CREDIT", effective_date=parse_date("2019-12-27"), @@ -69,7 +69,7 @@ def test_raw_response_create(self, client: Lithic) -> None: @parametrize def test_streaming_response_create(self, client: Lithic) -> None: with client.management_operations.with_streaming_response.create( - amount=0, + amount=1, category="MANAGEMENT_FEE", direction="CREDIT", effective_date=parse_date("2019-12-27"), @@ -226,7 +226,7 @@ class TestAsyncManagementOperations: @parametrize async def test_method_create(self, async_client: AsyncLithic) -> None: management_operation = await async_client.management_operations.create( - amount=0, + amount=1, category="MANAGEMENT_FEE", direction="CREDIT", effective_date=parse_date("2019-12-27"), @@ -238,7 +238,7 @@ async def test_method_create(self, async_client: AsyncLithic) -> None: @parametrize async def test_method_create_with_all_params(self, async_client: AsyncLithic) -> None: management_operation = await async_client.management_operations.create( - amount=0, + amount=1, category="MANAGEMENT_FEE", direction="CREDIT", effective_date=parse_date("2019-12-27"), @@ -255,7 +255,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncLithic) -> @parametrize async def test_raw_response_create(self, async_client: AsyncLithic) -> None: response = await async_client.management_operations.with_raw_response.create( - amount=0, + amount=1, category="MANAGEMENT_FEE", direction="CREDIT", effective_date=parse_date("2019-12-27"), @@ -271,7 +271,7 @@ async def test_raw_response_create(self, async_client: AsyncLithic) -> None: @parametrize async def test_streaming_response_create(self, async_client: AsyncLithic) -> None: async with async_client.management_operations.with_streaming_response.create( - amount=0, + amount=1, category="MANAGEMENT_FEE", direction="CREDIT", effective_date=parse_date("2019-12-27"), diff --git a/tests/api_resources/test_tokenizations.py b/tests/api_resources/test_tokenizations.py index b69a1d58..b2733063 100644 --- a/tests/api_resources/test_tokenizations.py +++ b/tests/api_resources/test_tokenizations.py @@ -11,7 +11,6 @@ from tests.utils import assert_matches_type from lithic.types import ( Tokenization, - TokenizationRetrieveResponse, TokenizationSimulateResponse, TokenizationUpdateDigitalCardArtResponse, ) @@ -29,7 +28,7 @@ def test_method_retrieve(self, client: Lithic) -> None: tokenization = client.tokenizations.retrieve( "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", ) - assert_matches_type(TokenizationRetrieveResponse, tokenization, path=["response"]) + assert_matches_type(Tokenization, tokenization, path=["response"]) @parametrize def test_raw_response_retrieve(self, client: Lithic) -> None: @@ -40,7 +39,7 @@ def test_raw_response_retrieve(self, client: Lithic) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" tokenization = response.parse() - assert_matches_type(TokenizationRetrieveResponse, tokenization, path=["response"]) + assert_matches_type(Tokenization, tokenization, path=["response"]) @parametrize def test_streaming_response_retrieve(self, client: Lithic) -> None: @@ -51,7 +50,7 @@ def test_streaming_response_retrieve(self, client: Lithic) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" tokenization = response.parse() - assert_matches_type(TokenizationRetrieveResponse, tokenization, path=["response"]) + assert_matches_type(Tokenization, tokenization, path=["response"]) assert cast(Any, response.is_closed) is True @@ -410,7 +409,7 @@ async def test_method_retrieve(self, async_client: AsyncLithic) -> None: tokenization = await async_client.tokenizations.retrieve( "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", ) - assert_matches_type(TokenizationRetrieveResponse, tokenization, path=["response"]) + assert_matches_type(Tokenization, tokenization, path=["response"]) @parametrize async def test_raw_response_retrieve(self, async_client: AsyncLithic) -> None: @@ -421,7 +420,7 @@ async def test_raw_response_retrieve(self, async_client: AsyncLithic) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" tokenization = response.parse() - assert_matches_type(TokenizationRetrieveResponse, tokenization, path=["response"]) + assert_matches_type(Tokenization, tokenization, path=["response"]) @parametrize async def test_streaming_response_retrieve(self, async_client: AsyncLithic) -> None: @@ -432,7 +431,7 @@ async def test_streaming_response_retrieve(self, async_client: AsyncLithic) -> N assert response.http_request.headers.get("X-Stainless-Lang") == "python" tokenization = await response.parse() - assert_matches_type(TokenizationRetrieveResponse, tokenization, path=["response"]) + assert_matches_type(Tokenization, tokenization, path=["response"]) assert cast(Any, response.is_closed) is True