diff --git a/.release-please-manifest.json b/.release-please-manifest.json index e4e1c3c..ce5e5c7 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.34.0" + ".": "0.35.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 4a4d532..853e103 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 26 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/profound%2Fprofound-c774f2113aa2cf14bd83dc9a2468b3181e709b2765e3b1a7da3a831560225a05.yml -openapi_spec_hash: 92f317e8c729a62dd1c9aa3569c8baf7 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/profound%2Fprofound-38055e158e5b6cec7a652a2a9605b518b821cb543cc84c4034f919d3f94a7529.yml +openapi_spec_hash: 78bc28d13e37f4cd3b5d964149a12758 config_hash: e093e38f7eba5f830c65f8a5d7705c82 diff --git a/CHANGELOG.md b/CHANGELOG.md index 08c3962..cd95f59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## 0.35.0 (2026-04-02) + +Full Changelog: [v0.34.0...v0.35.0](https://github.com/cooper-square-technologies/profound-python-sdk/compare/v0.34.0...v0.35.0) + +### Features + +* **api:** api update ([beea8bf](https://github.com/cooper-square-technologies/profound-python-sdk/commit/beea8bfc23a086a65512020d59f0f3a0777082af)) +* **api:** api update ([0d652c6](https://github.com/cooper-square-technologies/profound-python-sdk/commit/0d652c619dacba87767ef2e5192c797cd5d9a295)) +* **api:** api update ([700d990](https://github.com/cooper-square-technologies/profound-python-sdk/commit/700d990ecb17ccd8dad9d59af814d9c0af72cb09)) +* **api:** api update ([6ac8258](https://github.com/cooper-square-technologies/profound-python-sdk/commit/6ac8258ca1f8221597fee647eabffeb10f0bd194)) + ## 0.34.0 (2026-03-30) Full Changelog: [v0.33.1...v0.34.0](https://github.com/cooper-square-technologies/profound-python-sdk/compare/v0.33.1...v0.34.0) diff --git a/pyproject.toml b/pyproject.toml index 64dd73c..d7e0966 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "profound" -version = "0.34.0" +version = "0.35.0" description = "The official Python library for the profound API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/profound/_version.py b/src/profound/_version.py index 514f085..4b68df2 100644 --- a/src/profound/_version.py +++ b/src/profound/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "profound" -__version__ = "0.34.0" # x-release-please-version +__version__ = "0.35.0" # x-release-please-version diff --git a/src/profound/resources/organizations/categories.py b/src/profound/resources/organizations/categories.py index a16b11b..e6215b1 100644 --- a/src/profound/resources/organizations/categories.py +++ b/src/profound/resources/organizations/categories.py @@ -141,6 +141,7 @@ def prompts( cursor: Optional[str] | Omit = omit, limit: int | Omit = omit, order_dir: Literal["asc", "desc"] | Omit = omit, + persona_id: SequenceNotStr[str] | Omit = omit, platform_id: SequenceNotStr[str] | Omit = omit, prompt_type: List[Literal["visibility", "sentiment"]] | Omit = omit, region_id: SequenceNotStr[str] | Omit = omit, @@ -154,9 +155,28 @@ def prompts( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> CategoryPromptsResponse: """ - Get Category Prompts + Retrieve prompts in a category with optional filtering by type, topic, tag, + region, platform, or persona. Supports cursor-based pagination. Args: + cursor: Pagination cursor from a previous response. + + limit: Maximum number of prompts to return. + + order_dir: Sort direction by creation date. + + persona_id: Filter by persona IDs. + + platform_id: Filter by platform IDs. + + prompt_type: Filter by prompt type. + + region_id: Filter by region IDs. + + tag_id: Filter by tag IDs. + + topic_id: Filter by topic IDs. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -179,6 +199,7 @@ def prompts( "cursor": cursor, "limit": limit, "order_dir": order_dir, + "persona_id": persona_id, "platform_id": platform_id, "prompt_type": prompt_type, "region_id": region_id, @@ -203,7 +224,7 @@ def tags( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> CategoryTagsResponse: """ - Get the organization tags for a specific category. + Get the tags for a specific category. Args: extra_headers: Send extra headers @@ -236,7 +257,7 @@ def topics( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> CategoryTopicsResponse: """ - Get the organization categories. + Get the topics for a specific category. Args: extra_headers: Send extra headers @@ -370,6 +391,7 @@ async def prompts( cursor: Optional[str] | Omit = omit, limit: int | Omit = omit, order_dir: Literal["asc", "desc"] | Omit = omit, + persona_id: SequenceNotStr[str] | Omit = omit, platform_id: SequenceNotStr[str] | Omit = omit, prompt_type: List[Literal["visibility", "sentiment"]] | Omit = omit, region_id: SequenceNotStr[str] | Omit = omit, @@ -383,9 +405,28 @@ async def prompts( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> CategoryPromptsResponse: """ - Get Category Prompts + Retrieve prompts in a category with optional filtering by type, topic, tag, + region, platform, or persona. Supports cursor-based pagination. Args: + cursor: Pagination cursor from a previous response. + + limit: Maximum number of prompts to return. + + order_dir: Sort direction by creation date. + + persona_id: Filter by persona IDs. + + platform_id: Filter by platform IDs. + + prompt_type: Filter by prompt type. + + region_id: Filter by region IDs. + + tag_id: Filter by tag IDs. + + topic_id: Filter by topic IDs. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -408,6 +449,7 @@ async def prompts( "cursor": cursor, "limit": limit, "order_dir": order_dir, + "persona_id": persona_id, "platform_id": platform_id, "prompt_type": prompt_type, "region_id": region_id, @@ -432,7 +474,7 @@ async def tags( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> CategoryTagsResponse: """ - Get the organization tags for a specific category. + Get the tags for a specific category. Args: extra_headers: Send extra headers @@ -465,7 +507,7 @@ async def topics( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> CategoryTopicsResponse: """ - Get the organization categories. + Get the topics for a specific category. Args: extra_headers: Send extra headers diff --git a/src/profound/types/organizations/category_prompts_params.py b/src/profound/types/organizations/category_prompts_params.py index 22a600d..c33e2a6 100644 --- a/src/profound/types/organizations/category_prompts_params.py +++ b/src/profound/types/organizations/category_prompts_params.py @@ -12,17 +12,28 @@ class CategoryPromptsParams(TypedDict, total=False): cursor: Optional[str] + """Pagination cursor from a previous response.""" limit: int + """Maximum number of prompts to return.""" order_dir: Literal["asc", "desc"] + """Sort direction by creation date.""" + + persona_id: SequenceNotStr[str] + """Filter by persona IDs.""" platform_id: SequenceNotStr[str] + """Filter by platform IDs.""" prompt_type: List[Literal["visibility", "sentiment"]] + """Filter by prompt type.""" region_id: SequenceNotStr[str] + """Filter by region IDs.""" tag_id: SequenceNotStr[str] + """Filter by tag IDs.""" topic_id: SequenceNotStr[str] + """Filter by topic IDs.""" diff --git a/src/profound/types/organizations/category_prompts_response.py b/src/profound/types/organizations/category_prompts_response.py index ac0db38..cf886d7 100644 --- a/src/profound/types/organizations/category_prompts_response.py +++ b/src/profound/types/organizations/category_prompts_response.py @@ -14,6 +14,8 @@ class Data(BaseModel): created_at: datetime + language: str + platforms: List[NamedResource] prompt: str @@ -25,6 +27,8 @@ class Data(BaseModel): topic: NamedResource """Generic id+name reference used across domain boundaries.""" + personas: Optional[List[NamedResource]] = None + tags: Optional[List[NamedResource]] = None diff --git a/src/profound/types/report_citations_params.py b/src/profound/types/report_citations_params.py index 8a2543c..2e65b06 100644 --- a/src/profound/types/report_citations_params.py +++ b/src/profound/types/report_citations_params.py @@ -24,6 +24,7 @@ "ReportCitationsParams", "Filter", "FilterHostnameFilter", + "FilterTagNameFilter", "FilterURLFilter", "FilterRootDomainFilter", "FilterCitationCategoryFilter", @@ -113,6 +114,28 @@ class FilterHostnameFilter(TypedDict, total=False): value: Required[Union[str, SequenceNotStr[str]]] +class FilterTagNameFilter(TypedDict, total=False): + """Filter by tag name.""" + + field: Required[Literal["tag_name"]] + + operator: Required[ + Literal[ + "is", + "not_is", + "in", + "not_in", + "contains", + "not_contains", + "matches", + "contains_case_insensitive", + "not_contains_case_insensitive", + ] + ] + + value: Required[Union[str, SequenceNotStr[str]]] + + class FilterURLFilter(TypedDict, total=False): """Filter by URL""" @@ -187,6 +210,7 @@ class FilterCitationCategoryFilter(TypedDict, total=False): TopicNameFilterParam, ModelIDFilter, TagIDFilter, + FilterTagNameFilter, FilterURLFilter, FilterRootDomainFilter, PromptTypeFilter, diff --git a/src/profound/types/report_sentiment_params.py b/src/profound/types/report_sentiment_params.py index ec5959b..a966e3b 100644 --- a/src/profound/types/report_sentiment_params.py +++ b/src/profound/types/report_sentiment_params.py @@ -18,7 +18,7 @@ from .shared_params.asset_name_filter import AssetNameFilter from .shared_params.persona_id_filter import PersonaIDFilter -__all__ = ["ReportSentimentParams", "Filter", "FilterAssetIDFilter", "FilterThemeFilter"] +__all__ = ["ReportSentimentParams", "Filter", "FilterAssetIDFilter", "FilterThemeFilter", "FilterTagNameFilter"] class ReportSentimentParams(TypedDict, total=False): @@ -110,6 +110,28 @@ class FilterThemeFilter(TypedDict, total=False): value: Required[Union[str, SequenceNotStr[str]]] +class FilterTagNameFilter(TypedDict, total=False): + """Filter by tag name.""" + + field: Required[Literal["tag_name"]] + + operator: Required[ + Literal[ + "is", + "not_is", + "in", + "not_in", + "contains", + "not_contains", + "matches", + "contains_case_insensitive", + "not_contains_case_insensitive", + ] + ] + + value: Required[Union[str, SequenceNotStr[str]]] + + Filter: TypeAlias = Union[ FilterAssetIDFilter, AssetNameFilter, @@ -119,6 +141,7 @@ class FilterThemeFilter(TypedDict, total=False): TopicNameFilterParam, ModelIDFilter, TagIDFilter, + FilterTagNameFilter, PromptFilter, PersonaIDFilter, ] diff --git a/src/profound/types/report_visibility_params.py b/src/profound/types/report_visibility_params.py index 3f59af1..d8df07d 100644 --- a/src/profound/types/report_visibility_params.py +++ b/src/profound/types/report_visibility_params.py @@ -6,6 +6,7 @@ from datetime import datetime from typing_extensions import Literal, Required, Annotated, TypeAlias, TypedDict +from .._types import SequenceNotStr from .._utils import PropertyInfo from .prompt_id_filter_param import PromptIDFilterParam from .topic_name_filter_param import TopicNameFilterParam @@ -18,7 +19,7 @@ from .shared_params.asset_name_filter import AssetNameFilter from .shared_params.persona_id_filter import PersonaIDFilter -__all__ = ["ReportVisibilityParams", "Filter"] +__all__ = ["ReportVisibilityParams", "Filter", "FilterTagNameFilter"] class ReportVisibilityParams(TypedDict, total=False): @@ -80,6 +81,28 @@ class ReportVisibilityParams(TypedDict, total=False): """Pagination settings for the report results.""" +class FilterTagNameFilter(TypedDict, total=False): + """Filter by tag name.""" + + field: Required[Literal["tag_name"]] + + operator: Required[ + Literal[ + "is", + "not_is", + "in", + "not_in", + "contains", + "not_contains", + "matches", + "contains_case_insensitive", + "not_contains_case_insensitive", + ] + ] + + value: Required[Union[str, SequenceNotStr[str]]] + + Filter: TypeAlias = Union[ RegionIDFilter, ModelIDFilter, @@ -87,6 +110,7 @@ class ReportVisibilityParams(TypedDict, total=False): TopicNameFilterParam, AssetNameFilter, TagIDFilter, + FilterTagNameFilter, PromptIDFilterParam, PromptFilter, PersonaIDFilter, diff --git a/tests/api_resources/organizations/test_categories.py b/tests/api_resources/organizations/test_categories.py index 37f9d0c..ee13533 100644 --- a/tests/api_resources/organizations/test_categories.py +++ b/tests/api_resources/organizations/test_categories.py @@ -152,6 +152,7 @@ def test_method_prompts_with_all_params(self, client: Profound) -> None: cursor="cursor", limit=1, order_dir="asc", + persona_id=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"], platform_id=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"], prompt_type=["visibility"], region_id=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"], @@ -412,6 +413,7 @@ async def test_method_prompts_with_all_params(self, async_client: AsyncProfound) cursor="cursor", limit=1, order_dir="asc", + persona_id=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"], platform_id=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"], prompt_type=["visibility"], region_id=["182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"],