From 468ede53b3c7130340b16dfdb1ecd45e6dab58cb Mon Sep 17 00:00:00 2001 From: Andres Soto Date: Wed, 12 Nov 2025 13:38:22 -0500 Subject: [PATCH] fix: add PEP 561 py.typed markers for type checker support Add py.typed marker files to core and all module packages to indicate type information is available. This enables type checkers like Pyright and mypy to recognize and validate type hints in testcontainers packages. Resolves "Stub file not found" errors when running type checkers on code that imports testcontainers modules. --- core/testcontainers/py.typed | 1 + modules/arangodb/testcontainers/py.typed | 1 + modules/aws/testcontainers/py.typed | 1 + modules/azurite/testcontainers/py.typed | 1 + modules/cassandra/testcontainers/py.typed | 1 + modules/chroma/testcontainers/py.typed | 1 + modules/clickhouse/testcontainers/py.typed | 1 + modules/cockroachdb/testcontainers/py.typed | 1 + modules/cosmosdb/testcontainers/py.typed | 1 + modules/db2/testcontainers/py.typed | 1 + modules/elasticsearch/testcontainers/py.typed | 1 + modules/generic/testcontainers/py.typed | 1 + modules/google/testcontainers/py.typed | 1 + modules/influxdb/testcontainers/py.typed | 1 + modules/k3s/testcontainers/py.typed | 1 + modules/kafka/testcontainers/py.typed | 1 + modules/keycloak/testcontainers/py.typed | 1 + modules/localstack/testcontainers/py.typed | 1 + modules/mailpit/testcontainers/py.typed | 1 + modules/memcached/testcontainers/py.typed | 1 + modules/milvus/testcontainers/py.typed | 1 + modules/minio/testcontainers/py.typed | 1 + modules/mongodb/testcontainers/py.typed | 1 + modules/mqtt/testcontainers/py.typed | 1 + modules/mssql/testcontainers/py.typed | 1 + modules/mysql/testcontainers/py.typed | 1 + modules/nats/testcontainers/py.typed | 1 + modules/neo4j/testcontainers/py.typed | 1 + modules/nginx/testcontainers/py.typed | 1 + modules/ollama/testcontainers/py.typed | 1 + modules/openfga/testcontainers/py.typed | 1 + modules/opensearch/testcontainers/py.typed | 1 + modules/oracle-free/testcontainers/py.typed | 1 + modules/postgres/testcontainers/postgres/py.typed | 0 modules/postgres/testcontainers/py.typed | 1 + modules/qdrant/testcontainers/py.typed | 1 + modules/rabbitmq/testcontainers/py.typed | 1 + modules/redis/testcontainers/py.typed | 1 + modules/registry/testcontainers/py.typed | 1 + modules/scylla/testcontainers/py.typed | 1 + modules/selenium/testcontainers/py.typed | 1 + modules/sftp/testcontainers/py.typed | 1 + modules/test_module_import/testcontainers/py.typed | 1 + modules/trino/testcontainers/py.typed | 1 + modules/vault/testcontainers/py.typed | 1 + modules/weaviate/testcontainers/py.typed | 1 + pyproject.toml | 2 ++ 47 files changed, 47 insertions(+) create mode 100644 core/testcontainers/py.typed create mode 100644 modules/arangodb/testcontainers/py.typed create mode 100644 modules/aws/testcontainers/py.typed create mode 100644 modules/azurite/testcontainers/py.typed create mode 100644 modules/cassandra/testcontainers/py.typed create mode 100644 modules/chroma/testcontainers/py.typed create mode 100644 modules/clickhouse/testcontainers/py.typed create mode 100644 modules/cockroachdb/testcontainers/py.typed create mode 100644 modules/cosmosdb/testcontainers/py.typed create mode 100644 modules/db2/testcontainers/py.typed create mode 100644 modules/elasticsearch/testcontainers/py.typed create mode 100644 modules/generic/testcontainers/py.typed create mode 100644 modules/google/testcontainers/py.typed create mode 100644 modules/influxdb/testcontainers/py.typed create mode 100644 modules/k3s/testcontainers/py.typed create mode 100644 modules/kafka/testcontainers/py.typed create mode 100644 modules/keycloak/testcontainers/py.typed create mode 100644 modules/localstack/testcontainers/py.typed create mode 100644 modules/mailpit/testcontainers/py.typed create mode 100644 modules/memcached/testcontainers/py.typed create mode 100644 modules/milvus/testcontainers/py.typed create mode 100644 modules/minio/testcontainers/py.typed create mode 100644 modules/mongodb/testcontainers/py.typed create mode 100644 modules/mqtt/testcontainers/py.typed create mode 100644 modules/mssql/testcontainers/py.typed create mode 100644 modules/mysql/testcontainers/py.typed create mode 100644 modules/nats/testcontainers/py.typed create mode 100644 modules/neo4j/testcontainers/py.typed create mode 100644 modules/nginx/testcontainers/py.typed create mode 100644 modules/ollama/testcontainers/py.typed create mode 100644 modules/openfga/testcontainers/py.typed create mode 100644 modules/opensearch/testcontainers/py.typed create mode 100644 modules/oracle-free/testcontainers/py.typed create mode 100644 modules/postgres/testcontainers/postgres/py.typed create mode 100644 modules/postgres/testcontainers/py.typed create mode 100644 modules/qdrant/testcontainers/py.typed create mode 100644 modules/rabbitmq/testcontainers/py.typed create mode 100644 modules/redis/testcontainers/py.typed create mode 100644 modules/registry/testcontainers/py.typed create mode 100644 modules/scylla/testcontainers/py.typed create mode 100644 modules/selenium/testcontainers/py.typed create mode 100644 modules/sftp/testcontainers/py.typed create mode 100644 modules/test_module_import/testcontainers/py.typed create mode 100644 modules/trino/testcontainers/py.typed create mode 100644 modules/vault/testcontainers/py.typed create mode 100644 modules/weaviate/testcontainers/py.typed diff --git a/core/testcontainers/py.typed b/core/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/core/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/arangodb/testcontainers/py.typed b/modules/arangodb/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/arangodb/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/aws/testcontainers/py.typed b/modules/aws/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/aws/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/azurite/testcontainers/py.typed b/modules/azurite/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/azurite/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/cassandra/testcontainers/py.typed b/modules/cassandra/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/cassandra/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/chroma/testcontainers/py.typed b/modules/chroma/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/chroma/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/clickhouse/testcontainers/py.typed b/modules/clickhouse/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/clickhouse/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/cockroachdb/testcontainers/py.typed b/modules/cockroachdb/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/cockroachdb/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/cosmosdb/testcontainers/py.typed b/modules/cosmosdb/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/cosmosdb/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/db2/testcontainers/py.typed b/modules/db2/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/db2/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/elasticsearch/testcontainers/py.typed b/modules/elasticsearch/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/elasticsearch/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/generic/testcontainers/py.typed b/modules/generic/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/generic/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/google/testcontainers/py.typed b/modules/google/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/google/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/influxdb/testcontainers/py.typed b/modules/influxdb/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/influxdb/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/k3s/testcontainers/py.typed b/modules/k3s/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/k3s/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/kafka/testcontainers/py.typed b/modules/kafka/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/kafka/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/keycloak/testcontainers/py.typed b/modules/keycloak/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/keycloak/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/localstack/testcontainers/py.typed b/modules/localstack/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/localstack/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/mailpit/testcontainers/py.typed b/modules/mailpit/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/mailpit/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/memcached/testcontainers/py.typed b/modules/memcached/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/memcached/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/milvus/testcontainers/py.typed b/modules/milvus/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/milvus/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/minio/testcontainers/py.typed b/modules/minio/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/minio/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/mongodb/testcontainers/py.typed b/modules/mongodb/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/mongodb/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/mqtt/testcontainers/py.typed b/modules/mqtt/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/mqtt/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/mssql/testcontainers/py.typed b/modules/mssql/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/mssql/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/mysql/testcontainers/py.typed b/modules/mysql/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/mysql/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/nats/testcontainers/py.typed b/modules/nats/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/nats/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/neo4j/testcontainers/py.typed b/modules/neo4j/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/neo4j/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/nginx/testcontainers/py.typed b/modules/nginx/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/nginx/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/ollama/testcontainers/py.typed b/modules/ollama/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/ollama/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/openfga/testcontainers/py.typed b/modules/openfga/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/openfga/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/opensearch/testcontainers/py.typed b/modules/opensearch/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/opensearch/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/oracle-free/testcontainers/py.typed b/modules/oracle-free/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/oracle-free/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/postgres/testcontainers/postgres/py.typed b/modules/postgres/testcontainers/postgres/py.typed new file mode 100644 index 000000000..e69de29bb diff --git a/modules/postgres/testcontainers/py.typed b/modules/postgres/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/postgres/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/qdrant/testcontainers/py.typed b/modules/qdrant/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/qdrant/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/rabbitmq/testcontainers/py.typed b/modules/rabbitmq/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/rabbitmq/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/redis/testcontainers/py.typed b/modules/redis/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/redis/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/registry/testcontainers/py.typed b/modules/registry/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/registry/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/scylla/testcontainers/py.typed b/modules/scylla/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/scylla/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/selenium/testcontainers/py.typed b/modules/selenium/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/selenium/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/sftp/testcontainers/py.typed b/modules/sftp/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/sftp/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/test_module_import/testcontainers/py.typed b/modules/test_module_import/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/test_module_import/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/trino/testcontainers/py.typed b/modules/trino/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/trino/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/vault/testcontainers/py.typed b/modules/vault/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/vault/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/modules/weaviate/testcontainers/py.typed b/modules/weaviate/testcontainers/py.typed new file mode 100644 index 000000000..b648ac923 --- /dev/null +++ b/modules/weaviate/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/pyproject.toml b/pyproject.toml index 1a0231c51..29a2712e3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,6 +28,8 @@ classifiers = [ "Operating System :: Unix", "Operating System :: MacOS", ] +# Ensure PEP 561 typing marker files are included in distributions +include = ["**/py.typed"] # testcontainers-core is a proper package dependency - only modules needed here packages = [ { include = "testcontainers", from = "core" },