diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 69eb19a7..ba231b07 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.20.0" + ".": "1.21.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 561a7a70..9c441dab 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 12 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/brand-dev%2Fbrand.dev-070cac50467cd07e8601e948fc97e3c82ea0630d6a0b0f24164335e396893e6a.yml -openapi_spec_hash: b887bcfe688f72b3a34ee24246d12955 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/brand-dev%2Fbrand.dev-4eb121d211177902ec0685d8829af778dbc02a21df03362e8675a8bcb4ca10a8.yml +openapi_spec_hash: b10e8626e812050d8d0664b5373d7fe4 config_hash: 86160e220c81f47769a71c9343e486d8 diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ef695ca..570e13f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 1.21.0 (2025-11-24) + +Full Changelog: [v1.20.0...v1.21.0](https://github.com/brand-dot-dev/python-sdk/compare/v1.20.0...v1.21.0) + +### Features + +* **api:** api update ([66e9f1b](https://github.com/brand-dot-dev/python-sdk/commit/66e9f1bff651d0cbb90edfec969b5d8522384d55)) + + +### Chores + +* add Python 3.14 classifier and testing ([c3c5690](https://github.com/brand-dot-dev/python-sdk/commit/c3c5690cda3a9e5c5ca874799cf9018119f30781)) + ## 1.20.0 (2025-11-19) Full Changelog: [v1.19.1...v1.20.0](https://github.com/brand-dot-dev/python-sdk/compare/v1.19.1...v1.20.0) diff --git a/pyproject.toml b/pyproject.toml index 5667b409..97174834 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "brand.dev" -version = "1.20.0" +version = "1.21.0" description = "The official Python library for the brand.dev API" dynamic = ["readme"] license = "Apache-2.0" @@ -24,6 +24,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Operating System :: OS Independent", "Operating System :: POSIX", "Operating System :: MacOS", diff --git a/src/brand/dev/_version.py b/src/brand/dev/_version.py index ab7552d2..7767b941 100644 --- a/src/brand/dev/_version.py +++ b/src/brand/dev/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "brand.dev" -__version__ = "1.20.0" # x-release-please-version +__version__ = "1.21.0" # x-release-please-version diff --git a/src/brand/dev/resources/brand.py b/src/brand/dev/resources/brand.py index 5574c02d..6ba3f47d 100644 --- a/src/brand/dev/resources/brand.py +++ b/src/brand/dev/resources/brand.py @@ -243,6 +243,249 @@ def identify_from_transaction( self, *, transaction_info: str, + city: str | Omit = omit, + country_gl: Literal[ + "ad", + "ae", + "af", + "ag", + "ai", + "al", + "am", + "an", + "ao", + "aq", + "ar", + "as", + "at", + "au", + "aw", + "az", + "ba", + "bb", + "bd", + "be", + "bf", + "bg", + "bh", + "bi", + "bj", + "bm", + "bn", + "bo", + "br", + "bs", + "bt", + "bv", + "bw", + "by", + "bz", + "ca", + "cc", + "cd", + "cf", + "cg", + "ch", + "ci", + "ck", + "cl", + "cm", + "cn", + "co", + "cr", + "cu", + "cv", + "cx", + "cy", + "cz", + "de", + "dj", + "dk", + "dm", + "do", + "dz", + "ec", + "ee", + "eg", + "eh", + "er", + "es", + "et", + "fi", + "fj", + "fk", + "fm", + "fo", + "fr", + "ga", + "gb", + "gd", + "ge", + "gf", + "gh", + "gi", + "gl", + "gm", + "gn", + "gp", + "gq", + "gr", + "gs", + "gt", + "gu", + "gw", + "gy", + "hk", + "hm", + "hn", + "hr", + "ht", + "hu", + "id", + "ie", + "il", + "in", + "io", + "iq", + "ir", + "is", + "it", + "jm", + "jo", + "jp", + "ke", + "kg", + "kh", + "ki", + "km", + "kn", + "kp", + "kr", + "kw", + "ky", + "kz", + "la", + "lb", + "lc", + "li", + "lk", + "lr", + "ls", + "lt", + "lu", + "lv", + "ly", + "ma", + "mc", + "md", + "mg", + "mh", + "mk", + "ml", + "mm", + "mn", + "mo", + "mp", + "mq", + "mr", + "ms", + "mt", + "mu", + "mv", + "mw", + "mx", + "my", + "mz", + "na", + "nc", + "ne", + "nf", + "ng", + "ni", + "nl", + "no", + "np", + "nr", + "nu", + "nz", + "om", + "pa", + "pe", + "pf", + "pg", + "ph", + "pk", + "pl", + "pm", + "pn", + "pr", + "ps", + "pt", + "pw", + "py", + "qa", + "re", + "ro", + "rs", + "ru", + "rw", + "sa", + "sb", + "sc", + "sd", + "se", + "sg", + "sh", + "si", + "sj", + "sk", + "sl", + "sm", + "sn", + "so", + "sr", + "st", + "sv", + "sy", + "sz", + "tc", + "td", + "tf", + "tg", + "th", + "tj", + "tk", + "tl", + "tm", + "tn", + "to", + "tr", + "tt", + "tv", + "tw", + "tz", + "ua", + "ug", + "um", + "us", + "uy", + "uz", + "va", + "vc", + "ve", + "vg", + "vi", + "vn", + "vu", + "wf", + "ws", + "ye", + "yt", + "za", + "zm", + "zw", + ] + | Omit = omit, force_language: Literal[ "albanian", "arabic", @@ -299,6 +542,7 @@ def identify_from_transaction( ] | Omit = omit, max_speed: bool | Omit = omit, + mcc: str | Omit = omit, timeout_ms: int | 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. @@ -314,12 +558,20 @@ def identify_from_transaction( Args: transaction_info: Transaction information to identify the brand + city: Optional city name to prioritize when searching for the brand. + + country_gl: Optional country code (GL parameter) to specify the country for Google search + results. This affects the geographic location used for search queries. + force_language: Optional parameter to force the language of the retrieved brand data. max_speed: Optional parameter to optimize the API call for maximum speed. When set to true, the API will skip time-consuming operations for faster response at the cost of less comprehensive data. + mcc: Optional Merchant Category Code (MCC) to help identify the business + category/industry. + timeout_ms: Optional timeout in milliseconds for the request. If the request takes longer than this value, it will be aborted with a 408 status code. Maximum allowed value is 300000ms (5 minutes). @@ -342,8 +594,11 @@ def identify_from_transaction( query=maybe_transform( { "transaction_info": transaction_info, + "city": city, + "country_gl": country_gl, "force_language": force_language, "max_speed": max_speed, + "mcc": mcc, "timeout_ms": timeout_ms, }, brand_identify_from_transaction_params.BrandIdentifyFromTransactionParams, @@ -1361,6 +1616,249 @@ async def identify_from_transaction( self, *, transaction_info: str, + city: str | Omit = omit, + country_gl: Literal[ + "ad", + "ae", + "af", + "ag", + "ai", + "al", + "am", + "an", + "ao", + "aq", + "ar", + "as", + "at", + "au", + "aw", + "az", + "ba", + "bb", + "bd", + "be", + "bf", + "bg", + "bh", + "bi", + "bj", + "bm", + "bn", + "bo", + "br", + "bs", + "bt", + "bv", + "bw", + "by", + "bz", + "ca", + "cc", + "cd", + "cf", + "cg", + "ch", + "ci", + "ck", + "cl", + "cm", + "cn", + "co", + "cr", + "cu", + "cv", + "cx", + "cy", + "cz", + "de", + "dj", + "dk", + "dm", + "do", + "dz", + "ec", + "ee", + "eg", + "eh", + "er", + "es", + "et", + "fi", + "fj", + "fk", + "fm", + "fo", + "fr", + "ga", + "gb", + "gd", + "ge", + "gf", + "gh", + "gi", + "gl", + "gm", + "gn", + "gp", + "gq", + "gr", + "gs", + "gt", + "gu", + "gw", + "gy", + "hk", + "hm", + "hn", + "hr", + "ht", + "hu", + "id", + "ie", + "il", + "in", + "io", + "iq", + "ir", + "is", + "it", + "jm", + "jo", + "jp", + "ke", + "kg", + "kh", + "ki", + "km", + "kn", + "kp", + "kr", + "kw", + "ky", + "kz", + "la", + "lb", + "lc", + "li", + "lk", + "lr", + "ls", + "lt", + "lu", + "lv", + "ly", + "ma", + "mc", + "md", + "mg", + "mh", + "mk", + "ml", + "mm", + "mn", + "mo", + "mp", + "mq", + "mr", + "ms", + "mt", + "mu", + "mv", + "mw", + "mx", + "my", + "mz", + "na", + "nc", + "ne", + "nf", + "ng", + "ni", + "nl", + "no", + "np", + "nr", + "nu", + "nz", + "om", + "pa", + "pe", + "pf", + "pg", + "ph", + "pk", + "pl", + "pm", + "pn", + "pr", + "ps", + "pt", + "pw", + "py", + "qa", + "re", + "ro", + "rs", + "ru", + "rw", + "sa", + "sb", + "sc", + "sd", + "se", + "sg", + "sh", + "si", + "sj", + "sk", + "sl", + "sm", + "sn", + "so", + "sr", + "st", + "sv", + "sy", + "sz", + "tc", + "td", + "tf", + "tg", + "th", + "tj", + "tk", + "tl", + "tm", + "tn", + "to", + "tr", + "tt", + "tv", + "tw", + "tz", + "ua", + "ug", + "um", + "us", + "uy", + "uz", + "va", + "vc", + "ve", + "vg", + "vi", + "vn", + "vu", + "wf", + "ws", + "ye", + "yt", + "za", + "zm", + "zw", + ] + | Omit = omit, force_language: Literal[ "albanian", "arabic", @@ -1417,6 +1915,7 @@ async def identify_from_transaction( ] | Omit = omit, max_speed: bool | Omit = omit, + mcc: str | Omit = omit, timeout_ms: int | 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. @@ -1432,12 +1931,20 @@ async def identify_from_transaction( Args: transaction_info: Transaction information to identify the brand + city: Optional city name to prioritize when searching for the brand. + + country_gl: Optional country code (GL parameter) to specify the country for Google search + results. This affects the geographic location used for search queries. + force_language: Optional parameter to force the language of the retrieved brand data. max_speed: Optional parameter to optimize the API call for maximum speed. When set to true, the API will skip time-consuming operations for faster response at the cost of less comprehensive data. + mcc: Optional Merchant Category Code (MCC) to help identify the business + category/industry. + timeout_ms: Optional timeout in milliseconds for the request. If the request takes longer than this value, it will be aborted with a 408 status code. Maximum allowed value is 300000ms (5 minutes). @@ -1460,8 +1967,11 @@ async def identify_from_transaction( query=await async_maybe_transform( { "transaction_info": transaction_info, + "city": city, + "country_gl": country_gl, "force_language": force_language, "max_speed": max_speed, + "mcc": mcc, "timeout_ms": timeout_ms, }, brand_identify_from_transaction_params.BrandIdentifyFromTransactionParams, diff --git a/src/brand/dev/types/brand_identify_from_transaction_params.py b/src/brand/dev/types/brand_identify_from_transaction_params.py index 9878fd9e..21f1b787 100644 --- a/src/brand/dev/types/brand_identify_from_transaction_params.py +++ b/src/brand/dev/types/brand_identify_from_transaction_params.py @@ -13,6 +13,255 @@ class BrandIdentifyFromTransactionParams(TypedDict, total=False): transaction_info: Required[str] """Transaction information to identify the brand""" + city: str + """Optional city name to prioritize when searching for the brand.""" + + country_gl: Literal[ + "ad", + "ae", + "af", + "ag", + "ai", + "al", + "am", + "an", + "ao", + "aq", + "ar", + "as", + "at", + "au", + "aw", + "az", + "ba", + "bb", + "bd", + "be", + "bf", + "bg", + "bh", + "bi", + "bj", + "bm", + "bn", + "bo", + "br", + "bs", + "bt", + "bv", + "bw", + "by", + "bz", + "ca", + "cc", + "cd", + "cf", + "cg", + "ch", + "ci", + "ck", + "cl", + "cm", + "cn", + "co", + "cr", + "cu", + "cv", + "cx", + "cy", + "cz", + "de", + "dj", + "dk", + "dm", + "do", + "dz", + "ec", + "ee", + "eg", + "eh", + "er", + "es", + "et", + "fi", + "fj", + "fk", + "fm", + "fo", + "fr", + "ga", + "gb", + "gd", + "ge", + "gf", + "gh", + "gi", + "gl", + "gm", + "gn", + "gp", + "gq", + "gr", + "gs", + "gt", + "gu", + "gw", + "gy", + "hk", + "hm", + "hn", + "hr", + "ht", + "hu", + "id", + "ie", + "il", + "in", + "io", + "iq", + "ir", + "is", + "it", + "jm", + "jo", + "jp", + "ke", + "kg", + "kh", + "ki", + "km", + "kn", + "kp", + "kr", + "kw", + "ky", + "kz", + "la", + "lb", + "lc", + "li", + "lk", + "lr", + "ls", + "lt", + "lu", + "lv", + "ly", + "ma", + "mc", + "md", + "mg", + "mh", + "mk", + "ml", + "mm", + "mn", + "mo", + "mp", + "mq", + "mr", + "ms", + "mt", + "mu", + "mv", + "mw", + "mx", + "my", + "mz", + "na", + "nc", + "ne", + "nf", + "ng", + "ni", + "nl", + "no", + "np", + "nr", + "nu", + "nz", + "om", + "pa", + "pe", + "pf", + "pg", + "ph", + "pk", + "pl", + "pm", + "pn", + "pr", + "ps", + "pt", + "pw", + "py", + "qa", + "re", + "ro", + "rs", + "ru", + "rw", + "sa", + "sb", + "sc", + "sd", + "se", + "sg", + "sh", + "si", + "sj", + "sk", + "sl", + "sm", + "sn", + "so", + "sr", + "st", + "sv", + "sy", + "sz", + "tc", + "td", + "tf", + "tg", + "th", + "tj", + "tk", + "tl", + "tm", + "tn", + "to", + "tr", + "tt", + "tv", + "tw", + "tz", + "ua", + "ug", + "um", + "us", + "uy", + "uz", + "va", + "vc", + "ve", + "vg", + "vi", + "vn", + "vu", + "wf", + "ws", + "ye", + "yt", + "za", + "zm", + "zw", + ] + """ + Optional country code (GL parameter) to specify the country for Google search + results. This affects the geographic location used for search queries. + """ + force_language: Literal[ "albanian", "arabic", @@ -76,6 +325,12 @@ class BrandIdentifyFromTransactionParams(TypedDict, total=False): response at the cost of less comprehensive data. """ + mcc: str + """ + Optional Merchant Category Code (MCC) to help identify the business + category/industry. + """ + timeout_ms: Annotated[int, PropertyInfo(alias="timeoutMS")] """Optional timeout in milliseconds for the request. diff --git a/tests/api_resources/test_brand.py b/tests/api_resources/test_brand.py index 2963c49e..c246b795 100644 --- a/tests/api_resources/test_brand.py +++ b/tests/api_resources/test_brand.py @@ -167,8 +167,11 @@ def test_method_identify_from_transaction(self, client: BrandDev) -> None: def test_method_identify_from_transaction_with_all_params(self, client: BrandDev) -> None: brand = client.brand.identify_from_transaction( transaction_info="transaction_info", + city="city", + country_gl="ad", force_language="albanian", max_speed=True, + mcc="mcc", timeout_ms=1, ) assert_matches_type(BrandIdentifyFromTransactionResponse, brand, path=["response"]) @@ -741,8 +744,11 @@ async def test_method_identify_from_transaction(self, async_client: AsyncBrandDe async def test_method_identify_from_transaction_with_all_params(self, async_client: AsyncBrandDev) -> None: brand = await async_client.brand.identify_from_transaction( transaction_info="transaction_info", + city="city", + country_gl="ad", force_language="albanian", max_speed=True, + mcc="mcc", timeout_ms=1, ) assert_matches_type(BrandIdentifyFromTransactionResponse, brand, path=["response"])