aws-durable-execution-sdk-python 1.1.1__tar.gz → 1.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/.github/workflows/ci.yml +4 -4
  2. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/.github/workflows/integration-tests.yml +6 -6
  3. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/.github/workflows/pypi-publish.yml +4 -4
  4. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/.github/workflows/scorecard.yml +3 -3
  5. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/.github/workflows/sync-package.yml +8 -20
  6. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/.github/workflows/test-parser.yml +1 -1
  7. aws_durable_execution_sdk_python-1.1.2/PKG-INFO +131 -0
  8. aws_durable_execution_sdk_python-1.1.2/README.md +108 -0
  9. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/advanced/testing-modes.md +1 -2
  10. aws_durable_execution_sdk_python-1.1.2/docs/agents.md +933 -0
  11. aws_durable_execution_sdk_python-1.1.1/README.md → aws_durable_execution_sdk_python-1.1.2/docs/architecture.md +20 -173
  12. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/best-practices.md +3 -3
  13. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/core/child-contexts.md +7 -5
  14. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/core/parallel.md +57 -46
  15. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/core/wait.md +1 -6
  16. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/getting-started.md +6 -5
  17. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/index.md +4 -33
  18. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/testing-patterns/basic-tests.md +4 -4
  19. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/testing-patterns/complex-workflows.md +5 -5
  20. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/testing-patterns/stores.md +2 -3
  21. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/pyproject.toml +1 -1
  22. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/__about__.py +1 -1
  23. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/concurrency/executor.py +14 -4
  24. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/execution.py +3 -3
  25. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/lambda_service.py +52 -31
  26. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/state.py +1 -0
  27. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/concurrency_test.py +125 -3
  28. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/execution_test.py +143 -0
  29. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/lambda_service_test.py +76 -3
  30. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/state_test.py +33 -0
  31. aws_durable_execution_sdk_python-1.1.1/.github/CODEOWNERS +0 -1
  32. aws_durable_execution_sdk_python-1.1.1/PKG-INFO +0 -681
  33. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  34. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  35. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/.github/ISSUE_TEMPLATE/documentation.yml +0 -0
  36. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  37. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/.github/dependabot.yml +0 -0
  38. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/.github/workflows/lintcommit.js +0 -0
  39. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/.gitignore +0 -0
  40. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/CODE_OF_CONDUCT.md +0 -0
  41. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/CONTRIBUTING.md +0 -0
  42. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/LICENSE +0 -0
  43. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/NOTICE +0 -0
  44. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/advanced/error-handling.md +0 -0
  45. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/advanced/serialization.md +0 -0
  46. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/api-reference/.gitkeep +0 -0
  47. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/core/callbacks.md +0 -0
  48. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/core/invoke.md +0 -0
  49. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/core/logger.md +0 -0
  50. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/core/map.md +0 -0
  51. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/core/steps.md +0 -0
  52. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/docs/testing-patterns/.gitkeep +0 -0
  53. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/ops/__tests__/test_parse_sdk_branch.py +0 -0
  54. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/ops/ci-checks.sh +0 -0
  55. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/ops/parse_sdk_branch.py +0 -0
  56. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/.gitignore +0 -0
  57. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/__init__.py +0 -0
  58. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/concurrency/__init__.py +0 -0
  59. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/concurrency/models.py +0 -0
  60. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/config.py +0 -0
  61. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/context.py +0 -0
  62. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/exceptions.py +0 -0
  63. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/identifier.py +0 -0
  64. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/logger.py +0 -0
  65. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/operation/__init__.py +0 -0
  66. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/operation/base.py +0 -0
  67. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/operation/callback.py +0 -0
  68. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/operation/child.py +0 -0
  69. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/operation/invoke.py +0 -0
  70. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/operation/map.py +0 -0
  71. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/operation/parallel.py +0 -0
  72. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/operation/step.py +0 -0
  73. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/operation/wait.py +0 -0
  74. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/operation/wait_for_condition.py +0 -0
  75. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/py.typed +0 -0
  76. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/retries.py +0 -0
  77. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/serdes.py +0 -0
  78. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/suspend.py +0 -0
  79. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/threading.py +0 -0
  80. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/types.py +0 -0
  81. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/src/aws_durable_execution_sdk_python/waits.py +0 -0
  82. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/__init__.py +0 -0
  83. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/config_test.py +0 -0
  84. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/context_test.py +0 -0
  85. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/durable_executions_python_language_sdk_test.py +0 -0
  86. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/e2e/__init__.py +0 -0
  87. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/e2e/checkpoint_response_int_test.py +0 -0
  88. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/e2e/execution_int_test.py +0 -0
  89. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/exceptions_test.py +0 -0
  90. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/logger_test.py +0 -0
  91. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/operation/__init__.py +0 -0
  92. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/operation/base_test.py +0 -0
  93. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/operation/callback_test.py +0 -0
  94. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/operation/child_test.py +0 -0
  95. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/operation/invoke_test.py +0 -0
  96. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/operation/map_test.py +0 -0
  97. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/operation/parallel_test.py +0 -0
  98. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/operation/step_test.py +0 -0
  99. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/operation/wait_for_condition_test.py +0 -0
  100. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/operation/wait_test.py +0 -0
  101. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/retries_test.py +0 -0
  102. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/serdes_test.py +0 -0
  103. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/suspend_test.py +0 -0
  104. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/test_helpers.py +0 -0
  105. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/threading_test.py +0 -0
  106. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/types_test.py +0 -0
  107. {aws_durable_execution_sdk_python-1.1.1 → aws_durable_execution_sdk_python-1.1.2}/tests/waits_test.py +0 -0
@@ -16,9 +16,9 @@ jobs:
16
16
  # Note: To re-run `lint-commits` after fixing the PR title, close-and-reopen the PR.
17
17
  runs-on: ubuntu-latest
18
18
  steps:
19
- - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
19
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
20
20
  - name: Use Node.js
21
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
21
+ uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
22
22
  with:
23
23
  node-version: 22.x
24
24
  - name: Check PR title
@@ -35,9 +35,9 @@ jobs:
35
35
  python-version: ["3.11","3.12","3.13","3.14"]
36
36
 
37
37
  steps:
38
- - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
38
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
39
39
  - name: Set up Python ${{ matrix.python-version }}
40
- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
40
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
41
41
  with:
42
42
  python-version: ${{ matrix.python-version }}
43
43
  - name: Install Hatch
@@ -18,7 +18,7 @@ jobs:
18
18
 
19
19
  steps:
20
20
  - name: Checkout Language SDK (this PR)
21
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
21
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
22
22
  with:
23
23
  path: language-sdk
24
24
 
@@ -29,7 +29,7 @@ jobs:
29
29
  PR_BODY: ${{ github.event.pull_request.body }}
30
30
 
31
31
  - name: Checkout Testing SDK
32
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
32
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
33
33
  with:
34
34
  repository: aws/aws-durable-execution-sdk-python-testing
35
35
  ref: ${{ steps.parse.outputs.testing_ref }}
@@ -37,7 +37,7 @@ jobs:
37
37
  path: testing-sdk
38
38
 
39
39
  - name: Set up Python ${{ matrix.python-version }}
40
- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
40
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
41
41
  with:
42
42
  python-version: ${{ matrix.python-version }}
43
43
 
@@ -67,7 +67,7 @@ jobs:
67
67
 
68
68
  steps:
69
69
  - name: Checkout Language SDK (this PR)
70
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
70
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
71
71
  with:
72
72
  path: language-sdk
73
73
 
@@ -78,7 +78,7 @@ jobs:
78
78
  PR_BODY: ${{ github.event.pull_request.body }}
79
79
 
80
80
  - name: Checkout Testing SDK
81
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
81
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
82
82
  with:
83
83
  repository: aws/aws-durable-execution-sdk-python-testing
84
84
  ref: ${{ steps.parse.outputs.testing_ref }}
@@ -86,7 +86,7 @@ jobs:
86
86
  path: testing-sdk
87
87
 
88
88
  - name: Set up Python 3.13
89
- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
89
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
90
90
  with:
91
91
  python-version: '3.13'
92
92
 
@@ -20,9 +20,9 @@ jobs:
20
20
  runs-on: ubuntu-latest
21
21
 
22
22
  steps:
23
- - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
23
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
24
24
 
25
- - uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
25
+ - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
26
26
  with:
27
27
  python-version: "3.11"
28
28
  - name: Install Hatch
@@ -34,7 +34,7 @@ jobs:
34
34
  hatch build
35
35
 
36
36
  - name: Upload distributions
37
- uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
37
+ uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
38
38
  with:
39
39
  name: release-dists
40
40
  path: dist/
@@ -60,7 +60,7 @@ jobs:
60
60
 
61
61
  steps:
62
62
  - name: Retrieve release distributions
63
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
63
+ uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
64
64
  with:
65
65
  name: release-dists
66
66
  path: dist/
@@ -36,7 +36,7 @@ jobs:
36
36
 
37
37
  steps:
38
38
  - name: "Checkout code"
39
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
39
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
40
40
  with:
41
41
  persist-credentials: false
42
42
 
@@ -66,7 +66,7 @@ jobs:
66
66
  # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
67
67
  # format to the repository Actions tab.
68
68
  - name: "Upload artifact"
69
- uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
69
+ uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
70
70
  with:
71
71
  name: SARIF file
72
72
  path: results.sarif
@@ -75,6 +75,6 @@ jobs:
75
75
  # Upload the results to GitHub's code scanning dashboard (optional).
76
76
  # Commenting out will disable upload of results to your repo's Code Scanning dashboard
77
77
  - name: "Upload to code-scanning"
78
- uses: github/codeql-action/upload-sarif@cf1bb45a277cb3c205638b2cd5c984db1c46a412 # v4.31.7
78
+ uses: github/codeql-action/upload-sarif@19b2f06db2b6f5108140aeb04014ef02b648f789 # v4.31.11
79
79
  with:
80
80
  sarif_file: results.sarif
@@ -20,9 +20,9 @@ jobs:
20
20
  python-version: ["3.13"]
21
21
 
22
22
  steps:
23
- - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
23
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
24
24
  - name: Set up Python ${{ matrix.python-version }}
25
- uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
25
+ uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
26
26
  with:
27
27
  python-version: ${{ matrix.python-version }}
28
28
  - name: Install Hatch
@@ -36,21 +36,15 @@ jobs:
36
36
  role-to-assume: "${{ secrets.ACTIONS_SYNC_ROLE_NAME }}"
37
37
  role-session-name: gh-python
38
38
  aws-region: ${{ env.AWS_REGION }}
39
- - name: Get tar gz name
40
- id: tar_gz_name
41
- run: |
42
- TAR_GZ_NAME=$(ls *.tar.gz)
43
- echo "tar_gz_name=$TAR_GZ_NAME" >> $GITHUB_OUTPUT
44
- working-directory: dist
45
39
  - name: Copy tar gz build file to s3
46
40
  run: |
47
- aws s3 cp ./dist/${{steps.tar_gz_name.outputs.tar_gz_name}} \
48
- s3://${{ secrets.S3_BUCKET_NAME }}/
41
+ aws s3 cp ./dist/*.tar.gz \
42
+ s3://${{ secrets.S3_BUCKET_NAME }}/aws-durable-execution-sdk-python.tar.gz
49
43
  - name: commit tar gz to Gitfarm
50
44
  run: |
51
45
  aws lambda invoke \
52
46
  --function-name ${{ secrets.SYNC_LAMBDA_ARN }} \
53
- --payload '{"gitFarmRepo":"${{ secrets.GITFARM_LAN_SDK_REPO }}","gitFarmBranch":"${{ secrets.GITFARM_LAN_SDK_BRANCH }}","gitFarmFilepath":"${{ steps.tar_gz_name.outputs.tar_gz_name }}","s3Bucket":"${{ secrets.S3_BUCKET_NAME }}","s3FilePath":"${{ steps.tar_gz_name.outputs.tar_gz_name }}", "gitHubRepo": "aws-durable-execution-sdk-python", "gitHubCommit":"${{ github.sha }}"}' \
47
+ --payload '{"gitFarmRepo":"${{ secrets.GITFARM_LAN_SDK_REPO }}","gitFarmBranch":"${{ secrets.GITFARM_LAN_SDK_BRANCH }}","gitFarmFilepath":"aws-durable-execution-sdk-python.tar.gz","s3Bucket":"${{ secrets.S3_BUCKET_NAME }}","s3FilePath":"aws-durable-execution-sdk-python.tar.gz", "gitHubRepo": "aws-durable-execution-sdk-python", "gitHubCommit":"${{ github.sha }}"}' \
54
48
  --cli-binary-format raw-in-base64-out \
55
49
  output.txt
56
50
  - name: Check for error in lambda invoke
@@ -59,21 +53,15 @@ jobs:
59
53
  cat output.txt
60
54
  exit 1
61
55
  fi
62
- - name: Get whl name
63
- id: whl_name
64
- run: |
65
- WHL_NAME=$(ls *.whl)
66
- echo "whl_name=$WHL_NAME" >> $GITHUB_OUTPUT
67
- working-directory: dist
68
56
  - name: Copy whl build file to s3
69
57
  run: |
70
- aws s3 cp ./dist/${{steps.whl_name.outputs.whl_name}} \
71
- s3://${{ secrets.S3_BUCKET_NAME }}/
58
+ aws s3 cp ./dist/*.whl \
59
+ s3://${{ secrets.S3_BUCKET_NAME }}/aws-durable-execution-sdk-python.whl
72
60
  - name: commit whl to Gitfarm
73
61
  run: |
74
62
  aws lambda invoke \
75
63
  --function-name ${{ secrets.SYNC_LAMBDA_ARN }} \
76
- --payload '{"gitFarmRepo":"${{ secrets.GITFARM_LAN_SDK_REPO }}","gitFarmBranch":"${{ secrets.GITFARM_LAN_SDK_BRANCH }}","gitFarmFilepath":"${{ steps.whl_name.outputs.whl_name }}","s3Bucket":"${{ secrets.S3_BUCKET_NAME }}","s3FilePath":"${{ steps.whl_name.outputs.whl_name }}", "gitHubRepo": "aws-durable-execution-sdk-python", "gitHubCommit":"${{ github.sha }}"}' \
64
+ --payload '{"gitFarmRepo":"${{ secrets.GITFARM_LAN_SDK_REPO }}","gitFarmBranch":"${{ secrets.GITFARM_LAN_SDK_BRANCH }}","gitFarmFilepath":"aws-durable-execution-sdk-python.whl","s3Bucket":"${{ secrets.S3_BUCKET_NAME }}","s3FilePath":"aws-durable-execution-sdk-python.whl", "gitHubRepo": "aws-durable-execution-sdk-python", "gitHubCommit":"${{ github.sha }}"}' \
77
65
  --cli-binary-format raw-in-base64-out \
78
66
  output.txt
79
67
  - name: Check for error in lambda invoke
@@ -18,7 +18,7 @@ jobs:
18
18
  test-parser:
19
19
  runs-on: ubuntu-latest
20
20
  steps:
21
- - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
21
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
22
22
 
23
23
  - name: Run parser tests
24
24
  run: python ops/__tests__/test_parse_sdk_branch.py
@@ -0,0 +1,131 @@
1
+ Metadata-Version: 2.4
2
+ Name: aws-durable-execution-sdk-python
3
+ Version: 1.1.2
4
+ Summary: AWS Durable Execution SDK for Python
5
+ Project-URL: Documentation, https://github.com/aws/aws-durable-execution-sdk-python#readme
6
+ Project-URL: Issues, https://github.com/aws/aws-durable-execution-sdk-python/issues
7
+ Project-URL: Source, https://github.com/aws/aws-durable-execution-sdk-python
8
+ Author-email: yaythomas <tgaigher@amazon.com>
9
+ License-Expression: Apache-2.0
10
+ License-File: LICENSE
11
+ License-File: NOTICE
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: 3.14
18
+ Classifier: Programming Language :: Python :: Implementation :: CPython
19
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
20
+ Requires-Python: >=3.11
21
+ Requires-Dist: boto3>=1.42.1
22
+ Description-Content-Type: text/markdown
23
+
24
+ # AWS Durable Execution SDK for Python
25
+
26
+ [![Build](https://github.com/aws/aws-durable-execution-sdk-python/actions/workflows/ci.yml/badge.svg)](https://github.com/aws/aws-durable-execution-sdk-python/actions/workflows/ci.yml)
27
+ [![PyPI - Version](https://img.shields.io/pypi/v/aws-durable-execution-sdk-python.svg)](https://pypi.org/project/aws-durable-execution-sdk-python)
28
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/aws-durable-execution-sdk-python.svg)](https://pypi.org/project/aws-durable-execution-sdk-python)
29
+ [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/aws/aws-durable-execution-sdk-python/badge)](https://scorecard.dev/viewer/?uri=github.com/aws/aws-durable-execution-sdk-python)
30
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
31
+
32
+ -----
33
+
34
+ Build reliable, long-running AWS Lambda workflows with checkpointed steps, waits, callbacks, and parallel execution.
35
+
36
+ ## ✨ Key Features
37
+
38
+ - **Automatic checkpointing** - Resume execution after Lambda pauses or restarts
39
+ - **Durable steps** - Run work with retry strategies and deterministic replay
40
+ - **Waits and callbacks** - Pause for time or external signals without blocking Lambda
41
+ - **Parallel and map operations** - Fan out work with configurable completion criteria
42
+ - **Child contexts** - Structure complex workflows into isolated subflows
43
+ - **Replay-safe logging** - Use `context.logger` for structured, de-duplicated logs
44
+ - **Local and cloud testing** - Validate workflows with the testing SDK
45
+
46
+ ## 📦 Packages
47
+
48
+ | Package | Description | Version |
49
+ | --- | --- | --- |
50
+ | `aws-durable-execution-sdk-python` | Execution SDK for Lambda durable functions | [![PyPI - Version](https://img.shields.io/pypi/v/aws-durable-execution-sdk-python.svg)](https://pypi.org/project/aws-durable-execution-sdk-python) |
51
+ | `aws-durable-execution-sdk-python-testing` | Local/cloud test runner and pytest helpers | [![PyPI - Version](https://img.shields.io/pypi/v/aws-durable-execution-sdk-python-testing.svg)](https://pypi.org/project/aws-durable-execution-sdk-python-testing) |
52
+
53
+ ## 🚀 Quick Start
54
+
55
+ Install the execution SDK:
56
+
57
+ ```console
58
+ pip install aws-durable-execution-sdk-python
59
+ ```
60
+
61
+ Create a durable Lambda handler:
62
+
63
+ ```python
64
+ from aws_durable_execution_sdk_python import (
65
+ DurableContext,
66
+ StepContext,
67
+ durable_execution,
68
+ durable_step,
69
+ )
70
+ from aws_durable_execution_sdk_python.config import Duration
71
+
72
+ @durable_step
73
+ def validate_order(step_ctx: StepContext, order_id: str) -> dict:
74
+ step_ctx.logger.info("Validating order", extra={"order_id": order_id})
75
+ return {"order_id": order_id, "valid": True}
76
+
77
+ @durable_execution
78
+ def handler(event: dict, context: DurableContext) -> dict:
79
+ order_id = event["order_id"]
80
+ context.logger.info("Starting workflow", extra={"order_id": order_id})
81
+
82
+ validation = context.step(validate_order(order_id), name="validate_order")
83
+ if not validation["valid"]:
84
+ return {"status": "rejected", "order_id": order_id}
85
+
86
+ # simulate approval (real world: use wait_for_callback)
87
+ context.wait(duration=Duration.from_seconds(5), name="await_confirmation")
88
+
89
+ return {"status": "approved", "order_id": order_id}
90
+ ```
91
+
92
+ ## 📚 Documentation
93
+
94
+ - **[AWS Documentation](https://docs.aws.amazon.com/lambda/latest/dg/durable-functions.html)** - Official AWS Lambda durable functions guide
95
+ - **[Documentation index](docs/index.md)** - SDK Overview and navigation
96
+
97
+ **New to durable functions?**
98
+ - [Getting started guide](docs/getting-started.md) - Build your first durable function
99
+
100
+ **Core operations:**
101
+ - [Steps](docs/core/steps.md) - Execute code with automatic checkpointing and retry support
102
+ - [Wait operations](docs/core/wait.md) - Pause execution without blocking Lambda resources
103
+ - [Callbacks](docs/core/callbacks.md) - Wait for external systems to respond
104
+ - [Invoke operations](docs/core/invoke.md) - Call other durable functions and compose workflows
105
+ - [Child contexts](docs/core/child-contexts.md) - Organize complex workflows into isolated units
106
+ - [Parallel operations](docs/core/parallel.md) - Run multiple operations concurrently
107
+ - [Map operations](docs/core/map.md) - Process collections in parallel with batching
108
+ - [Logger integration](docs/core/logger.md) - Add structured logging to track execution
109
+
110
+ **Advanced topics:**
111
+ - [Error handling](docs/advanced/error-handling.md) - Handle failures and implement retry strategies
112
+ - [Testing modes](docs/advanced/testing-modes.md) - Run tests locally or against deployed Lambda functions
113
+ - [Testing patterns](docs/testing-patterns/basic-tests.md) - Practical testing examples
114
+ - [Serialization](docs/advanced/serialization.md) - Customize how data is serialized in checkpoints
115
+
116
+ **Architecture:**
117
+ - [Architecture diagrams](docs/architecture.md) - Class diagrams and concurrency flows
118
+
119
+ **API reference:**
120
+ - API reference docs are in progress. Use the core operation docs above for now.
121
+
122
+ ## 💬 Feedback & Support
123
+
124
+ - [Bug report](https://github.com/aws/aws-durable-execution-sdk-python/issues/new?template=bug_report.yml)
125
+ - [Feature request](https://github.com/aws/aws-durable-execution-sdk-python/issues/new?template=feature_request.yml)
126
+ - [Documentation feedback](https://github.com/aws/aws-durable-execution-sdk-python/issues/new?template=documentation.yml)
127
+ - [Contributing guide](CONTRIBUTING.md)
128
+
129
+ ## 📄 License
130
+
131
+ See the [LICENSE](LICENSE) file for our project's licensing.
@@ -0,0 +1,108 @@
1
+ # AWS Durable Execution SDK for Python
2
+
3
+ [![Build](https://github.com/aws/aws-durable-execution-sdk-python/actions/workflows/ci.yml/badge.svg)](https://github.com/aws/aws-durable-execution-sdk-python/actions/workflows/ci.yml)
4
+ [![PyPI - Version](https://img.shields.io/pypi/v/aws-durable-execution-sdk-python.svg)](https://pypi.org/project/aws-durable-execution-sdk-python)
5
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/aws-durable-execution-sdk-python.svg)](https://pypi.org/project/aws-durable-execution-sdk-python)
6
+ [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/aws/aws-durable-execution-sdk-python/badge)](https://scorecard.dev/viewer/?uri=github.com/aws/aws-durable-execution-sdk-python)
7
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
8
+
9
+ -----
10
+
11
+ Build reliable, long-running AWS Lambda workflows with checkpointed steps, waits, callbacks, and parallel execution.
12
+
13
+ ## ✨ Key Features
14
+
15
+ - **Automatic checkpointing** - Resume execution after Lambda pauses or restarts
16
+ - **Durable steps** - Run work with retry strategies and deterministic replay
17
+ - **Waits and callbacks** - Pause for time or external signals without blocking Lambda
18
+ - **Parallel and map operations** - Fan out work with configurable completion criteria
19
+ - **Child contexts** - Structure complex workflows into isolated subflows
20
+ - **Replay-safe logging** - Use `context.logger` for structured, de-duplicated logs
21
+ - **Local and cloud testing** - Validate workflows with the testing SDK
22
+
23
+ ## 📦 Packages
24
+
25
+ | Package | Description | Version |
26
+ | --- | --- | --- |
27
+ | `aws-durable-execution-sdk-python` | Execution SDK for Lambda durable functions | [![PyPI - Version](https://img.shields.io/pypi/v/aws-durable-execution-sdk-python.svg)](https://pypi.org/project/aws-durable-execution-sdk-python) |
28
+ | `aws-durable-execution-sdk-python-testing` | Local/cloud test runner and pytest helpers | [![PyPI - Version](https://img.shields.io/pypi/v/aws-durable-execution-sdk-python-testing.svg)](https://pypi.org/project/aws-durable-execution-sdk-python-testing) |
29
+
30
+ ## 🚀 Quick Start
31
+
32
+ Install the execution SDK:
33
+
34
+ ```console
35
+ pip install aws-durable-execution-sdk-python
36
+ ```
37
+
38
+ Create a durable Lambda handler:
39
+
40
+ ```python
41
+ from aws_durable_execution_sdk_python import (
42
+ DurableContext,
43
+ StepContext,
44
+ durable_execution,
45
+ durable_step,
46
+ )
47
+ from aws_durable_execution_sdk_python.config import Duration
48
+
49
+ @durable_step
50
+ def validate_order(step_ctx: StepContext, order_id: str) -> dict:
51
+ step_ctx.logger.info("Validating order", extra={"order_id": order_id})
52
+ return {"order_id": order_id, "valid": True}
53
+
54
+ @durable_execution
55
+ def handler(event: dict, context: DurableContext) -> dict:
56
+ order_id = event["order_id"]
57
+ context.logger.info("Starting workflow", extra={"order_id": order_id})
58
+
59
+ validation = context.step(validate_order(order_id), name="validate_order")
60
+ if not validation["valid"]:
61
+ return {"status": "rejected", "order_id": order_id}
62
+
63
+ # simulate approval (real world: use wait_for_callback)
64
+ context.wait(duration=Duration.from_seconds(5), name="await_confirmation")
65
+
66
+ return {"status": "approved", "order_id": order_id}
67
+ ```
68
+
69
+ ## 📚 Documentation
70
+
71
+ - **[AWS Documentation](https://docs.aws.amazon.com/lambda/latest/dg/durable-functions.html)** - Official AWS Lambda durable functions guide
72
+ - **[Documentation index](docs/index.md)** - SDK Overview and navigation
73
+
74
+ **New to durable functions?**
75
+ - [Getting started guide](docs/getting-started.md) - Build your first durable function
76
+
77
+ **Core operations:**
78
+ - [Steps](docs/core/steps.md) - Execute code with automatic checkpointing and retry support
79
+ - [Wait operations](docs/core/wait.md) - Pause execution without blocking Lambda resources
80
+ - [Callbacks](docs/core/callbacks.md) - Wait for external systems to respond
81
+ - [Invoke operations](docs/core/invoke.md) - Call other durable functions and compose workflows
82
+ - [Child contexts](docs/core/child-contexts.md) - Organize complex workflows into isolated units
83
+ - [Parallel operations](docs/core/parallel.md) - Run multiple operations concurrently
84
+ - [Map operations](docs/core/map.md) - Process collections in parallel with batching
85
+ - [Logger integration](docs/core/logger.md) - Add structured logging to track execution
86
+
87
+ **Advanced topics:**
88
+ - [Error handling](docs/advanced/error-handling.md) - Handle failures and implement retry strategies
89
+ - [Testing modes](docs/advanced/testing-modes.md) - Run tests locally or against deployed Lambda functions
90
+ - [Testing patterns](docs/testing-patterns/basic-tests.md) - Practical testing examples
91
+ - [Serialization](docs/advanced/serialization.md) - Customize how data is serialized in checkpoints
92
+
93
+ **Architecture:**
94
+ - [Architecture diagrams](docs/architecture.md) - Class diagrams and concurrency flows
95
+
96
+ **API reference:**
97
+ - API reference docs are in progress. Use the core operation docs above for now.
98
+
99
+ ## 💬 Feedback & Support
100
+
101
+ - [Bug report](https://github.com/aws/aws-durable-execution-sdk-python/issues/new?template=bug_report.yml)
102
+ - [Feature request](https://github.com/aws/aws-durable-execution-sdk-python/issues/new?template=feature_request.yml)
103
+ - [Documentation feedback](https://github.com/aws/aws-durable-execution-sdk-python/issues/new?template=documentation.yml)
104
+ - [Contributing guide](CONTRIBUTING.md)
105
+
106
+ ## 📄 License
107
+
108
+ See the [LICENSE](LICENSE) file for our project's licensing.
@@ -488,9 +488,8 @@ Fix the error in your function code and redeploy.
488
488
 
489
489
  ## See also
490
490
 
491
- - [Test Runner](../core/test-runner.md) - Learn about the test runner interface
492
491
  - [Getting Started](../getting-started.md) - Set up your development environment
493
- - [Pytest Integration](pytest-integration.md) - Advanced pytest configuration
492
+ - [Testing patterns](../testing-patterns/basic-tests.md) - Practical pytest examples
494
493
  - [Examples README](../../examples/test/README.md) - More examples and configuration details
495
494
 
496
495
  [↑ Back to top](#table-of-contents)