Skip to content

Commit 3b02200

Browse files
authored
Merge pull request #56 from context-dot-dev/release-please--branches--main--changes--next
release: 2.10.0
2 parents ff1fd79 + 63aeaed commit 3b02200

35 files changed

Lines changed: 1223 additions & 200 deletions

‎.release-please-manifest.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "2.9.0"
2+
".": "2.10.0"
33
}

‎.stats.yml‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 40
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev/context.dev-a0dda03bbb600917cfb9add468cc4c8c84351a8dbbf61644dbc353263ca1748f.yml
3-
openapi_spec_hash: c24264f32a46d9317aac5af9d6a396f7
4-
config_hash: 920678668dd2da6f8966fbf1b8fde4e2
1+
configured_endpoints: 41
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev/context.dev-5dbe631ce516ca688273053ddcb58870561bd6dc76fa75df354c954d7af65a3c.yml
3+
openapi_spec_hash: 53a74c4cccbdec8590db38183840a446
4+
config_hash: 0fb0ceca5946298c416cec0cca5260c7

‎CHANGELOG.md‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# Changelog
22

3+
## 2.10.0 (2026-08-17)
4+
5+
Full Changelog: [v2.9.0...v2.10.0](https://github.com/context-dot-dev/context-python-sdk/compare/v2.9.0...v2.10.0)
6+
7+
### Features
8+
9+
* **api:** api update ([253db7d](https://github.com/context-dot-dev/context-python-sdk/commit/253db7d8a9129f323b2a56b82bd5e780bcd8bf86))
10+
* **api:** api update ([740b2d4](https://github.com/context-dot-dev/context-python-sdk/commit/740b2d42d9e897eefd273779ab2a62c285c3b84f))
11+
* **api:** api update ([07e8016](https://github.com/context-dot-dev/context-python-sdk/commit/07e80168ee24305f42bfac338ee85d676e9601d7))
12+
* **api:** api update ([499fb3f](https://github.com/context-dot-dev/context-python-sdk/commit/499fb3fdef35838f9c631560b2bc073b73f3a04a))
13+
* **api:** api update ([853f56b](https://github.com/context-dot-dev/context-python-sdk/commit/853f56b503807b1bb41f4ca26800b56fc41e395c))
14+
* **api:** manual updates ([4f84467](https://github.com/context-dot-dev/context-python-sdk/commit/4f84467a599b7c80702e95b027e87584ba6d07a7))
15+
316
## 2.9.0 (2026-08-07)
417

518
Full Changelog: [v2.8.0...v2.9.0](https://github.com/context-dot-dev/context-python-sdk/compare/v2.8.0...v2.9.0)

‎api.md‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,3 +178,15 @@ from context.dev.types import PersonEnrichResponse
178178
Methods:
179179

180180
- <code title="post /people/enrich">client.people.<a href="./src/context/dev/resources/people.py">enrich</a>(\*\*<a href="src/context/dev/types/person_enrich_params.py">params</a>) -> <a href="./src/context/dev/types/person_enrich_response.py">PersonEnrichResponse</a></code>
181+
182+
# News
183+
184+
Types:
185+
186+
```python
187+
from context.dev.types import NewsSearchResponse
188+
```
189+
190+
Methods:
191+
192+
- <code title="post /news/search">client.news.<a href="./src/context/dev/resources/news.py">search</a>(\*\*<a href="src/context/dev/types/news_search_params.py">params</a>) -> <a href="./src/context/dev/types/news_search_response.py">NewsSearchResponse</a></code>

‎pyproject.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "context.dev"
3-
version = "2.9.0"
3+
version = "2.10.0"
44
description = "The official Python library for the context.dev API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"

‎src/context/dev/_client.py‎

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,10 @@
3535
)
3636

3737
if TYPE_CHECKING:
38-
from .resources import ai, web, batch, brand, parse, people, utility, industry, monitors
38+
from .resources import ai, web, news, batch, brand, parse, people, utility, industry, monitors
3939
from .resources.ai import AIResource, AsyncAIResource
4040
from .resources.web import WebResource, AsyncWebResource
41+
from .resources.news import NewsResource, AsyncNewsResource
4142
from .resources.batch import BatchResource, AsyncBatchResource
4243
from .resources.brand import BrandResource, AsyncBrandResource
4344
from .resources.parse import ParseResource, AsyncParseResource
@@ -180,6 +181,13 @@ def people(self) -> PeopleResource:
180181

181182
return PeopleResource(self)
182183

184+
@cached_property
185+
def news(self) -> NewsResource:
186+
"""Search live first-party RSS and free historical news data by company identity."""
187+
from .resources.news import NewsResource
188+
189+
return NewsResource(self)
190+
183191
@cached_property
184192
def with_raw_response(self) -> ContextDevWithRawResponse:
185193
return ContextDevWithRawResponse(self)
@@ -415,6 +423,13 @@ def people(self) -> AsyncPeopleResource:
415423

416424
return AsyncPeopleResource(self)
417425

426+
@cached_property
427+
def news(self) -> AsyncNewsResource:
428+
"""Search live first-party RSS and free historical news data by company identity."""
429+
from .resources.news import AsyncNewsResource
430+
431+
return AsyncNewsResource(self)
432+
418433
@cached_property
419434
def with_raw_response(self) -> AsyncContextDevWithRawResponse:
420435
return AsyncContextDevWithRawResponse(self)
@@ -592,6 +607,13 @@ def people(self) -> people.PeopleResourceWithRawResponse:
592607

593608
return PeopleResourceWithRawResponse(self._client.people)
594609

610+
@cached_property
611+
def news(self) -> news.NewsResourceWithRawResponse:
612+
"""Search live first-party RSS and free historical news data by company identity."""
613+
from .resources.news import NewsResourceWithRawResponse
614+
615+
return NewsResourceWithRawResponse(self._client.news)
616+
595617

596618
class AsyncContextDevWithRawResponse:
597619
_client: AsyncContextDev
@@ -657,6 +679,13 @@ def people(self) -> people.AsyncPeopleResourceWithRawResponse:
657679

658680
return AsyncPeopleResourceWithRawResponse(self._client.people)
659681

682+
@cached_property
683+
def news(self) -> news.AsyncNewsResourceWithRawResponse:
684+
"""Search live first-party RSS and free historical news data by company identity."""
685+
from .resources.news import AsyncNewsResourceWithRawResponse
686+
687+
return AsyncNewsResourceWithRawResponse(self._client.news)
688+
660689

661690
class ContextDevWithStreamedResponse:
662691
_client: ContextDev
@@ -722,6 +751,13 @@ def people(self) -> people.PeopleResourceWithStreamingResponse:
722751

723752
return PeopleResourceWithStreamingResponse(self._client.people)
724753

754+
@cached_property
755+
def news(self) -> news.NewsResourceWithStreamingResponse:
756+
"""Search live first-party RSS and free historical news data by company identity."""
757+
from .resources.news import NewsResourceWithStreamingResponse
758+
759+
return NewsResourceWithStreamingResponse(self._client.news)
760+
725761

726762
class AsyncContextDevWithStreamedResponse:
727763
_client: AsyncContextDev
@@ -787,6 +823,13 @@ def people(self) -> people.AsyncPeopleResourceWithStreamingResponse:
787823

788824
return AsyncPeopleResourceWithStreamingResponse(self._client.people)
789825

826+
@cached_property
827+
def news(self) -> news.AsyncNewsResourceWithStreamingResponse:
828+
"""Search live first-party RSS and free historical news data by company identity."""
829+
from .resources.news import AsyncNewsResourceWithStreamingResponse
830+
831+
return AsyncNewsResourceWithStreamingResponse(self._client.news)
832+
790833

791834
Client = ContextDev
792835

‎src/context/dev/_version.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

33
__title__ = "context.dev"
4-
__version__ = "2.9.0" # x-release-please-version
4+
__version__ = "2.10.0" # x-release-please-version

‎src/context/dev/resources/__init__.py‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@
1616
WebResourceWithStreamingResponse,
1717
AsyncWebResourceWithStreamingResponse,
1818
)
19+
from .news import (
20+
NewsResource,
21+
AsyncNewsResource,
22+
NewsResourceWithRawResponse,
23+
AsyncNewsResourceWithRawResponse,
24+
NewsResourceWithStreamingResponse,
25+
AsyncNewsResourceWithStreamingResponse,
26+
)
1927
from .batch import (
2028
BatchResource,
2129
AsyncBatchResource,
@@ -128,4 +136,10 @@
128136
"AsyncPeopleResourceWithRawResponse",
129137
"PeopleResourceWithStreamingResponse",
130138
"AsyncPeopleResourceWithStreamingResponse",
139+
"NewsResource",
140+
"AsyncNewsResource",
141+
"NewsResourceWithRawResponse",
142+
"AsyncNewsResourceWithRawResponse",
143+
"NewsResourceWithStreamingResponse",
144+
"AsyncNewsResourceWithStreamingResponse",
131145
]

‎src/context/dev/resources/brand.py‎

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from __future__ import annotations
44

5-
from typing import Union, Optional
5+
from typing import List, Union, Optional
66
from typing_extensions import Literal, overload
77

88
import httpx
@@ -1278,7 +1278,10 @@ def search(
12781278
self,
12791279
*,
12801280
query: str,
1281+
autocomplete: bool | Omit = omit,
1282+
query_by: List[Literal["name", "domain"]] | Omit = omit,
12811283
tags: SequenceNotStr[str] | Omit = omit,
1284+
typo_tolerance: int | Omit = omit,
12821285
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
12831286
# The extra values given here take precedence over values defined on the client or passed to this method.
12841287
extra_headers: Headers | None = None,
@@ -1287,23 +1290,25 @@ def search(
12871290
timeout: float | httpx.Timeout | None | NotGiven = not_given,
12881291
) -> BrandSearchResponse:
12891292
"""
1290-
Search brands by name or domain and get back up to 10 lightweight matches
1291-
(domain, name, logo). Name matches rank ahead of domain matches; within each
1292-
group the most popular brands come first: by Tranco rank, then market cap for
1293-
brands outside the Tranco list, with text relevance breaking ties. Matching is
1294-
prefix-based with no typo tolerance, so it is suited to autocomplete. Only
1295-
brands already in the Context.dev index are returned — use /brand/retrieve to
1296-
fetch (and index) a specific domain. Free on Pro and Scale plans; costs 1 credit
1297-
per request on the Free and Starter plans.
1293+
Search indexed brands by name or domain
12981294
12991295
Args:
1300-
query: Search term, matched against brand names and domains by prefix (e.g. 'nike',
1296+
query: Search term, matched against the fields selected by queryBy (e.g. 'nike',
13011297
'nike.com', 'nik').
13021298
1299+
autocomplete: Whether the search term matches by prefix, so partial words match as they are
1300+
typed (e.g. 'nik' matches Nike). Set to false to match whole words only.
1301+
1302+
query_by: Fields to match the search term against, as a comma-separated list or repeated
1303+
parameter: 'name', 'domain', or both. Defaults to both.
1304+
13031305
tags: Optional comma-separated caller-defined tags for tracking this request. Tags are
13041306
recorded on the request's usage log and can be used to filter usage on the
13051307
dashboard usage page. Up to 20 tags, each 1-50 characters.
13061308
1309+
typo_tolerance: Maximum number of typos tolerated when matching, from 0 to 2. Defaults to 0 (no
1310+
typo tolerance).
1311+
13071312
extra_headers: Send extra headers
13081313
13091314
extra_query: Add additional query parameters to the request
@@ -1322,7 +1327,10 @@ def search(
13221327
query=maybe_transform(
13231328
{
13241329
"query": query,
1330+
"autocomplete": autocomplete,
1331+
"query_by": query_by,
13251332
"tags": tags,
1333+
"typo_tolerance": typo_tolerance,
13261334
},
13271335
brand_search_params.BrandSearchParams,
13281336
),
@@ -2583,7 +2591,10 @@ async def search(
25832591
self,
25842592
*,
25852593
query: str,
2594+
autocomplete: bool | Omit = omit,
2595+
query_by: List[Literal["name", "domain"]] | Omit = omit,
25862596
tags: SequenceNotStr[str] | Omit = omit,
2597+
typo_tolerance: int | Omit = omit,
25872598
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
25882599
# The extra values given here take precedence over values defined on the client or passed to this method.
25892600
extra_headers: Headers | None = None,
@@ -2592,23 +2603,25 @@ async def search(
25922603
timeout: float | httpx.Timeout | None | NotGiven = not_given,
25932604
) -> BrandSearchResponse:
25942605
"""
2595-
Search brands by name or domain and get back up to 10 lightweight matches
2596-
(domain, name, logo). Name matches rank ahead of domain matches; within each
2597-
group the most popular brands come first: by Tranco rank, then market cap for
2598-
brands outside the Tranco list, with text relevance breaking ties. Matching is
2599-
prefix-based with no typo tolerance, so it is suited to autocomplete. Only
2600-
brands already in the Context.dev index are returned — use /brand/retrieve to
2601-
fetch (and index) a specific domain. Free on Pro and Scale plans; costs 1 credit
2602-
per request on the Free and Starter plans.
2606+
Search indexed brands by name or domain
26032607
26042608
Args:
2605-
query: Search term, matched against brand names and domains by prefix (e.g. 'nike',
2609+
query: Search term, matched against the fields selected by queryBy (e.g. 'nike',
26062610
'nike.com', 'nik').
26072611
2612+
autocomplete: Whether the search term matches by prefix, so partial words match as they are
2613+
typed (e.g. 'nik' matches Nike). Set to false to match whole words only.
2614+
2615+
query_by: Fields to match the search term against, as a comma-separated list or repeated
2616+
parameter: 'name', 'domain', or both. Defaults to both.
2617+
26082618
tags: Optional comma-separated caller-defined tags for tracking this request. Tags are
26092619
recorded on the request's usage log and can be used to filter usage on the
26102620
dashboard usage page. Up to 20 tags, each 1-50 characters.
26112621
2622+
typo_tolerance: Maximum number of typos tolerated when matching, from 0 to 2. Defaults to 0 (no
2623+
typo tolerance).
2624+
26122625
extra_headers: Send extra headers
26132626
26142627
extra_query: Add additional query parameters to the request
@@ -2627,7 +2640,10 @@ async def search(
26272640
query=await async_maybe_transform(
26282641
{
26292642
"query": query,
2643+
"autocomplete": autocomplete,
2644+
"query_by": query_by,
26302645
"tags": tags,
2646+
"typo_tolerance": typo_tolerance,
26312647
},
26322648
brand_search_params.BrandSearchParams,
26332649
),

0 commit comments

Comments
 (0)