exchange-keyshare 0.1.1__tar.gz → 0.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 (30) hide show
  1. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/PKG-INFO +1 -1
  2. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/pyproject.toml +1 -1
  3. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/src/exchange_keyshare/setup.py +5 -1
  4. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/uv.lock +30 -1
  5. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/.claude/settings.local.json +0 -0
  6. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/.github/workflows/ci.yaml +0 -0
  7. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/.github/workflows/publish.yml +0 -0
  8. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/.gitignore +0 -0
  9. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/CLAUDE.md +0 -0
  10. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/README.md +0 -0
  11. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/src/exchange_keyshare/__init__.py +0 -0
  12. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/src/exchange_keyshare/cfn.py +0 -0
  13. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/src/exchange_keyshare/cli.py +0 -0
  14. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/src/exchange_keyshare/commands/__init__.py +0 -0
  15. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/src/exchange_keyshare/commands/config.py +0 -0
  16. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/src/exchange_keyshare/commands/keys.py +0 -0
  17. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/src/exchange_keyshare/commands/setup.py +0 -0
  18. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/src/exchange_keyshare/commands/teardown.py +0 -0
  19. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/src/exchange_keyshare/config.py +0 -0
  20. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/src/exchange_keyshare/keys.py +0 -0
  21. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/src/exchange_keyshare/schema.py +0 -0
  22. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/src/exchange_keyshare/templates/stack.yaml +0 -0
  23. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/templates +0 -0
  24. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/tests/__init__.py +0 -0
  25. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/tests/test_cfn.py +0 -0
  26. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/tests/test_cli.py +0 -0
  27. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/tests/test_config.py +0 -0
  28. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/tests/test_keys.py +0 -0
  29. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/tests/test_schema.py +0 -0
  30. {exchange_keyshare-0.1.1 → exchange_keyshare-0.1.2}/tests/test_setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: exchange-keyshare
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: CLI for market makers to securely share exchange API credentials
5
5
  Requires-Python: >=3.12
6
6
  Requires-Dist: boto3>=1.34.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "exchange-keyshare"
3
- version = "0.1.1"
3
+ version = "0.1.2"
4
4
  description = "CLI for market makers to securely share exchange API credentials"
5
5
  requires-python = ">=3.12"
6
6
  dependencies = [
@@ -265,7 +265,7 @@ def poll_stack_deletion(
265
265
  stack = stacks_response["Stacks"][0]
266
266
  stack_status = stack.get("StackStatus", "UNKNOWN")
267
267
 
268
- # Get resource events
268
+ # Get resource events (only delete-related)
269
269
  try:
270
270
  events_response = cfn.describe_stack_events(StackName=stack_name)
271
271
  for event in events_response["StackEvents"]:
@@ -278,6 +278,10 @@ def poll_stack_deletion(
278
278
  if resource_type == "AWS::CloudFormation::Stack":
279
279
  continue
280
280
 
281
+ # Only track delete-related statuses
282
+ if "DELETE" not in status:
283
+ continue
284
+
281
285
  # Update if this is a newer status for this resource
282
286
  if logical_id not in resources or _is_newer_delete_status(status, resources[logical_id].status):
283
287
  resources[logical_id] = ResourceStatus(
@@ -6,6 +6,28 @@ resolution-markers = [
6
6
  "python_full_version < '3.14'",
7
7
  ]
8
8
 
9
+ [[package]]
10
+ name = "awscrt"
11
+ version = "0.29.2"
12
+ source = { registry = "https://pypi.org/simple" }
13
+ sdist = { url = "https://files.pythonhosted.org/packages/1c/90/f985002a50859ea39841e66bc816c224b623c03f943b34bfe08fee17165c/awscrt-0.29.2.tar.gz", hash = "sha256:c78d81b1308d42fda1eb21d27fcf26579137b821043e528550f2cfc6c09ab9ff", size = 38013553, upload-time = "2025-12-04T00:16:36.777Z" }
14
+ wheels = [
15
+ { url = "https://files.pythonhosted.org/packages/c8/7f/9d7b3d3f72369f80730ee5a0e964a1cd6ccf83d8c117a4d1df629e3ed6f9/awscrt-0.29.2-cp311-abi3-macosx_10_15_universal2.whl", hash = "sha256:3ff819a542acc5f11c46223204362c6b065031df0e4a37bf1ce2fc233a7145e4", size = 3407922, upload-time = "2025-12-04T00:15:49.071Z" },
16
+ { url = "https://files.pythonhosted.org/packages/17/f2/3e61a4683ff8e9bc59871214e833bf3f67e9f08b1884aae9e1166ef06ac3/awscrt-0.29.2-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:aa3d2f7fc0218a04707384afd871a8c3e97251185038eb921ae2fae4f61b7d90", size = 3817179, upload-time = "2025-12-04T00:15:50.965Z" },
17
+ { url = "https://files.pythonhosted.org/packages/3b/13/a7366b0465b998b1d05f8b3a05e5897a431ec101b9a389be6058fbbe5e26/awscrt-0.29.2-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4f86d5a1a3c6d817dc0087d4e25abae1a7a1dd678d31fbcd226a15515719bdac", size = 4091388, upload-time = "2025-12-04T00:15:52.182Z" },
18
+ { url = "https://files.pythonhosted.org/packages/dd/90/a34b1b29612d91baad1273ea1d4e31ab3a90e2db4e516345329fecfbaeb2/awscrt-0.29.2-cp311-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a6451a730c961b73b57dccdcf8599bf8058740053b531d3724efbf3a89e2d191", size = 3719628, upload-time = "2025-12-04T00:15:53.356Z" },
19
+ { url = "https://files.pythonhosted.org/packages/dd/94/2d93803e93cff7da0f5c9b6422b9f919d86db83640cdfbae569bdf22e606/awscrt-0.29.2-cp311-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:66a82b0960d281e14e7bfb95e9d6934cbc8e949b3f3e829709736b14bf0e6760", size = 3945694, upload-time = "2025-12-04T00:15:54.879Z" },
20
+ { url = "https://files.pythonhosted.org/packages/ec/26/e2517fe8eb2f565ba52274a59f301bc6fac25494e0d28b6257fde237190a/awscrt-0.29.2-cp311-abi3-win32.whl", hash = "sha256:c1c243a7d7b9ed9c1e10acfb44eaab81b88eec24b50915ce3db45a8ffa4f2edb", size = 3959540, upload-time = "2025-12-04T00:15:57.138Z" },
21
+ { url = "https://files.pythonhosted.org/packages/9a/49/bc9f3bcf2d49c58b97dd357f617c8331c1be02e5907316eb0ac39096941d/awscrt-0.29.2-cp311-abi3-win_amd64.whl", hash = "sha256:cd7349596f8f7b05805e047d29bfceb2304f5f0277fe0088e13ea8fe41ac3064", size = 4092749, upload-time = "2025-12-04T00:15:58.414Z" },
22
+ { url = "https://files.pythonhosted.org/packages/1f/41/a564e4537c8e56259d9a9a86239d6b89448a742a5a5769b8cb81e2db7b26/awscrt-0.29.2-cp313-abi3-macosx_10_15_universal2.whl", hash = "sha256:2377b9adf0db47fcf74ad6c89afcd901f6cf97f24ba4f0e5e352f5ffe12affef", size = 3406616, upload-time = "2025-12-04T00:15:59.966Z" },
23
+ { url = "https://files.pythonhosted.org/packages/9e/f2/4f88475ea7a9e4954871ebe188bfc9b5d29a60e1101e50a984afde904c3b/awscrt-0.29.2-cp313-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e0cb67ce813577679dab7ab56cc8bb16a546328589db87a55f7b52314f54504f", size = 3809168, upload-time = "2025-12-04T00:16:01.288Z" },
24
+ { url = "https://files.pythonhosted.org/packages/22/6f/f08b3b646198d9a5fb45bc411e6a102ec976efc4acc34c01ac86cf557216/awscrt-0.29.2-cp313-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cb7d44ed31baeb1b5720674a0249f48d8d6e548ea544ddfb93000b6bff559f34", size = 4084414, upload-time = "2025-12-04T00:16:03.504Z" },
25
+ { url = "https://files.pythonhosted.org/packages/3e/40/fd45b53bfc5486a31080a767947396f717534dde0ace1c9ee48b96c079b9/awscrt-0.29.2-cp313-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:e455776fd0a04929c586a66e590c6eb6f2ca08b96ec13323bfb087ee17fd6e99", size = 3710752, upload-time = "2025-12-04T00:16:04.777Z" },
26
+ { url = "https://files.pythonhosted.org/packages/53/25/179278c03b84e09332ef4a7770878b93b43f10564b6a94a82faa8d9329e6/awscrt-0.29.2-cp313-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:70fd197fe83b78c25c2c57293466808df6f63287a480984834b4af7b9d18d4c0", size = 3939687, upload-time = "2025-12-04T00:16:06.342Z" },
27
+ { url = "https://files.pythonhosted.org/packages/4f/5c/8330d3f8f5f080a85dc79c376c7125f24579dfb9c4e200224292062a36bb/awscrt-0.29.2-cp313-abi3-win32.whl", hash = "sha256:b3c46e4808ce7cfb6a63878e45b30b3410f5c314e352396d1210380787cafee2", size = 3954574, upload-time = "2025-12-04T00:16:07.539Z" },
28
+ { url = "https://files.pythonhosted.org/packages/e8/8f/630f3083d07a75e258aae67c0d06c7ed69098d4ca85550e9cd344d3f613d/awscrt-0.29.2-cp313-abi3-win_amd64.whl", hash = "sha256:74f8944e04bfc1508cce784b75927b4fb9895ff6a57310abb523c4b446b4f34f", size = 4085860, upload-time = "2025-12-04T00:16:08.752Z" },
29
+ ]
30
+
9
31
  [[package]]
10
32
  name = "boto3"
11
33
  version = "1.42.37"
@@ -55,6 +77,11 @@ wheels = [
55
77
  { url = "https://files.pythonhosted.org/packages/72/30/54042dd3ad8161964f8f47aa418785079bd8d2f17053c40d65bafb9f6eed/botocore-1.42.37-py3-none-any.whl", hash = "sha256:f13bb8b560a10714d96fb7b0c7f17828dfa6e6606a1ead8c01c6ebb8765acbd8", size = 14589390, upload-time = "2026-01-28T20:38:31.306Z" },
56
78
  ]
57
79
 
80
+ [package.optional-dependencies]
81
+ crt = [
82
+ { name = "awscrt" },
83
+ ]
84
+
58
85
  [[package]]
59
86
  name = "botocore-stubs"
60
87
  version = "1.42.40"
@@ -90,10 +117,11 @@ wheels = [
90
117
 
91
118
  [[package]]
92
119
  name = "exchange-keyshare"
93
- version = "0.1.0"
120
+ version = "0.1.1"
94
121
  source = { editable = "." }
95
122
  dependencies = [
96
123
  { name = "boto3" },
124
+ { name = "botocore", extra = ["crt"] },
97
125
  { name = "click" },
98
126
  { name = "pyyaml" },
99
127
  { name = "questionary" },
@@ -110,6 +138,7 @@ dev = [
110
138
  [package.metadata]
111
139
  requires-dist = [
112
140
  { name = "boto3", specifier = ">=1.34.0" },
141
+ { name = "botocore", extras = ["crt"], specifier = ">=1.34.0" },
113
142
  { name = "click", specifier = ">=8.1.0" },
114
143
  { name = "pyyaml", specifier = ">=6.0" },
115
144
  { name = "questionary", specifier = ">=2.0.0" },