From 60c174aad83e05892ecd6fa283ce709ea9f4096b Mon Sep 17 00:00:00 2001
From: Ben Simon Hartung <42031100+bentsku@users.noreply.github.com>
Date: Mon, 9 Sep 2024 16:04:45 +0300
Subject: [PATCH 1/9] add endpoint configuration for Pinpoint (#53)
---
CHANGELOG.md | 1 +
localstack_client/config.py | 1 +
setup.cfg | 2 +-
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3e305ab..5e1523e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,6 @@
# LocalStack Python Client Change Log
+* v2.6: Add endpoint config for Pinpoint
* v2.5: Add endpoint config for AppConfig Data
* v2.4: Add endpoint config for Resource Access Manager
* v2.3: Add endpoint config for Amazon EventBridge Scheduler
diff --git a/localstack_client/config.py b/localstack_client/config.py
index 1e9073f..76ab1b5 100644
--- a/localstack_client/config.py
+++ b/localstack_client/config.py
@@ -122,6 +122,7 @@
"keyspaces": 4566,
"scheduler": 4566,
"ram": 4566,
+ "pinpoint": 4566,
}
# TODO remove service port mapping above entirely
diff --git a/setup.cfg b/setup.cfg
index 205dac9..1a12009 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
[metadata]
name = localstack-client
-version = 2.5
+version = 2.6
url = https://github.com/localstack/localstack-python-client
author = LocalStack Team
author_email = info@localstack.cloud
From 5b8d55fae2bb7730115eeb60062397e0a97a8393 Mon Sep 17 00:00:00 2001
From: Harsh Mishra
Date: Tue, 8 Oct 2024 16:46:08 +0530
Subject: [PATCH 2/9] add endpoint entry for EventBridge pipes (#54)
---
CHANGELOG.md | 1 +
localstack_client/config.py | 1 +
setup.cfg | 2 +-
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5e1523e..08de6ca 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,6 @@
# LocalStack Python Client Change Log
+* v2.7: Add endpoint config for EventBridge Pipes
* v2.6: Add endpoint config for Pinpoint
* v2.5: Add endpoint config for AppConfig Data
* v2.4: Add endpoint config for Resource Access Manager
diff --git a/localstack_client/config.py b/localstack_client/config.py
index 76ab1b5..8ee2c03 100644
--- a/localstack_client/config.py
+++ b/localstack_client/config.py
@@ -123,6 +123,7 @@
"scheduler": 4566,
"ram": 4566,
"pinpoint": 4566,
+ "pipes": 4566,
}
# TODO remove service port mapping above entirely
diff --git a/setup.cfg b/setup.cfg
index 1a12009..aa02212 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
[metadata]
name = localstack-client
-version = 2.6
+version = 2.7
url = https://github.com/localstack/localstack-python-client
author = LocalStack Team
author_email = info@localstack.cloud
From f1c2318dbc83d0452286c9764502db894b9333d2 Mon Sep 17 00:00:00 2001
From: Mathieu Cloutier <79954947+cloutierMat@users.noreply.github.com>
Date: Wed, 20 Nov 2024 10:47:48 -0700
Subject: [PATCH 3/9] update python version (#55)
---
.github/workflows/ci.yml | 5 ++++-
CHANGELOG.md | 1 +
setup.cfg | 6 +++---
3 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d48bbf3..5b894e9 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -5,6 +5,7 @@ on:
branches: [ master ]
pull_request:
branches: [ master ]
+ workflow_dispatch:
jobs:
test:
@@ -13,10 +14,12 @@ jobs:
fail-fast: false
matrix:
python-version:
+ - "3.13"
+ - "3.12"
+ - "3.11"
- "3.10"
- "3.9"
- "3.8"
- - "3.7"
steps:
- uses: actions/checkout@v2
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 08de6ca..6476dce 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,6 @@
# LocalStack Python Client Change Log
+* v2.8: Removes support for python `3.6` and `3.7` and adds `3.12` and `3.13` for parity with boto3
* v2.7: Add endpoint config for EventBridge Pipes
* v2.6: Add endpoint config for Pinpoint
* v2.5: Add endpoint config for AppConfig Data
diff --git a/setup.cfg b/setup.cfg
index aa02212..4b18765 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
[metadata]
name = localstack-client
-version = 2.7
+version = 2.8
url = https://github.com/localstack/localstack-python-client
author = LocalStack Team
author_email = info@localstack.cloud
@@ -8,12 +8,12 @@ description = A lightweight Python client for LocalStack.
license = Apache License 2.0
classifiers =
Programming Language :: Python :: 3
- Programming Language :: Python :: 3.6
- Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11
+ Programming Language :: Python :: 3.12
+ Programming Language :: Python :: 3.13
License :: OSI Approved :: Apache Software License
Topic :: Software Development :: Testing
From 39fa060d2ba570fbae47d9d4302245c7786117c1 Mon Sep 17 00:00:00 2001
From: Viren Nadkarni
Date: Wed, 2 Apr 2025 17:14:35 +0530
Subject: [PATCH 4/9] Update endpoint services (#56)
---
CHANGELOG.md | 1 +
localstack_client/config.py | 196 +++++++++++++++++++-----------------
setup.cfg | 2 +-
3 files changed, 108 insertions(+), 91 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6476dce..99b46bd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,6 @@
# LocalStack Python Client Change Log
+* v2.9: Add endpoints for Account Management, Private Certificate Authority, Bedrock, CloudControl, CodeBuild, CodeCommit, CodeConnections, CodeDeploy, CodePipeline, ElasticTranscoder, MemoryDB, Shield, Textract and Verified Permissions
* v2.8: Removes support for python `3.6` and `3.7` and adds `3.12` and `3.13` for parity with boto3
* v2.7: Add endpoint config for EventBridge Pipes
* v2.6: Add endpoint config for Pinpoint
diff --git a/localstack_client/config.py b/localstack_client/config.py
index 8ee2c03..0faa62a 100644
--- a/localstack_client/config.py
+++ b/localstack_client/config.py
@@ -13,117 +13,133 @@
# latest version is to access all services via a single "edge service" (port 4566 by default)
_service_ports: Dict[str, int] = {
"edge": 4566,
+ # Botocore services
+ # When adding new services below, assign them port 4566
+ "account": 4566,
+ "acm": 4619,
+ "acm-pca": 4566,
+ "amplify": 4622,
"apigateway": 4567,
+ "apigatewaymanagementapi": 4625,
"apigatewayv2": 4567,
- "kinesis": 4568,
+ "appconfig": 4632,
+ "appconfigdata": 4632,
+ "appflow": 4566,
+ "application-autoscaling": 4623,
+ "appsync": 4605,
+ "athena": 4607,
+ "autoscaling": 4616,
+ "backup": 4638,
+ "batch": 4614,
+ "bedrock": 4566,
+ "bedrock-runtime": 4566,
+ "ce": 4633,
+ "cloudcontrol": 4566,
+ "cloudformation": 4581,
+ "cloudfront": 4606,
+ "cloudsearch": 4595,
+ "cloudtrail": 4612,
+ "cloudwatch": 4582,
+ "codebuild": 4566,
+ "codecommit": 4620,
+ "codeconnections": 4566,
+ "codedeploy": 4566,
+ "codepipeline": 4566,
+ "cognito-identity": 4591,
+ "cognito-idp": 4590,
+ "config": 4641,
+ "configservice": 4641,
+ "docdb": 4594,
"dynamodb": 4569,
"dynamodbstreams": 4570,
+ "ec2": 4597,
+ "ecr": 4610,
+ "ecs": 4601,
+ "efs": 4637,
+ "eks": 4602,
+ "elasticache": 4598,
+ "elasticbeanstalk": 4604,
"elasticsearch": 4571,
- "s3": 4572,
- "firehose": 4573,
- "lambda": 4574,
- "sns": 4575,
- "sqs": 4576,
- "redshift": 4577,
- "redshift-data": 4577,
+ "elastictranscoder": 4566,
+ "elb": 4588,
+ "elbv2": 4628,
+ "emr": 4600,
+ "emr-serverless": 4566,
"es": 4578,
- "opensearch": 4578,
- "ses": 4579,
- "sesv2": 4579,
- "route53": 4580,
- "route53resolver": 4580,
- "cloudformation": 4581,
- "cloudwatch": 4582,
- "ssm": 4583,
- "secretsmanager": 4584,
- "stepfunctions": 4585,
- "logs": 4586,
"events": 4587,
- "elb": 4588,
+ "firehose": 4573,
+ "fis": 4643,
+ "glacier": 4613,
+ "glue": 4608,
+ "iam": 4593,
"iot": 4589,
"iotanalytics": 4589,
+ "iot-data": 4589,
"iotevents": 4589,
"iotevents-data": 4589,
- "iotwireless": 4589,
- "iot-data": 4589,
"iot-jobs-data": 4589,
- "cognito-idp": 4590,
- "cognito-identity": 4591,
- "sts": 4592,
- "iam": 4593,
+ "iotwireless": 4589,
+ "kafka": 4624,
+ "keyspaces": 4566,
+ "kinesis": 4568,
+ "kinesisanalytics": 4621,
+ "kinesisanalyticsv2": 4621,
+ "kms": 4599,
+ "lakeformation": 4639,
+ "lambda": 4574,
+ "logs": 4586,
+ "mediaconvert": 4634,
+ "mediastore": 4617,
+ "mediastore-data": 4617,
+ "meteringmarketplace": 4644,
+ "memorydb": 4566,
+ "mq": 4566,
+ "mwaa": 4642,
+ "neptune": 4594,
+ "opensearch": 4578,
+ "organizations": 4615,
+ "pinpoint": 4566,
+ "pipes": 4566,
+ "qldb": 4611,
+ "qldb-session": 4611,
+ "ram": 4566,
"rds": 4594,
"rds-data": 4594,
- "cloudsearch": 4595,
- "swf": 4596,
- "ec2": 4597,
- "elasticache": 4598,
- "kms": 4599,
- "emr": 4600,
- "ecs": 4601,
- "eks": 4602,
- "xray": 4603,
- "elasticbeanstalk": 4604,
- "appsync": 4605,
- "cloudfront": 4606,
- "athena": 4607,
- "glue": 4608,
+ "redshift": 4577,
+ "redshift-data": 4577,
+ "resource-groups": 4636,
+ "resourcegroupstaggingapi": 4635,
+ "route53": 4580,
+ "route53domains": 4566,
+ "route53resolver": 4580,
+ "s3": 4572,
+ "s3control": 4627,
"sagemaker": 4609,
"sagemaker-runtime": 4609,
- "ecr": 4610,
- "qldb": 4611,
- "qldb-session": 4611,
- "cloudtrail": 4612,
- "glacier": 4613,
- "batch": 4614,
- "organizations": 4615,
- "autoscaling": 4616,
- "mediastore": 4617,
- "mediastore-data": 4617,
- "transfer": 4618,
- "acm": 4619,
- "codecommit": 4620,
- "kinesisanalytics": 4621,
- "kinesisanalyticsv2": 4621,
- "amplify": 4622,
- "application-autoscaling": 4623,
- "kafka": 4624,
- "apigatewaymanagementapi": 4625,
+ "scheduler": 4566,
+ "secretsmanager": 4584,
+ "serverlessrepo": 4631,
+ "servicediscovery": 4630,
+ "ses": 4579,
+ "sesv2": 4579,
+ "shield": 4566,
+ "sns": 4575,
+ "sqs": 4576,
+ "ssm": 4583,
+ "stepfunctions": 4585,
+ "sts": 4592,
+ "support": 4629,
+ "swf": 4596,
+ "textract": 4566,
"timestream": 4626,
"timestream-query": 4626,
"timestream-write": 4626,
- "s3control": 4627,
- "elbv2": 4628,
- "support": 4629,
- "neptune": 4594,
- "docdb": 4594,
- "servicediscovery": 4630,
- "serverlessrepo": 4631,
- "appconfig": 4632,
- "appconfigdata": 4632,
- "ce": 4633,
- "mediaconvert": 4634,
- "resourcegroupstaggingapi": 4635,
- "resource-groups": 4636,
- "efs": 4637,
- "backup": 4638,
- "lakeformation": 4639,
+ "transcribe": 4566,
+ "transfer": 4618,
+ "verifiedpermissions": 4566,
"waf": 4640,
"wafv2": 4640,
- "config": 4641,
- "configservice": 4641,
- "mwaa": 4642,
- "fis": 4643,
- "meteringmarketplace": 4644,
- "transcribe": 4566,
- "mq": 4566,
- "emr-serverless": 4566,
- "appflow": 4566,
- "route53domains": 4566,
- "keyspaces": 4566,
- "scheduler": 4566,
- "ram": 4566,
- "pinpoint": 4566,
- "pipes": 4566,
+ "xray": 4603,
}
# TODO remove service port mapping above entirely
diff --git a/setup.cfg b/setup.cfg
index 4b18765..1104dab 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
[metadata]
name = localstack-client
-version = 2.8
+version = 2.9
url = https://github.com/localstack/localstack-python-client
author = LocalStack Team
author_email = info@localstack.cloud
From 041fdfb02d62f5a5fbabe313f80b6d94ec65c811 Mon Sep 17 00:00:00 2001
From: Viren Nadkarni
Date: Wed, 2 Apr 2025 17:37:14 +0530
Subject: [PATCH 5/9] Remove unsupported endpoint overrides (#57)
---
CHANGELOG.md | 1 +
localstack_client/config.py | 2 --
setup.cfg | 2 +-
3 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 99b46bd..eac2216 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,6 @@
# LocalStack Python Client Change Log
+* v2.10: Remove endpoints for 'bedrock-runtime' and 'textract' because overriding them is not supported by the AWS Terraform provider
* v2.9: Add endpoints for Account Management, Private Certificate Authority, Bedrock, CloudControl, CodeBuild, CodeCommit, CodeConnections, CodeDeploy, CodePipeline, ElasticTranscoder, MemoryDB, Shield, Textract and Verified Permissions
* v2.8: Removes support for python `3.6` and `3.7` and adds `3.12` and `3.13` for parity with boto3
* v2.7: Add endpoint config for EventBridge Pipes
diff --git a/localstack_client/config.py b/localstack_client/config.py
index 0faa62a..10ba740 100644
--- a/localstack_client/config.py
+++ b/localstack_client/config.py
@@ -32,7 +32,6 @@
"backup": 4638,
"batch": 4614,
"bedrock": 4566,
- "bedrock-runtime": 4566,
"ce": 4633,
"cloudcontrol": 4566,
"cloudformation": 4581,
@@ -130,7 +129,6 @@
"sts": 4592,
"support": 4629,
"swf": 4596,
- "textract": 4566,
"timestream": 4626,
"timestream-query": 4626,
"timestream-write": 4626,
diff --git a/setup.cfg b/setup.cfg
index 1104dab..412f97f 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
[metadata]
name = localstack-client
-version = 2.9
+version = 2.10
url = https://github.com/localstack/localstack-python-client
author = LocalStack Team
author_email = info@localstack.cloud
From 502a8e87985c83ad544d39808c7714175ef178eb Mon Sep 17 00:00:00 2001
From: Przemek Denkiewicz <67517453+hovaesco@users.noreply.github.com>
Date: Fri, 9 Jan 2026 11:06:13 +0100
Subject: [PATCH 6/9] Add S3 tables to list of supported services (#58)
* Add S3 tables to list of supported services
* bump version and add changelog entry
---
CHANGELOG.md | 1 +
localstack_client/config.py | 1 +
setup.cfg | 2 +-
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index eac2216..36a898b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,6 @@
# LocalStack Python Client Change Log
+* v2.11: Add endpoint config for S3 Tables
* v2.10: Remove endpoints for 'bedrock-runtime' and 'textract' because overriding them is not supported by the AWS Terraform provider
* v2.9: Add endpoints for Account Management, Private Certificate Authority, Bedrock, CloudControl, CodeBuild, CodeCommit, CodeConnections, CodeDeploy, CodePipeline, ElasticTranscoder, MemoryDB, Shield, Textract and Verified Permissions
* v2.8: Removes support for python `3.6` and `3.7` and adds `3.12` and `3.13` for parity with boto3
diff --git a/localstack_client/config.py b/localstack_client/config.py
index 10ba740..e4482ad 100644
--- a/localstack_client/config.py
+++ b/localstack_client/config.py
@@ -113,6 +113,7 @@
"route53resolver": 4580,
"s3": 4572,
"s3control": 4627,
+ "s3tables": 4566,
"sagemaker": 4609,
"sagemaker-runtime": 4609,
"scheduler": 4566,
diff --git a/setup.cfg b/setup.cfg
index 412f97f..59d206d 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
[metadata]
name = localstack-client
-version = 2.10
+version = 2.11
url = https://github.com/localstack/localstack-python-client
author = LocalStack Team
author_email = info@localstack.cloud
From 29cba5e14960fbe73023f5998edc2173e471704b Mon Sep 17 00:00:00 2001
From: Alex Rashed <2796604+alexrashed@users.noreply.github.com>
Date: Wed, 25 Feb 2026 10:22:24 +0100
Subject: [PATCH 7/9] update LocalStack links in README.md (#59)
Updated LocalStack links to point to the official website.
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 7bca6dc..fb0b55f 100644
--- a/README.md
+++ b/README.md
@@ -7,14 +7,14 @@
-This is an easy-to-use Python client for [LocalStack](https://github.com/localstack/localstack).
+This is an easy-to-use Python client for [LocalStack](https://www.localstack.cloud/).
The client library provides a thin wrapper around [boto3](https://github.com/boto/boto3) which
automatically configures the target endpoints to use LocalStack for your local cloud
application development.
## Prerequisites
-To make use of this library, you need to have [LocalStack](https://github.com/localstack/localstack) installed on your local machine. In particular, the `localstack` command needs to be available.
+To make use of this library, you need to have [LocalStack](https://www.localstack.cloud/) installed on your local machine. In particular, the `localstack` command needs to be available.
## Installation
From 4bee152cb72167409c8a8473b081189c9d94faf4 Mon Sep 17 00:00:00 2001
From: Yoshiaki Yoshida
Date: Tue, 21 Jul 2026 18:47:27 +0900
Subject: [PATCH 8/9] feat: add endpoint config for Amazon Aurora DSQL (#60)
---
CHANGELOG.md | 1 +
localstack_client/config.py | 1 +
setup.cfg | 2 +-
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 36a898b..8e60cab 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,6 @@
# LocalStack Python Client Change Log
+* v2.12: Add endpoint config for Amazon Aurora DSQL
* v2.11: Add endpoint config for S3 Tables
* v2.10: Remove endpoints for 'bedrock-runtime' and 'textract' because overriding them is not supported by the AWS Terraform provider
* v2.9: Add endpoints for Account Management, Private Certificate Authority, Bedrock, CloudControl, CodeBuild, CodeCommit, CodeConnections, CodeDeploy, CodePipeline, ElasticTranscoder, MemoryDB, Shield, Textract and Verified Permissions
diff --git a/localstack_client/config.py b/localstack_client/config.py
index e4482ad..4e5a365 100644
--- a/localstack_client/config.py
+++ b/localstack_client/config.py
@@ -49,6 +49,7 @@
"config": 4641,
"configservice": 4641,
"docdb": 4594,
+ "dsql": 4566,
"dynamodb": 4569,
"dynamodbstreams": 4570,
"ec2": 4597,
diff --git a/setup.cfg b/setup.cfg
index 59d206d..35363a6 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
[metadata]
name = localstack-client
-version = 2.11
+version = 2.12
url = https://github.com/localstack/localstack-python-client
author = LocalStack Team
author_email = info@localstack.cloud
From 75fd3274bce2927b8c4675d69b014a3e56e7f704 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristian=20Pallar=C3=A9s?=
Date: Tue, 21 Jul 2026 12:32:08 +0200
Subject: [PATCH 9/9] fix: use python -m build in make publish, drop setup.py
(#61)
PyPI now rejects sdist filenames from the legacy `setup.py sdist`
path (hyphenated) since it enforces PEP 625 normalized names
(underscore). Switch to `python -m build`, which also produces a
wheel. setup.py was just a `setup()` shim; replaced with a minimal
pyproject.toml declaring the setuptools build backend.
---
.github/workflows/ci.yml | 2 ++
Makefile | 5 ++++-
pyproject.toml | 3 +++
setup.py | 4 ----
4 files changed, 9 insertions(+), 5 deletions(-)
create mode 100644 pyproject.toml
delete mode 100755 setup.py
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 5b894e9..cdcd043 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -40,3 +40,5 @@ jobs:
- name: Test
run: make test
+ env:
+ LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }}
diff --git a/Makefile b/Makefile
index 150194b..13c0acb 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,10 @@ install: ## Install dependencies in local virtualenv folder
publish: ## Publish the library to the central PyPi repository
# build and upload archive
- $(VENV_RUN); ./setup.py sdist && twine upload $(BUILD_DIR)/*.tar.gz
+ rm -rf $(BUILD_DIR)
+ $(VENV_RUN); $(PIP_CMD) install --upgrade build twine && \
+ python -m build --sdist --wheel && \
+ twine upload $(BUILD_DIR)/*
test: ## Run automated tests
($(VENV_RUN); test `which localstack` || pip install .[test]) && \
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..fed528d
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["setuptools"]
+build-backend = "setuptools.build_meta"
diff --git a/setup.py b/setup.py
deleted file mode 100755
index ac42fe2..0000000
--- a/setup.py
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/usr/bin/env python
-
-from setuptools import setup
-setup()