Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,6 @@ htmlcov
*.egg-info
dist
.venv

# make gen
/workspace/
14 changes: 13 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
.DEFAULT_GOAL:=help

.PHONY: help install format-java check-java build-java generate-protocol-tests generate-codegen-output-py api-snapshot aio-check ci lint-py check-py lint-rust check-rust third-party-licenses test-py test-protocols typecheck-protocols static-analysis test-unit test-functional test-integration benchmark build-py clean
.PHONY: help install format-java check-java build-java generate-protocol-tests generate-codegen-output-py api-snapshot aio-check gen ci lint-py check-py lint-rust check-rust third-party-licenses test-py test-protocols typecheck-protocols static-analysis test-unit test-functional test-integration benchmark build-py clean

help: ## Show this help.
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n\nTargets:\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-25s\033[0m %s\n", $$1, $$2 }' $(MAKEFILE_LIST)
Expand Down Expand Up @@ -106,6 +106,18 @@ aio-check: ## Enforces aio naming and separation in package sources.
uv run python scripts/aio-naming/aio_naming.py


# `make gen dynamodb`: the second goal is the client name, so swallow it as a no-op target.
ifeq (gen,$(firstword $(MAKECMDGOALS)))
CLIENT ?= $(word 2,$(MAKECMDGOALS))
ifneq (,$(word 2,$(MAKECMDGOALS)))
$(eval $(word 2,$(MAKECMDGOALS)):;@:)
endif
endif

gen: ## Generates an AWS SDK client from a sibling aws-sdk-python model into ./workspace/clients (make gen dynamodb).
uv run python scripts/gen-client/gen_client.py "$(CLIENT)"


lint-py: ## Runs linters and formatters on the python packages.
uv run ruff check packages --fix --config pyproject.toml
uv run ruff format packages --config pyproject.toml
Expand Down
2 changes: 1 addition & 1 deletion codegen-output/aws-json-1-0/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ classifiers = [
dependencies = [
"smithy_aws_core[json]~=0.12.0",
"smithy_core~=0.9.0",
"smithy_http[aiohttp]~=0.6.0"
"smithy_http[aiohttp, urllib3]~=0.6.0"
]

[project.optional-dependencies]
Expand Down
17 changes: 17 additions & 0 deletions codegen-output/aws-json-1-0/src/awsjson10/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
# Code generated by smithy-python-codegen DO NOT EDIT.

from typing import Any, TYPE_CHECKING


if TYPE_CHECKING:
from .sync import JSONRPC10Client, JSONRPC10Config

__all__ = ["JSONRPC10Client", "JSONRPC10Config"]


def __getattr__(name: str) -> Any:
if name in __all__:
from . import sync

return getattr(sync, name)
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")


__version__: str = "0.0.1"
6 changes: 6 additions & 0 deletions codegen-output/aws-json-1-0/src/awsjson10/sync/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Code generated by smithy-python-codegen DO NOT EDIT.

from .client import JSONRPC10Client
from .config import JSONRPC10Config, Plugin

__all__ = ["JSONRPC10Client", "JSONRPC10Config", "Plugin"]
Loading
Loading