diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 8d7e5f1..b870c5e 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.0.1" + ".": "1.0.2" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 418533a..0bbde53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.0.2](https://github.com/gumlet/python-sdk/compare/v1.0.1...v1.0.2) (2026-09-21) + + +### Chores + +* **api:** regenerate SDK ([425e252](https://github.com/gumlet/python-sdk/commit/425e25222ebda0df8fb7b62d9a78805c07a5aeae)) + ## [1.0.1](https://github.com/gumlet/python-sdk/compare/v1.0.0...v1.0.1) (2026-09-21) diff --git a/VERSIONING.md b/VERSIONING.md index 662f2b6..f9cf7dd 100644 --- a/VERSIONING.md +++ b/VERSIONING.md @@ -73,6 +73,10 @@ different fixes: platform and the `github-actions` bot to push (or be left unprotected); the default branch only ever advances by merging release PRs, and `scalar-next` receives each released state back from the release workflow. +- **`scalar-next` must not enable "Require linear history."** The Scalar platform merges each + regeneration into it, and merges a resolved conflict back the same way; the release sync + adds another merge whenever a release PR is squash- or rebase-merged. That setting rejects + all of them. - No Actions settings changes are required: the generated workflows declare their own permissions and never create pull requests. - If this package publishes through OIDC trusted publishing (for example PyPI or npm), @@ -84,3 +88,13 @@ different fixes: manual re-publishes at an existing tag; register it as an additional trusted publisher only if you use it. If the publish job is configured with a deployment environment, include that environment in the registration too. + +### Recommended, not required + +Releases work without this; it closes a window where one can go out at the wrong version. + +- **If this repository uses auto-merge, make the `Release PR version` check a required status + check.** Auto-merge merges as soon as the checks that are *required* go green, with no + human present — so a check that is not required but still red at that moment stops + nothing, which is exactly the window between retitling a release PR and the platform + re-rendering it. diff --git a/api.md b/api.md index 96a4240..0f735ae 100644 --- a/api.md +++ b/api.md @@ -380,7 +380,7 @@ Get video analytics for a single asset. video_asset = client.video_assets.analytics( asset_id="assetId", group_by="daily", - date_range={"start_at": "", "end_at": ""}, + date_range={"start_at": "2024-01-01", "end_at": "2024-01-01"}, metrics=["impressions"], ) ``` @@ -983,7 +983,7 @@ This endpoint helps you get image analytics data like bandwidth consumption, req ```python image_usage_analytic = client.image_usage_analytics.retrieve( metrics=["bandwidth_consumption"], - date_range={}, + date_range={"start_at": "2024-01-01", "end_at": "2024-01-01"}, group_by="daily", ) ``` diff --git a/pyproject.toml b/pyproject.toml index 5da3a88..b50fde7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,11 +1,11 @@ [project] name = "gumlet" -version = "1.0.1" # x-release-please-version +version = "1.0.2" # x-release-please-version description = "Gumlet helps developers deliver online video and images. This API encompasses Gumlet Video, Image and Video Analytics functionality to help you build your products better and faster than ever before." readme = "README.md" license = "Apache-2.0" authors = [ - { name = "Gumlet" }, + { name = "Gumlet", email = "support@gumlet.com"}, ] requires-python = ">= 3.9" dependencies = [ @@ -17,6 +17,15 @@ dependencies = [ "sniffio", ] +keywords = ["gumlet", "api", "video"] + +[project.urls] +homepage = "https://www.gumlet.com/" +source = "https://github.com/gumlet/python-sdk" +issues = "https://github.com/gumlet/python-sdk/issues" +changelog = "https://github.com/gumlet/python-sdk/blob/main/CHANGELOG.md" +documentation = "https://docs.gumlet.com/reference" + [project.optional-dependencies] aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.9"] diff --git a/scalar-sdk.manifest.json b/scalar-sdk.manifest.json index 383b0ee..051a6e9 100644 --- a/scalar-sdk.manifest.json +++ b/scalar-sdk.manifest.json @@ -1,7 +1,7 @@ { "name": "Gumlet", "slug": "gumlet", - "generatorVersion": "0.32.14", + "generatorVersion": "0.33.2", "servers": [ "https://api.gumlet.com/v1" ], diff --git a/src/gumlet/_version.py b/src/gumlet/_version.py index 76eae9f..60085ff 100644 --- a/src/gumlet/_version.py +++ b/src/gumlet/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Scalar. See README.md for details. __title__ = "gumlet" -__version__ = "1.0.1" # x-release-please-version +__version__ = "1.0.2" # x-release-please-version diff --git a/src/gumlet/resources/image_usage_analytics.py b/src/gumlet/resources/image_usage_analytics.py index d72c3ae..56e4c2e 100644 --- a/src/gumlet/resources/image_usage_analytics.py +++ b/src/gumlet/resources/image_usage_analytics.py @@ -85,7 +85,7 @@ def retrieve( ```python image_usage_analytic = client.image_usage_analytics.retrieve( metrics=["bandwidth_consumption"], - date_range={}, + date_range={"start_at": "2024-01-01", "end_at": "2024-01-01"}, group_by="daily", ) ``` @@ -169,7 +169,7 @@ async def retrieve( ```python image_usage_analytic = await client.image_usage_analytics.retrieve( metrics=["bandwidth_consumption"], - date_range={}, + date_range={"start_at": "2024-01-01", "end_at": "2024-01-01"}, group_by="daily", ) ``` diff --git a/src/gumlet/resources/video_assets.py b/src/gumlet/resources/video_assets.py index 628daeb..abc2f41 100644 --- a/src/gumlet/resources/video_assets.py +++ b/src/gumlet/resources/video_assets.py @@ -980,7 +980,7 @@ def analytics( video_asset = client.video_assets.analytics( asset_id="assetId", group_by="daily", - date_range={"start_at": "", "end_at": ""}, + date_range={"start_at": "2024-01-01", "end_at": "2024-01-01"}, metrics=["impressions"], ) ``` @@ -1939,7 +1939,7 @@ async def analytics( video_asset = await client.video_assets.analytics( asset_id="assetId", group_by="daily", - date_range={"start_at": "", "end_at": ""}, + date_range={"start_at": "2024-01-01", "end_at": "2024-01-01"}, metrics=["impressions"], ) ``` diff --git a/src/gumlet/types/image_usage_analytic_retrieve_params.py b/src/gumlet/types/image_usage_analytic_retrieve_params.py index 353509c..fb6abda 100644 --- a/src/gumlet/types/image_usage_analytic_retrieve_params.py +++ b/src/gumlet/types/image_usage_analytic_retrieve_params.py @@ -49,8 +49,8 @@ class Filters(TypedDict, total=False): class DateRange(TypedDict, total=False): - start_at: Annotated[Union[str, date], PropertyInfo(format="iso8601")] + start_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """The starting date to consider""" - end_at: Annotated[Union[str, date], PropertyInfo(format="iso8601")] + end_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """The ending date to consider""" diff --git a/src/gumlet/types/video_asset_analytics_params.py b/src/gumlet/types/video_asset_analytics_params.py index 87be6e5..188d880 100644 --- a/src/gumlet/types/video_asset_analytics_params.py +++ b/src/gumlet/types/video_asset_analytics_params.py @@ -2,8 +2,11 @@ from __future__ import annotations -from typing import List -from typing_extensions import Literal, Required, TypedDict +from typing import List, Union +from datetime import date +from typing_extensions import Annotated, Literal, Required, TypedDict + +from .._utils import PropertyInfo __all__ = ["VideoAssetAnalyticsParams", "DateRange"] @@ -40,8 +43,8 @@ class VideoAssetAnalyticsParams(TypedDict, total=False): class DateRange(TypedDict, total=False): - start_at: Required[str] + start_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """ISO 8601 start timestamp""" - end_at: Required[str] + end_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """ISO 8601 end timestamp""" diff --git a/src/gumlet/types/video_usage_analytic_retrieve_params.py b/src/gumlet/types/video_usage_analytic_retrieve_params.py index a8a7be7..903a2dd 100644 --- a/src/gumlet/types/video_usage_analytic_retrieve_params.py +++ b/src/gumlet/types/video_usage_analytic_retrieve_params.py @@ -51,8 +51,8 @@ class Filters(TypedDict, total=False): class DateRange(TypedDict, total=False): - start_at: Annotated[Union[str, date], PropertyInfo(format="iso8601")] + start_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """The starting date to consider""" - end_at: Annotated[Union[str, date], PropertyInfo(format="iso8601")] + end_at: Required[Annotated[Union[str, date], PropertyInfo(format="iso8601")]] """The ending date to consider""" diff --git a/tests/smoke-test.py b/tests/smoke-test.py index 062e48d..04ae9d6 100644 --- a/tests/smoke-test.py +++ b/tests/smoke-test.py @@ -18,7 +18,7 @@ # The shared smoke-test runner injects base URL and credentials through the same # environment variables the generated client reads in normal use. -client = Gumlet(max_retries=0, timeout=30) +client = Gumlet(max_retries=2, timeout=10) class SmokeResult(TypedDict, total=False): @@ -358,7 +358,7 @@ def _smoke_case_17() -> None: video_asset = client.video_assets.analytics( asset_id="assetId", group_by="daily", - date_range={"start_at": "", "end_at": ""}, + date_range={"start_at": "2024-01-01", "end_at": "2024-01-01"}, metrics=["impressions"], ) @@ -367,7 +367,7 @@ def _smoke_case_18() -> None: video_asset = client.video_assets.analytics( asset_id="assetId", group_by="daily", - date_range={"start_at": "", "end_at": ""}, + date_range={"start_at": "2024-01-01", "end_at": "2024-01-01"}, metrics=["impressions"], page_number=0, page_size=0, @@ -859,7 +859,7 @@ def _smoke_case_62() -> None: def _smoke_case_63() -> None: image_usage_analytic = client.image_usage_analytics.retrieve( metrics=["bandwidth_consumption"], - date_range={}, + date_range={"start_at": "2024-01-01", "end_at": "2024-01-01"}, group_by="daily", )