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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..e69de29b diff --git a/modules/postgres/testcontainers/py.typed b/modules/postgres/testcontainers/py.typed new file mode 100644 index 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /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 00000000..b648ac92 --- /dev/null +++ b/modules/weaviate/testcontainers/py.typed @@ -0,0 +1 @@ +partial diff --git a/pyproject.toml b/pyproject.toml index 1a0231c5..29a2712e 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" },