diff --git a/.gitignore b/.gitignore index f834520..74a9dba 100644 --- a/.gitignore +++ b/.gitignore @@ -63,4 +63,7 @@ localstack-pro-azure/tests/otherlangs/dotnet/*/obj # setuptools_scm version.py */*/*/*/version.py -localstack-sdk-python-2/.openapi-generator/ \ No newline at end of file +localstack-sdk-python-2/.openapi-generator/ + +# setuptools_scm version.py +**/version.py diff --git a/VERSION b/VERSION deleted file mode 100644 index 81340c7..0000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -0.0.4 diff --git a/bin/generate.sh b/bin/generate.sh index 083804a..beeeb59 100755 --- a/bin/generate.sh +++ b/bin/generate.sh @@ -1,7 +1,5 @@ #!/bin/bash -version=$(cat VERSION) - docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli:v7.10.0 generate \ -i https://raw.githubusercontent.com/localstack/openapi/refs/heads/main/openapi/emulators/localstack-spec-latest.yml \ --skip-validate-spec \ @@ -9,7 +7,6 @@ docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli:v7.10.0 ge -o /local//packages/localstack-sdk-generated \ --global-property models,apis,supportingFiles \ -p packageName=localstack.sdk \ - -p packageVersion=$version \ --template-dir /local/packages/localstack-sdk-generated/templates \ --global-property apiTests=false,modelTests=false \ --global-property apiDocs=false,modelDocs=False diff --git a/localstack-sdk-python/localstack/sdk/clients.py b/localstack-sdk-python/localstack/sdk/clients.py index 3c7207c..d29ef6e 100644 --- a/localstack-sdk-python/localstack/sdk/clients.py +++ b/localstack-sdk-python/localstack/sdk/clients.py @@ -1,3 +1,4 @@ +from localstack.sdk import version from localstack.sdk.api_client import ApiClient from localstack.sdk.configuration import Configuration @@ -30,3 +31,5 @@ def __init__(self, host: str | None = None, auth_token: str | None = None, **kwa self.auth_token = auth_token self.configuration = Configuration(host=self.host) self._api_client = ApiClient(configuration=self.configuration) + # The generated code comes with 1.0.0 hard-coded. We set here the correct version + self._api_client.user_agent = f"LocalStack SDK/{version.version}/python" diff --git a/packages/localstack-sdk-generated/localstack/sdk/api_client.py b/packages/localstack-sdk-generated/localstack/sdk/api_client.py index 16fe354..7cb3732 100644 --- a/packages/localstack-sdk-generated/localstack/sdk/api_client.py +++ b/packages/localstack-sdk-generated/localstack/sdk/api_client.py @@ -91,7 +91,7 @@ def __init__( self.default_headers[header_name] = header_value self.cookie = cookie # Set default User-Agent. - self.user_agent = 'OpenAPI-Generator/0.0.4/python' + self.user_agent = 'OpenAPI-Generator/1.0.0/python' self.client_side_validation = configuration.client_side_validation def __enter__(self): diff --git a/packages/localstack-sdk-generated/localstack/sdk/configuration.py b/packages/localstack-sdk-generated/localstack/sdk/configuration.py index 66e1426..c114bfc 100644 --- a/packages/localstack-sdk-generated/localstack/sdk/configuration.py +++ b/packages/localstack-sdk-generated/localstack/sdk/configuration.py @@ -495,7 +495,7 @@ def to_debug_report(self) -> str: "OS: {env}\n"\ "Python Version: {pyversion}\n"\ "Version of the API: latest\n"\ - "SDK Package Version: 0.0.4".\ + "SDK Package Version: 1.0.0".\ format(env=sys.platform, pyversion=sys.version) def get_host_settings(self) -> List[HostSetting]: diff --git a/packages/localstack-sdk-generated/pyproject.toml b/packages/localstack-sdk-generated/pyproject.toml index 49bb53e..ce3995e 100644 --- a/packages/localstack-sdk-generated/pyproject.toml +++ b/packages/localstack-sdk-generated/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "localstack-sdk-generated" -version = "0.0.4" +dynamic = ["version"] description = "LocalStack REST API - Generated Code" authors = [ { name = "LocalStack Contributors", email = "info@localstack.cloud" } @@ -18,13 +18,17 @@ dev-dependencies = [ ] [build-system] -requires = ["setuptools"] +requires = ["setuptools", "setuptools_scm>=8"] build-backend = "setuptools.build_meta" +[tool.setuptools_scm] +local_scheme = "no-local-version" +root = "../.." + [tool.setuptools] package-dir = { "" = "."} [tool.setuptools.packages.find] where = ["."] include = ["*"] -exclude = ["tests*"] \ No newline at end of file +exclude = ["tests*"] diff --git a/packages/localstack-sdk-generated/templates/pyproject.mustache b/packages/localstack-sdk-generated/templates/pyproject.mustache index a6c7628..ce3995e 100644 --- a/packages/localstack-sdk-generated/templates/pyproject.mustache +++ b/packages/localstack-sdk-generated/templates/pyproject.mustache @@ -1,6 +1,6 @@ [project] name = "localstack-sdk-generated" -version = "{{{packageVersion}}}" +dynamic = ["version"] description = "LocalStack REST API - Generated Code" authors = [ { name = "LocalStack Contributors", email = "info@localstack.cloud" } @@ -18,13 +18,17 @@ dev-dependencies = [ ] [build-system] -requires = ["setuptools"] +requires = ["setuptools", "setuptools_scm>=8"] build-backend = "setuptools.build_meta" +[tool.setuptools_scm] +local_scheme = "no-local-version" +root = "../.." + [tool.setuptools] package-dir = { "" = "."} [tool.setuptools.packages.find] where = ["."] include = ["*"] -exclude = ["tests*"] \ No newline at end of file +exclude = ["tests*"] diff --git a/pyproject.toml b/pyproject.toml index fba9e55..3dc46e6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ description = "Python SDK for LocalStack" authors = [ { name = "LocalStack Team", email = "info@localstack.cloud"} ] -version = "0.0.4" +dynamic = ["version"] dependencies = [ "localstack-sdk-generated" ] @@ -17,9 +17,13 @@ Repository = "https://github.com/localstack/localstack-sdk-python.git" Issues = "https://github.com/localstack/localstack-sdk-python/issues" [build-system] -requires = ["setuptools>=64"] +requires = ["setuptools>=64", "setuptools_scm>=8"] build-backend = "setuptools.build_meta" +[tool.setuptools_scm] +version_file = "localstack-sdk-python/localstack/sdk/version.py" +local_scheme = "no-local-version" + [tool.setuptools.dynamic] readme = { file = ["README.md"], content-type = "text/markdown"} @@ -30,6 +34,8 @@ dev-dependencies=[ "boto3>=1.35.40", ] +cache-keys = [{ file = "pyproject.toml" }, { git = { commit = true , tags = true }}] + [tool.uv.sources] localstack-sdk-generated = { workspace = true } diff --git a/tests/test_client.py b/tests/test_client.py new file mode 100644 index 0000000..dc529f3 --- /dev/null +++ b/tests/test_client.py @@ -0,0 +1,7 @@ +import localstack.sdk.aws +from localstack.sdk import version + + +def test_client_version(): + client = localstack.sdk.aws.AWSClient() + assert version.version in client._api_client.user_agent diff --git a/uv.lock b/uv.lock index c0e910e..c237825 100644 --- a/uv.lock +++ b/uv.lock @@ -77,7 +77,6 @@ wheels = [ [[package]] name = "localstack-sdk-generated" -version = "0.0.4" source = { editable = "packages/localstack-sdk-generated" } dependencies = [ { name = "pydantic" }, @@ -104,7 +103,6 @@ dev = [{ name = "pytest", specifier = ">=7.2.1" }] [[package]] name = "localstack-sdk-python" -version = "0.0.4" source = { editable = "." } dependencies = [ { name = "localstack-sdk-generated" },