clear-skies-aws 2.0.4__tar.gz → 2.0.5__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 (85) hide show
  1. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/CHANGELOG.md +7 -0
  2. clear_skies_aws-2.0.5/LATEST_CHANGELOG.md +5 -0
  3. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/PKG-INFO +2 -2
  4. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/pyproject.toml +2 -2
  5. clear_skies_aws-2.0.5/src/clearskies_aws/cursors/iam/__init__.py +7 -0
  6. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/cursors/iam/rds_mysql.py +2 -2
  7. clear_skies_aws-2.0.5/src/clearskies_aws/cursors/port_forwarding/ssm.py +137 -0
  8. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/uv.lock +73 -63
  9. clear_skies_aws-2.0.4/LATEST_CHANGELOG.md +0 -11
  10. clear_skies_aws-2.0.4/src/clearskies_aws/cursors/iam/__init__.py +0 -7
  11. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/.copier-answers.yml +0 -0
  12. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/.editorconfig +0 -0
  13. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/.github/workflows/create-version.yaml +0 -0
  14. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/.github/workflows/docs.yaml +0 -0
  15. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/.github/workflows/run-tests.yml +0 -0
  16. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/.github/workflows/tests-matrix.yaml +0 -0
  17. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/.github/workflows/tests.yaml +0 -0
  18. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/.gitignore +0 -0
  19. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/.pre-commit-config.yaml +0 -0
  20. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/.python-version +0 -0
  21. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/LICENSE +0 -0
  22. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/README.md +0 -0
  23. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/cliff.toml +0 -0
  24. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/ruff.toml +0 -0
  25. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/__init__.py +0 -0
  26. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/actions/__init__.py +0 -0
  27. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/actions/action_aws.py +0 -0
  28. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/actions/assume_role.py +0 -0
  29. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/actions/ses.py +0 -0
  30. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/actions/sns.py +0 -0
  31. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/actions/sqs.py +0 -0
  32. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/actions/step_function.py +0 -0
  33. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/backends/__init__.py +0 -0
  34. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/backends/backend.py +0 -0
  35. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/backends/dynamo_db_backend.py +0 -0
  36. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/backends/dynamo_db_condition_parser.py +0 -0
  37. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/backends/dynamo_db_parti_ql_backend.py +0 -0
  38. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/backends/sqs_backend.py +0 -0
  39. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/configs/__init__.py +0 -0
  40. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/contexts/__init__.py +0 -0
  41. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/contexts/cli_web_socket_mock.py +0 -0
  42. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/contexts/lambda_alb.py +0 -0
  43. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/contexts/lambda_api_gateway.py +0 -0
  44. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/contexts/lambda_api_gateway_web_socket.py +0 -0
  45. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/contexts/lambda_invoke.py +0 -0
  46. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/contexts/lambda_sns.py +0 -0
  47. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/contexts/lambda_sqs_standard.py +0 -0
  48. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/cursors/__init__.py +0 -0
  49. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/cursors/port_forwarding/__init__.py +0 -0
  50. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/di/__init__.py +0 -0
  51. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/di/aws_additional_config_auto_import.py +0 -0
  52. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/di/inject/__init__.py +0 -0
  53. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/di/inject/boto3.py +0 -0
  54. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/di/inject/boto3_session.py +0 -0
  55. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/di/inject/parameter_store.py +0 -0
  56. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/endpoints/__init__.py +0 -0
  57. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/endpoints/secrets_manager_rotation.py +0 -0
  58. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/endpoints/simple_body_routing.py +0 -0
  59. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/input_outputs/__init__.py +0 -0
  60. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/input_outputs/cli_web_socket_mock.py +0 -0
  61. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/input_outputs/lambda_alb.py +0 -0
  62. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/input_outputs/lambda_api_gateway.py +0 -0
  63. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/input_outputs/lambda_api_gateway_web_socket.py +0 -0
  64. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/input_outputs/lambda_input_output.py +0 -0
  65. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/input_outputs/lambda_invoke.py +0 -0
  66. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/input_outputs/lambda_sns.py +0 -0
  67. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/input_outputs/lambda_sqs_standard.py +0 -0
  68. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/mocks/__init__.py +0 -0
  69. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/mocks/actions/__init__.py +0 -0
  70. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/mocks/actions/ses.py +0 -0
  71. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/mocks/actions/sns.py +0 -0
  72. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/mocks/actions/sqs.py +0 -0
  73. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/mocks/actions/step_function.py +0 -0
  74. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/models/__init__.py +0 -0
  75. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/models/web_socket_connection_model.py +0 -0
  76. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/secrets/__init__.py +0 -0
  77. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/secrets/additional_configs/__init__.py +0 -0
  78. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/secrets/additional_configs/iam_db_auth.py +0 -0
  79. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/secrets/additional_configs/iam_db_auth_with_ssm.py +0 -0
  80. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/secrets/additional_configs/mysql_connection_dynamic_producer_via_ssh_cert_bastion.py +0 -0
  81. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/secrets/additional_configs/mysql_connection_dynamic_producer_via_ssm_bastion.py +0 -0
  82. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/secrets/akeyless_with_ssm_cache.py +0 -0
  83. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/secrets/parameter_store.py +0 -0
  84. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/secrets/secrets.py +0 -0
  85. {clear_skies_aws-2.0.4 → clear_skies_aws-2.0.5}/src/clearskies_aws/secrets/secrets_manager.py +0 -0
@@ -5,12 +5,18 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.0.5] - 2026-01-12
9
+
10
+ ### Added
11
+ - Add ssm portforwarder in [#9](https://github.com/clearskies-py/aws/pull/9)
12
+
8
13
  ## [2.0.4] - 2026-01-09
9
14
 
10
15
  ### Added
11
16
  - Add rds mysql cursor
12
17
 
13
18
  ### Changed
19
+ - Bump version to v2.0.4 by @github-actions[bot]
14
20
  - Use the port forwarder class in [#8](https://github.com/clearskies-py/aws/pull/8)
15
21
 
16
22
  ### Fixed
@@ -89,6 +95,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
89
95
  * @cmancone made their first contribution
90
96
  * @ made their first contribution
91
97
  * @github-actions[bot] made their first contribution
98
+ [2.0.5]: https://github.com/clearskies-py/aws/compare/v2.0.4..v2.0.5
92
99
  [2.0.4]: https://github.com/clearskies-py/aws/compare/v2.0.3..v2.0.4
93
100
  [2.0.3]: https://github.com/clearskies-py/aws/compare/v2.0.2..v2.0.3
94
101
  [2.0.2]: https://github.com/clearskies-py/aws/compare/v2.0.1..v2.0.2
@@ -0,0 +1,5 @@
1
+ ## [2.0.5] - 2026-01-12
2
+
3
+ ### Added
4
+ - Add ssm portforwarder in [#9](https://github.com/clearskies-py/aws/pull/9)
5
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clear-skies-aws
3
- Version: 2.0.4
3
+ Version: 2.0.5
4
4
  Summary: clearskies bindings for working in AWS
5
5
  Project-URL: Repository, https://github.com/clearskies-py/clearskies-aws
6
6
  Project-URL: Issues, https://github.com/clearskies-py/clearskies-aws/issues
@@ -22,7 +22,7 @@ Provides-Extra: akeyless
22
22
  Requires-Dist: akeyless-cloud-id<0.5.0,>=0.2.3; extra == 'akeyless'
23
23
  Requires-Dist: akeyless<6.0.0,>=5.0.0; extra == 'akeyless'
24
24
  Provides-Extra: mysql
25
- Requires-Dist: pymysql<2.0.0,>=1.1.0; extra == 'mysql'
25
+ Requires-Dist: clear-skies[mysql]; extra == 'mysql'
26
26
  Provides-Extra: ses
27
27
  Requires-Dist: jinja2<4.0.0,>=3.1.2; extra == 'ses'
28
28
  Description-Content-Type: text/markdown
@@ -3,7 +3,7 @@
3
3
  name = "clear-skies-aws"
4
4
  description = "clearskies bindings for working in AWS"
5
5
  license = "MIT"
6
- version = "2.0.4"
6
+ version = "2.0.5"
7
7
  readme = "./README.md"
8
8
  authors = [{name = "tnijboer"}, {name = "Conor Mancone", email = "cmancone@gmail.com"}]
9
9
  requires-python = '>=3.11,<4.0'
@@ -28,7 +28,7 @@ Documentation = "https://clearskies.info/modules/clearskies-aws/"
28
28
  [project.optional-dependencies]
29
29
  akeyless = ['akeyless-cloud-id (>=0.2.3,<0.5.0)', 'akeyless (>=5.0.0,<6.0.0)']
30
30
  ses = ['jinja2 (>=3.1.2,<4.0.0)']
31
- mysql = ['pymysql (>=1.1.0,<2.0.0)']
31
+ mysql = ['clear-skies[mysql]']
32
32
 
33
33
  [build-system]
34
34
  requires = ["hatchling"]
@@ -0,0 +1,7 @@
1
+ import logging
2
+
3
+ from clearskies_aws.cursors.iam.rds_mysql import RdsMysql
4
+
5
+ logging.getLogger(__name__)
6
+
7
+ __all__ = ["RdsMysql"]
@@ -29,12 +29,12 @@ from typing import Any
29
29
 
30
30
  import clearskies
31
31
  from clearskies import decorators
32
- from clearskies.cursors import Mysql as MysqlBase
32
+ from clearskies.cursors import Mysql
33
33
 
34
34
  from clearskies_aws.di import inject
35
35
 
36
36
 
37
- class RdsMySql(MysqlBase):
37
+ class RdsMysql(Mysql):
38
38
  """MySQL cursor with AWS RDS IAM DB authentication."""
39
39
 
40
40
  """Injected boto3 provider for AWS API access."""
@@ -0,0 +1,137 @@
1
+ import time
2
+
3
+ import clearskies.configs
4
+ from clearskies import decorators
5
+ from clearskies.cursors.port_forwarding.port_forwarder import PortForwarder
6
+
7
+ from clearskies_aws.di import inject
8
+
9
+
10
+ class Ssm(PortForwarder):
11
+ """
12
+ Port forwarder using AWS SSM Session Manager.
13
+
14
+ This class sets up a local port forwarding tunnel to a remote host using AWS SSM.
15
+ If instance_id is not provided, it will search for a running instance by Name tag.
16
+ """
17
+
18
+ """
19
+ The EC2 instance ID to connect to. If not provided, instance_name will be used to look up the instance.
20
+ """
21
+ instance_id = clearskies.configs.String(default=None)
22
+
23
+ """
24
+ The Name tag of the EC2 instance to search for if instance_id is not provided.
25
+ """
26
+ instance_name = clearskies.configs.String(default=None)
27
+
28
+ """
29
+ The remote port to forward to.
30
+ """
31
+ remote_port = clearskies.configs.Integer()
32
+
33
+ """
34
+ The local port to bind for the forwarding tunnel (default: 0, auto-selects a free port).
35
+ """
36
+ local_port = clearskies.configs.Integer(default=0)
37
+
38
+ """
39
+ AWS region.
40
+ """
41
+ region = clearskies.configs.String(default=None)
42
+
43
+ """
44
+ AWS CLI profile.
45
+ """
46
+ profile = clearskies.configs.String(default=None)
47
+
48
+ """
49
+ Boto3 session or client provider
50
+ """
51
+ boto3 = inject.Boto3()
52
+
53
+ @decorators.parameters_to_properties
54
+ def __init__(
55
+ self,
56
+ instance_id=None,
57
+ instance_name=None,
58
+ remote_port=None,
59
+ local_port=0,
60
+ region=None,
61
+ profile=None,
62
+ ):
63
+ self._proc = None
64
+ self.finalize_and_validate_configuration()
65
+
66
+ def setup(self, original_host: str, original_port: int) -> tuple[str, int]:
67
+ """
68
+ Establish the port forwarding tunnel and return the local endpoint.
69
+
70
+ If instance_id is not set, searches for a running instance by Name tag.
71
+
72
+ Returns:
73
+ A tuple containing the local host and local port to connect to (e.g., ("localhost", 12345)).
74
+ """
75
+ # Resolve instance_id if needed
76
+ if not self.instance_id and self.instance_name:
77
+ ec2_api = self.boto3.client("ec2", region_name=self.region)
78
+ running_instances = ec2_api.describe_instances(
79
+ Filters=[
80
+ {"Name": "tag:Name", "Values": [self.instance_name]},
81
+ {"Name": "instance-state-name", "Values": ["running"]},
82
+ ]
83
+ )
84
+ instance_ids = []
85
+ for reservation in running_instances["Reservations"]:
86
+ for instance in reservation["Instances"]:
87
+ instance_ids.append(instance["InstanceId"])
88
+ if len(instance_ids) == 0:
89
+ raise ValueError("Failed to launch SSM tunnel! Cannot find bastion!")
90
+ self.instance_id = instance_ids.pop()
91
+
92
+ if self.local_port == 0:
93
+ self.local_port = self.pick_free_port("127.0.0.1")
94
+
95
+ if self.is_port_open("127.0.0.1", self.local_port):
96
+ return "127.0.0.1", self.local_port
97
+
98
+ ssm_cmd = [
99
+ "aws",
100
+ "ssm",
101
+ "start-session",
102
+ "--target",
103
+ self.instance_id,
104
+ "--document-name",
105
+ "AWS-StartPortForwardingSession",
106
+ "--parameters",
107
+ f"portNumber={self.remote_port},localPort={self.local_port}",
108
+ ]
109
+ if self.region:
110
+ ssm_cmd += ["--region", self.region]
111
+ if self.profile:
112
+ ssm_cmd += ["--profile", self.profile]
113
+
114
+ self._proc = self.subprocess.Popen(ssm_cmd, stdout=self.subprocess.PIPE, stderr=self.subprocess.PIPE)
115
+
116
+ start = time.time()
117
+ while True:
118
+ try:
119
+ test_sock = self.socket.socket(self.socket.AF_INET, self.socket.SOCK_STREAM)
120
+ test_sock.settimeout(0.2)
121
+ test_sock.connect(("127.0.0.1", self.local_port))
122
+ test_sock.close()
123
+ break
124
+ except Exception:
125
+ if self._proc is not None and self._proc.poll() is not None:
126
+ raise RuntimeError("SSM process exited unexpectedly")
127
+ if time.time() - start > 10:
128
+ raise TimeoutError(f"Timeout waiting for port {self.local_port} to open")
129
+ time.sleep(0.1)
130
+
131
+ return "127.0.0.1", self.local_port
132
+
133
+ def teardown(self):
134
+ if self._proc:
135
+ self._proc.terminate()
136
+ self._proc.wait()
137
+ self._proc = None
@@ -70,42 +70,42 @@ wheels = [
70
70
 
71
71
  [[package]]
72
72
  name = "boto3"
73
- version = "1.42.24"
73
+ version = "1.42.25"
74
74
  source = { registry = "https://pypi.org/simple" }
75
75
  dependencies = [
76
76
  { name = "botocore" },
77
77
  { name = "jmespath" },
78
78
  { name = "s3transfer" },
79
79
  ]
80
- sdist = { url = "https://files.pythonhosted.org/packages/ee/21/8be0e3685c3a4868be48d8d2f6e5b4641727e1d8a5d396b8b401d2b5f06e/boto3-1.42.24.tar.gz", hash = "sha256:c47a2f40df933e3861fc66fd8d6b87ee36d4361663a7e7ba39a87f5a78b2eae1", size = 112788, upload-time = "2026-01-07T20:30:51.019Z" }
80
+ sdist = { url = "https://files.pythonhosted.org/packages/29/30/755a6c4b27ad4effefa9e407f84c6f0a69f75a21c0090beb25022dfcfd3f/boto3-1.42.25.tar.gz", hash = "sha256:ccb5e757dd62698d25766cc54cf5c47bea43287efa59c93cf1df8c8fbc26eeda", size = 112811, upload-time = "2026-01-09T20:27:44.73Z" }
81
81
  wheels = [
82
- { url = "https://files.pythonhosted.org/packages/a7/75/bbfccb268f9faa4f59030888e859dca9797a980b77d6a074113af73bd4bf/boto3-1.42.24-py3-none-any.whl", hash = "sha256:8ed6ad670a5a2d7f66c1b0d3362791b48392c7a08f78479f5d8ab319a4d9118f", size = 140572, upload-time = "2026-01-07T20:30:49.431Z" },
82
+ { url = "https://files.pythonhosted.org/packages/14/79/012734f4e510b0a6beec2a3d5f437b3e8ef52174b1d38b1d5fdc542316d7/boto3-1.42.25-py3-none-any.whl", hash = "sha256:8128bde4f9d5ffce129c76d1a2efe220e3af967a2ad30bc305ba088bbc96343d", size = 140575, upload-time = "2026-01-09T20:27:42.788Z" },
83
83
  ]
84
84
 
85
85
  [[package]]
86
86
  name = "botocore"
87
- version = "1.42.24"
87
+ version = "1.42.25"
88
88
  source = { registry = "https://pypi.org/simple" }
89
89
  dependencies = [
90
90
  { name = "jmespath" },
91
91
  { name = "python-dateutil" },
92
92
  { name = "urllib3" },
93
93
  ]
94
- sdist = { url = "https://files.pythonhosted.org/packages/12/d7/bb4a4e839b238ffb67b002d7326b328ebe5eb23ed5180f2ca10399a802de/botocore-1.42.24.tar.gz", hash = "sha256:be8d1bea64fb91eea08254a1e5fea057e4428d08e61f4e11083a02cafc1f8cc6", size = 14878455, upload-time = "2026-01-07T20:30:40.379Z" }
94
+ sdist = { url = "https://files.pythonhosted.org/packages/2c/b5/8f961c65898deb5417c9e9e908ea6c4d2fe8bb52ff04e552f679c88ed2ce/botocore-1.42.25.tar.gz", hash = "sha256:7ae79d1f77d3771e83e4dd46bce43166a1ba85d58a49cffe4c4a721418616054", size = 14879737, upload-time = "2026-01-09T20:27:34.676Z" }
95
95
  wheels = [
96
- { url = "https://files.pythonhosted.org/packages/ff/d4/f2655d777eed8b069ecab3761454cb83f830f8be8b5b0d292e4b3a980d00/botocore-1.42.24-py3-none-any.whl", hash = "sha256:8fca9781d7c84f7ad070fceffaff7179c4aa7a5ffb27b43df9d1d957801e0a8d", size = 14551806, upload-time = "2026-01-07T20:30:38.103Z" },
96
+ { url = "https://files.pythonhosted.org/packages/1e/b0/61e3e61d437c8c73f0821ce8a8e2594edfc1f423e354c38fa56396a4e4ca/botocore-1.42.25-py3-none-any.whl", hash = "sha256:470261966aab1d09a1cd4ba56810098834443602846559ba9504f6613dfa52dc", size = 14553881, upload-time = "2026-01-09T20:27:30.487Z" },
97
97
  ]
98
98
 
99
99
  [[package]]
100
100
  name = "botocore-stubs"
101
- version = "1.42.24"
101
+ version = "1.42.25"
102
102
  source = { registry = "https://pypi.org/simple" }
103
103
  dependencies = [
104
104
  { name = "types-awscrt" },
105
105
  ]
106
- sdist = { url = "https://files.pythonhosted.org/packages/86/61/5715ec25b3dcb2a08133811f6a18a9ca9be54567452ab3e92cadcaec746e/botocore_stubs-1.42.24.tar.gz", hash = "sha256:f5fbe240267b27036b1217a304de34bf2bf993087e049a300d17d6f52d77988b", size = 42415, upload-time = "2026-01-07T21:27:03.862Z" }
106
+ sdist = { url = "https://files.pythonhosted.org/packages/44/23/1f30c552bd0af9523abe49d50e849555298ed836b18a8039093ba786c2ef/botocore_stubs-1.42.25.tar.gz", hash = "sha256:70a8a53ba2684ff462c44d5996acd85fc5c7eb969e2cf3c25274441269524298", size = 42415, upload-time = "2026-01-09T20:32:21.78Z" }
107
107
  wheels = [
108
- { url = "https://files.pythonhosted.org/packages/55/6b/cffb62a7872ba32e08c22c9c918a4d5d1d39ed6d74195bf50a3ae75a22f3/botocore_stubs-1.42.24-py3-none-any.whl", hash = "sha256:025999e68f419472cc8dfb7bcc2964fa0a06b447f43e7fc309012ff4c665b3db", size = 66762, upload-time = "2026-01-07T21:27:02.249Z" },
108
+ { url = "https://files.pythonhosted.org/packages/15/c5/4c66c8ade8fb180d417e164de54ab75fc26aa0e5543f6e33c8465722feb9/botocore_stubs-1.42.25-py3-none-any.whl", hash = "sha256:49d15529002bd1099a9a099a77d70b7b52859153783440e96eb55791e8147d1b", size = 66761, upload-time = "2026-01-09T20:32:20.512Z" },
109
109
  ]
110
110
 
111
111
  [[package]]
@@ -213,9 +213,14 @@ wheels = [
213
213
  { url = "https://files.pythonhosted.org/packages/11/f8/9d2f222d7a6295e1dd1ac06007f738c3e1064f2a4c71fc44c9ab2be51950/clear_skies-2.0.30-py3-none-any.whl", hash = "sha256:1910f3c4e782993a308daefccf3b218c455e3ce08013792a1ee46f7e016f4d31", size = 358236, upload-time = "2026-01-09T18:47:48.841Z" },
214
214
  ]
215
215
 
216
+ [package.optional-dependencies]
217
+ mysql = [
218
+ { name = "pymysql" },
219
+ ]
220
+
216
221
  [[package]]
217
222
  name = "clear-skies-aws"
218
- version = "2.0.4"
223
+ version = "2.0.5"
219
224
  source = { editable = "." }
220
225
  dependencies = [
221
226
  { name = "boto3" },
@@ -229,7 +234,7 @@ akeyless = [
229
234
  { name = "akeyless-cloud-id" },
230
235
  ]
231
236
  mysql = [
232
- { name = "pymysql" },
237
+ { name = "clear-skies", extra = ["mysql"] },
233
238
  ]
234
239
  ses = [
235
240
  { name = "jinja2" },
@@ -253,8 +258,8 @@ requires-dist = [
253
258
  { name = "akeyless-cloud-id", marker = "extra == 'akeyless'", specifier = ">=0.2.3,<0.5.0" },
254
259
  { name = "boto3", specifier = ">=1.26.148,<2.0.0" },
255
260
  { name = "clear-skies", specifier = ">=2.0.20,<3.0.0" },
261
+ { name = "clear-skies", extras = ["mysql"], marker = "extra == 'mysql'" },
256
262
  { name = "jinja2", marker = "extra == 'ses'", specifier = ">=3.1.2,<4.0.0" },
257
- { name = "pymysql", marker = "extra == 'mysql'", specifier = ">=1.1.0,<2.0.0" },
258
263
  { name = "types-boto3", extras = ["dynamodb", "sns", "sqs", "ses", "ssm", "secretsmanager", "stepfunctions"], specifier = ">=1.38.13,<2.0.0" },
259
264
  ]
260
265
  provides-extras = ["akeyless", "ses", "mysql"]
@@ -1028,74 +1033,79 @@ wheels = [
1028
1033
 
1029
1034
  [[package]]
1030
1035
  name = "tomli"
1031
- version = "2.3.0"
1032
- source = { registry = "https://pypi.org/simple" }
1033
- sdist = { url = "https://files.pythonhosted.org/packages/52/ed/3f73f72945444548f33eba9a87fc7a6e969915e7b1acc8260b30e1f76a2f/tomli-2.3.0.tar.gz", hash = "sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549", size = 17392, upload-time = "2025-10-08T22:01:47.119Z" }
1034
- wheels = [
1035
- { url = "https://files.pythonhosted.org/packages/b3/2e/299f62b401438d5fe1624119c723f5d877acc86a4c2492da405626665f12/tomli-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45", size = 153236, upload-time = "2025-10-08T22:01:00.137Z" },
1036
- { url = "https://files.pythonhosted.org/packages/86/7f/d8fffe6a7aefdb61bced88fcb5e280cfd71e08939da5894161bd71bea022/tomli-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba", size = 148084, upload-time = "2025-10-08T22:01:01.63Z" },
1037
- { url = "https://files.pythonhosted.org/packages/47/5c/24935fb6a2ee63e86d80e4d3b58b222dafaf438c416752c8b58537c8b89a/tomli-2.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf", size = 234832, upload-time = "2025-10-08T22:01:02.543Z" },
1038
- { url = "https://files.pythonhosted.org/packages/89/da/75dfd804fc11e6612846758a23f13271b76d577e299592b4371a4ca4cd09/tomli-2.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441", size = 242052, upload-time = "2025-10-08T22:01:03.836Z" },
1039
- { url = "https://files.pythonhosted.org/packages/70/8c/f48ac899f7b3ca7eb13af73bacbc93aec37f9c954df3c08ad96991c8c373/tomli-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845", size = 239555, upload-time = "2025-10-08T22:01:04.834Z" },
1040
- { url = "https://files.pythonhosted.org/packages/ba/28/72f8afd73f1d0e7829bfc093f4cb98ce0a40ffc0cc997009ee1ed94ba705/tomli-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c", size = 245128, upload-time = "2025-10-08T22:01:05.84Z" },
1041
- { url = "https://files.pythonhosted.org/packages/b6/eb/a7679c8ac85208706d27436e8d421dfa39d4c914dcf5fa8083a9305f58d9/tomli-2.3.0-cp311-cp311-win32.whl", hash = "sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456", size = 96445, upload-time = "2025-10-08T22:01:06.896Z" },
1042
- { url = "https://files.pythonhosted.org/packages/0a/fe/3d3420c4cb1ad9cb462fb52967080575f15898da97e21cb6f1361d505383/tomli-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be", size = 107165, upload-time = "2025-10-08T22:01:08.107Z" },
1043
- { url = "https://files.pythonhosted.org/packages/ff/b7/40f36368fcabc518bb11c8f06379a0fd631985046c038aca08c6d6a43c6e/tomli-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac", size = 154891, upload-time = "2025-10-08T22:01:09.082Z" },
1044
- { url = "https://files.pythonhosted.org/packages/f9/3f/d9dd692199e3b3aab2e4e4dd948abd0f790d9ded8cd10cbaae276a898434/tomli-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22", size = 148796, upload-time = "2025-10-08T22:01:10.266Z" },
1045
- { url = "https://files.pythonhosted.org/packages/60/83/59bff4996c2cf9f9387a0f5a3394629c7efa5ef16142076a23a90f1955fa/tomli-2.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f", size = 242121, upload-time = "2025-10-08T22:01:11.332Z" },
1046
- { url = "https://files.pythonhosted.org/packages/45/e5/7c5119ff39de8693d6baab6c0b6dcb556d192c165596e9fc231ea1052041/tomli-2.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52", size = 250070, upload-time = "2025-10-08T22:01:12.498Z" },
1047
- { url = "https://files.pythonhosted.org/packages/45/12/ad5126d3a278f27e6701abde51d342aa78d06e27ce2bb596a01f7709a5a2/tomli-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8", size = 245859, upload-time = "2025-10-08T22:01:13.551Z" },
1048
- { url = "https://files.pythonhosted.org/packages/fb/a1/4d6865da6a71c603cfe6ad0e6556c73c76548557a8d658f9e3b142df245f/tomli-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6", size = 250296, upload-time = "2025-10-08T22:01:14.614Z" },
1049
- { url = "https://files.pythonhosted.org/packages/a0/b7/a7a7042715d55c9ba6e8b196d65d2cb662578b4d8cd17d882d45322b0d78/tomli-2.3.0-cp312-cp312-win32.whl", hash = "sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876", size = 97124, upload-time = "2025-10-08T22:01:15.629Z" },
1050
- { url = "https://files.pythonhosted.org/packages/06/1e/f22f100db15a68b520664eb3328fb0ae4e90530887928558112c8d1f4515/tomli-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878", size = 107698, upload-time = "2025-10-08T22:01:16.51Z" },
1051
- { url = "https://files.pythonhosted.org/packages/89/48/06ee6eabe4fdd9ecd48bf488f4ac783844fd777f547b8d1b61c11939974e/tomli-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b", size = 154819, upload-time = "2025-10-08T22:01:17.964Z" },
1052
- { url = "https://files.pythonhosted.org/packages/f1/01/88793757d54d8937015c75dcdfb673c65471945f6be98e6a0410fba167ed/tomli-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae", size = 148766, upload-time = "2025-10-08T22:01:18.959Z" },
1053
- { url = "https://files.pythonhosted.org/packages/42/17/5e2c956f0144b812e7e107f94f1cc54af734eb17b5191c0bbfb72de5e93e/tomli-2.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b", size = 240771, upload-time = "2025-10-08T22:01:20.106Z" },
1054
- { url = "https://files.pythonhosted.org/packages/d5/f4/0fbd014909748706c01d16824eadb0307115f9562a15cbb012cd9b3512c5/tomli-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf", size = 248586, upload-time = "2025-10-08T22:01:21.164Z" },
1055
- { url = "https://files.pythonhosted.org/packages/30/77/fed85e114bde5e81ecf9bc5da0cc69f2914b38f4708c80ae67d0c10180c5/tomli-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f", size = 244792, upload-time = "2025-10-08T22:01:22.417Z" },
1056
- { url = "https://files.pythonhosted.org/packages/55/92/afed3d497f7c186dc71e6ee6d4fcb0acfa5f7d0a1a2878f8beae379ae0cc/tomli-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05", size = 248909, upload-time = "2025-10-08T22:01:23.859Z" },
1057
- { url = "https://files.pythonhosted.org/packages/f8/84/ef50c51b5a9472e7265ce1ffc7f24cd4023d289e109f669bdb1553f6a7c2/tomli-2.3.0-cp313-cp313-win32.whl", hash = "sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606", size = 96946, upload-time = "2025-10-08T22:01:24.893Z" },
1058
- { url = "https://files.pythonhosted.org/packages/b2/b7/718cd1da0884f281f95ccfa3a6cc572d30053cba64603f79d431d3c9b61b/tomli-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999", size = 107705, upload-time = "2025-10-08T22:01:26.153Z" },
1059
- { url = "https://files.pythonhosted.org/packages/19/94/aeafa14a52e16163008060506fcb6aa1949d13548d13752171a755c65611/tomli-2.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e", size = 154244, upload-time = "2025-10-08T22:01:27.06Z" },
1060
- { url = "https://files.pythonhosted.org/packages/db/e4/1e58409aa78eefa47ccd19779fc6f36787edbe7d4cd330eeeedb33a4515b/tomli-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3", size = 148637, upload-time = "2025-10-08T22:01:28.059Z" },
1061
- { url = "https://files.pythonhosted.org/packages/26/b6/d1eccb62f665e44359226811064596dd6a366ea1f985839c566cd61525ae/tomli-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc", size = 241925, upload-time = "2025-10-08T22:01:29.066Z" },
1062
- { url = "https://files.pythonhosted.org/packages/70/91/7cdab9a03e6d3d2bb11beae108da5bdc1c34bdeb06e21163482544ddcc90/tomli-2.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0", size = 249045, upload-time = "2025-10-08T22:01:31.98Z" },
1063
- { url = "https://files.pythonhosted.org/packages/15/1b/8c26874ed1f6e4f1fcfeb868db8a794cbe9f227299402db58cfcc858766c/tomli-2.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879", size = 245835, upload-time = "2025-10-08T22:01:32.989Z" },
1064
- { url = "https://files.pythonhosted.org/packages/fd/42/8e3c6a9a4b1a1360c1a2a39f0b972cef2cc9ebd56025168c4137192a9321/tomli-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005", size = 253109, upload-time = "2025-10-08T22:01:34.052Z" },
1065
- { url = "https://files.pythonhosted.org/packages/22/0c/b4da635000a71b5f80130937eeac12e686eefb376b8dee113b4a582bba42/tomli-2.3.0-cp314-cp314-win32.whl", hash = "sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463", size = 97930, upload-time = "2025-10-08T22:01:35.082Z" },
1066
- { url = "https://files.pythonhosted.org/packages/b9/74/cb1abc870a418ae99cd5c9547d6bce30701a954e0e721821df483ef7223c/tomli-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8", size = 107964, upload-time = "2025-10-08T22:01:36.057Z" },
1067
- { url = "https://files.pythonhosted.org/packages/54/78/5c46fff6432a712af9f792944f4fcd7067d8823157949f4e40c56b8b3c83/tomli-2.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77", size = 163065, upload-time = "2025-10-08T22:01:37.27Z" },
1068
- { url = "https://files.pythonhosted.org/packages/39/67/f85d9bd23182f45eca8939cd2bc7050e1f90c41f4a2ecbbd5963a1d1c486/tomli-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf", size = 159088, upload-time = "2025-10-08T22:01:38.235Z" },
1069
- { url = "https://files.pythonhosted.org/packages/26/5a/4b546a0405b9cc0659b399f12b6adb750757baf04250b148d3c5059fc4eb/tomli-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530", size = 268193, upload-time = "2025-10-08T22:01:39.712Z" },
1070
- { url = "https://files.pythonhosted.org/packages/42/4f/2c12a72ae22cf7b59a7fe75b3465b7aba40ea9145d026ba41cb382075b0e/tomli-2.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b", size = 275488, upload-time = "2025-10-08T22:01:40.773Z" },
1071
- { url = "https://files.pythonhosted.org/packages/92/04/a038d65dbe160c3aa5a624e93ad98111090f6804027d474ba9c37c8ae186/tomli-2.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67", size = 272669, upload-time = "2025-10-08T22:01:41.824Z" },
1072
- { url = "https://files.pythonhosted.org/packages/be/2f/8b7c60a9d1612a7cbc39ffcca4f21a73bf368a80fc25bccf8253e2563267/tomli-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f", size = 279709, upload-time = "2025-10-08T22:01:43.177Z" },
1073
- { url = "https://files.pythonhosted.org/packages/7e/46/cc36c679f09f27ded940281c38607716c86cf8ba4a518d524e349c8b4874/tomli-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0", size = 107563, upload-time = "2025-10-08T22:01:44.233Z" },
1074
- { url = "https://files.pythonhosted.org/packages/84/ff/426ca8683cf7b753614480484f6437f568fd2fda2edbdf57a2d3d8b27a0b/tomli-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba", size = 119756, upload-time = "2025-10-08T22:01:45.234Z" },
1075
- { url = "https://files.pythonhosted.org/packages/77/b8/0135fadc89e73be292b473cb820b4f5a08197779206b33191e801feeae40/tomli-2.3.0-py3-none-any.whl", hash = "sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b", size = 14408, upload-time = "2025-10-08T22:01:46.04Z" },
1036
+ version = "2.4.0"
1037
+ source = { registry = "https://pypi.org/simple" }
1038
+ sdist = { url = "https://files.pythonhosted.org/packages/82/30/31573e9457673ab10aa432461bee537ce6cef177667deca369efb79df071/tomli-2.4.0.tar.gz", hash = "sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c", size = 17477, upload-time = "2026-01-11T11:22:38.165Z" }
1039
+ wheels = [
1040
+ { url = "https://files.pythonhosted.org/packages/3c/d9/3dc2289e1f3b32eb19b9785b6a006b28ee99acb37d1d47f78d4c10e28bf8/tomli-2.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867", size = 153663, upload-time = "2026-01-11T11:21:45.27Z" },
1041
+ { url = "https://files.pythonhosted.org/packages/51/32/ef9f6845e6b9ca392cd3f64f9ec185cc6f09f0a2df3db08cbe8809d1d435/tomli-2.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9", size = 148469, upload-time = "2026-01-11T11:21:46.873Z" },
1042
+ { url = "https://files.pythonhosted.org/packages/d6/c2/506e44cce89a8b1b1e047d64bd495c22c9f71f21e05f380f1a950dd9c217/tomli-2.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95", size = 236039, upload-time = "2026-01-11T11:21:48.503Z" },
1043
+ { url = "https://files.pythonhosted.org/packages/b3/40/e1b65986dbc861b7e986e8ec394598187fa8aee85b1650b01dd925ca0be8/tomli-2.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76", size = 243007, upload-time = "2026-01-11T11:21:49.456Z" },
1044
+ { url = "https://files.pythonhosted.org/packages/9c/6f/6e39ce66b58a5b7ae572a0f4352ff40c71e8573633deda43f6a379d56b3e/tomli-2.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d", size = 240875, upload-time = "2026-01-11T11:21:50.755Z" },
1045
+ { url = "https://files.pythonhosted.org/packages/aa/ad/cb089cb190487caa80204d503c7fd0f4d443f90b95cf4ef5cf5aa0f439b0/tomli-2.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576", size = 246271, upload-time = "2026-01-11T11:21:51.81Z" },
1046
+ { url = "https://files.pythonhosted.org/packages/0b/63/69125220e47fd7a3a27fd0de0c6398c89432fec41bc739823bcc66506af6/tomli-2.4.0-cp311-cp311-win32.whl", hash = "sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a", size = 96770, upload-time = "2026-01-11T11:21:52.647Z" },
1047
+ { url = "https://files.pythonhosted.org/packages/1e/0d/a22bb6c83f83386b0008425a6cd1fa1c14b5f3dd4bad05e98cf3dbbf4a64/tomli-2.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa", size = 107626, upload-time = "2026-01-11T11:21:53.459Z" },
1048
+ { url = "https://files.pythonhosted.org/packages/2f/6d/77be674a3485e75cacbf2ddba2b146911477bd887dda9d8c9dfb2f15e871/tomli-2.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614", size = 94842, upload-time = "2026-01-11T11:21:54.831Z" },
1049
+ { url = "https://files.pythonhosted.org/packages/3c/43/7389a1869f2f26dba52404e1ef13b4784b6b37dac93bac53457e3ff24ca3/tomli-2.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1", size = 154894, upload-time = "2026-01-11T11:21:56.07Z" },
1050
+ { url = "https://files.pythonhosted.org/packages/e9/05/2f9bf110b5294132b2edf13fe6ca6ae456204f3d749f623307cbb7a946f2/tomli-2.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8", size = 149053, upload-time = "2026-01-11T11:21:57.467Z" },
1051
+ { url = "https://files.pythonhosted.org/packages/e8/41/1eda3ca1abc6f6154a8db4d714a4d35c4ad90adc0bcf700657291593fbf3/tomli-2.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a", size = 243481, upload-time = "2026-01-11T11:21:58.661Z" },
1052
+ { url = "https://files.pythonhosted.org/packages/d2/6d/02ff5ab6c8868b41e7d4b987ce2b5f6a51d3335a70aa144edd999e055a01/tomli-2.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1", size = 251720, upload-time = "2026-01-11T11:22:00.178Z" },
1053
+ { url = "https://files.pythonhosted.org/packages/7b/57/0405c59a909c45d5b6f146107c6d997825aa87568b042042f7a9c0afed34/tomli-2.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b", size = 247014, upload-time = "2026-01-11T11:22:01.238Z" },
1054
+ { url = "https://files.pythonhosted.org/packages/2c/0e/2e37568edd944b4165735687cbaf2fe3648129e440c26d02223672ee0630/tomli-2.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51", size = 251820, upload-time = "2026-01-11T11:22:02.727Z" },
1055
+ { url = "https://files.pythonhosted.org/packages/5a/1c/ee3b707fdac82aeeb92d1a113f803cf6d0f37bdca0849cb489553e1f417a/tomli-2.4.0-cp312-cp312-win32.whl", hash = "sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729", size = 97712, upload-time = "2026-01-11T11:22:03.777Z" },
1056
+ { url = "https://files.pythonhosted.org/packages/69/13/c07a9177d0b3bab7913299b9278845fc6eaaca14a02667c6be0b0a2270c8/tomli-2.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da", size = 108296, upload-time = "2026-01-11T11:22:04.86Z" },
1057
+ { url = "https://files.pythonhosted.org/packages/18/27/e267a60bbeeee343bcc279bb9e8fbed0cbe224bc7b2a3dc2975f22809a09/tomli-2.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3", size = 94553, upload-time = "2026-01-11T11:22:05.854Z" },
1058
+ { url = "https://files.pythonhosted.org/packages/34/91/7f65f9809f2936e1f4ce6268ae1903074563603b2a2bd969ebbda802744f/tomli-2.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0", size = 154915, upload-time = "2026-01-11T11:22:06.703Z" },
1059
+ { url = "https://files.pythonhosted.org/packages/20/aa/64dd73a5a849c2e8f216b755599c511badde80e91e9bc2271baa7b2cdbb1/tomli-2.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e", size = 149038, upload-time = "2026-01-11T11:22:07.56Z" },
1060
+ { url = "https://files.pythonhosted.org/packages/9e/8a/6d38870bd3d52c8d1505ce054469a73f73a0fe62c0eaf5dddf61447e32fa/tomli-2.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4", size = 242245, upload-time = "2026-01-11T11:22:08.344Z" },
1061
+ { url = "https://files.pythonhosted.org/packages/59/bb/8002fadefb64ab2669e5b977df3f5e444febea60e717e755b38bb7c41029/tomli-2.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e", size = 250335, upload-time = "2026-01-11T11:22:09.951Z" },
1062
+ { url = "https://files.pythonhosted.org/packages/a5/3d/4cdb6f791682b2ea916af2de96121b3cb1284d7c203d97d92d6003e91c8d/tomli-2.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c", size = 245962, upload-time = "2026-01-11T11:22:11.27Z" },
1063
+ { url = "https://files.pythonhosted.org/packages/f2/4a/5f25789f9a460bd858ba9756ff52d0830d825b458e13f754952dd15fb7bb/tomli-2.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f", size = 250396, upload-time = "2026-01-11T11:22:12.325Z" },
1064
+ { url = "https://files.pythonhosted.org/packages/aa/2f/b73a36fea58dfa08e8b3a268750e6853a6aac2a349241a905ebd86f3047a/tomli-2.4.0-cp313-cp313-win32.whl", hash = "sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86", size = 97530, upload-time = "2026-01-11T11:22:13.865Z" },
1065
+ { url = "https://files.pythonhosted.org/packages/3b/af/ca18c134b5d75de7e8dc551c5234eaba2e8e951f6b30139599b53de9c187/tomli-2.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87", size = 108227, upload-time = "2026-01-11T11:22:15.224Z" },
1066
+ { url = "https://files.pythonhosted.org/packages/22/c3/b386b832f209fee8073c8138ec50f27b4460db2fdae9ffe022df89a57f9b/tomli-2.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132", size = 94748, upload-time = "2026-01-11T11:22:16.009Z" },
1067
+ { url = "https://files.pythonhosted.org/packages/f3/c4/84047a97eb1004418bc10bdbcfebda209fca6338002eba2dc27cc6d13563/tomli-2.4.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6", size = 154725, upload-time = "2026-01-11T11:22:17.269Z" },
1068
+ { url = "https://files.pythonhosted.org/packages/a8/5d/d39038e646060b9d76274078cddf146ced86dc2b9e8bbf737ad5983609a0/tomli-2.4.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc", size = 148901, upload-time = "2026-01-11T11:22:18.287Z" },
1069
+ { url = "https://files.pythonhosted.org/packages/73/e5/383be1724cb30f4ce44983d249645684a48c435e1cd4f8b5cded8a816d3c/tomli-2.4.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66", size = 243375, upload-time = "2026-01-11T11:22:19.154Z" },
1070
+ { url = "https://files.pythonhosted.org/packages/31/f0/bea80c17971c8d16d3cc109dc3585b0f2ce1036b5f4a8a183789023574f2/tomli-2.4.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d", size = 250639, upload-time = "2026-01-11T11:22:20.168Z" },
1071
+ { url = "https://files.pythonhosted.org/packages/2c/8f/2853c36abbb7608e3f945d8a74e32ed3a74ee3a1f468f1ffc7d1cb3abba6/tomli-2.4.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702", size = 246897, upload-time = "2026-01-11T11:22:21.544Z" },
1072
+ { url = "https://files.pythonhosted.org/packages/49/f0/6c05e3196ed5337b9fe7ea003e95fd3819a840b7a0f2bf5a408ef1dad8ed/tomli-2.4.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8", size = 254697, upload-time = "2026-01-11T11:22:23.058Z" },
1073
+ { url = "https://files.pythonhosted.org/packages/f3/f5/2922ef29c9f2951883525def7429967fc4d8208494e5ab524234f06b688b/tomli-2.4.0-cp314-cp314-win32.whl", hash = "sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776", size = 98567, upload-time = "2026-01-11T11:22:24.033Z" },
1074
+ { url = "https://files.pythonhosted.org/packages/7b/31/22b52e2e06dd2a5fdbc3ee73226d763b184ff21fc24e20316a44ccc4d96b/tomli-2.4.0-cp314-cp314-win_amd64.whl", hash = "sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475", size = 108556, upload-time = "2026-01-11T11:22:25.378Z" },
1075
+ { url = "https://files.pythonhosted.org/packages/48/3d/5058dff3255a3d01b705413f64f4306a141a8fd7a251e5a495e3f192a998/tomli-2.4.0-cp314-cp314-win_arm64.whl", hash = "sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2", size = 96014, upload-time = "2026-01-11T11:22:26.138Z" },
1076
+ { url = "https://files.pythonhosted.org/packages/b8/4e/75dab8586e268424202d3a1997ef6014919c941b50642a1682df43204c22/tomli-2.4.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9", size = 163339, upload-time = "2026-01-11T11:22:27.143Z" },
1077
+ { url = "https://files.pythonhosted.org/packages/06/e3/b904d9ab1016829a776d97f163f183a48be6a4deb87304d1e0116a349519/tomli-2.4.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0", size = 159490, upload-time = "2026-01-11T11:22:28.399Z" },
1078
+ { url = "https://files.pythonhosted.org/packages/e3/5a/fc3622c8b1ad823e8ea98a35e3c632ee316d48f66f80f9708ceb4f2a0322/tomli-2.4.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df", size = 269398, upload-time = "2026-01-11T11:22:29.345Z" },
1079
+ { url = "https://files.pythonhosted.org/packages/fd/33/62bd6152c8bdd4c305ad9faca48f51d3acb2df1f8791b1477d46ff86e7f8/tomli-2.4.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d", size = 276515, upload-time = "2026-01-11T11:22:30.327Z" },
1080
+ { url = "https://files.pythonhosted.org/packages/4b/ff/ae53619499f5235ee4211e62a8d7982ba9e439a0fb4f2f351a93d67c1dd2/tomli-2.4.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f", size = 273806, upload-time = "2026-01-11T11:22:32.56Z" },
1081
+ { url = "https://files.pythonhosted.org/packages/47/71/cbca7787fa68d4d0a9f7072821980b39fbb1b6faeb5f5cf02f4a5559fa28/tomli-2.4.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b", size = 281340, upload-time = "2026-01-11T11:22:33.505Z" },
1082
+ { url = "https://files.pythonhosted.org/packages/f5/00/d595c120963ad42474cf6ee7771ad0d0e8a49d0f01e29576ee9195d9ecdf/tomli-2.4.0-cp314-cp314t-win32.whl", hash = "sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087", size = 108106, upload-time = "2026-01-11T11:22:34.451Z" },
1083
+ { url = "https://files.pythonhosted.org/packages/de/69/9aa0c6a505c2f80e519b43764f8b4ba93b5a0bbd2d9a9de6e2b24271b9a5/tomli-2.4.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd", size = 120504, upload-time = "2026-01-11T11:22:35.764Z" },
1084
+ { url = "https://files.pythonhosted.org/packages/b3/9f/f1668c281c58cfae01482f7114a4b88d345e4c140386241a1a24dcc9e7bc/tomli-2.4.0-cp314-cp314t-win_arm64.whl", hash = "sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4", size = 99561, upload-time = "2026-01-11T11:22:36.624Z" },
1085
+ { url = "https://files.pythonhosted.org/packages/23/d1/136eb2cb77520a31e1f64cbae9d33ec6df0d78bdf4160398e86eec8a8754/tomli-2.4.0-py3-none-any.whl", hash = "sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a", size = 14477, upload-time = "2026-01-11T11:22:37.446Z" },
1076
1086
  ]
1077
1087
 
1078
1088
  [[package]]
1079
1089
  name = "types-awscrt"
1080
- version = "0.30.0"
1090
+ version = "0.31.0"
1081
1091
  source = { registry = "https://pypi.org/simple" }
1082
- sdist = { url = "https://files.pythonhosted.org/packages/30/1f/febd2df22e24f77b759db0dd9ecdd7f07f055e6a4dbbb699c5eb34b617ef/types_awscrt-0.30.0.tar.gz", hash = "sha256:362fd8f5eaebcfcd922cb9fd8274fb375df550319f78031ee3779eac0b9ecc79", size = 17761, upload-time = "2025-12-12T01:55:59.626Z" }
1092
+ sdist = { url = "https://files.pythonhosted.org/packages/18/9f/9be587f2243ea7837ad83aad248ff4d8f9a880ac5a84544e9661e5840a22/types_awscrt-0.31.0.tar.gz", hash = "sha256:aa8b42148af0847be14e2b8ea3637a3518ffab038f8d3be7083950f3ce87d3ff", size = 17817, upload-time = "2026-01-12T06:42:37.711Z" }
1083
1093
  wheels = [
1084
- { url = "https://files.pythonhosted.org/packages/5b/5f/15999051fca2949a67562c3f80fae2dd5d3404a3f97b326b614533843281/types_awscrt-0.30.0-py3-none-any.whl", hash = "sha256:8204126e01a00eaa4a746e7a0076538ca0e4e3f52408adec0ab9b471bb0bb64b", size = 42392, upload-time = "2025-12-12T01:55:58.194Z" },
1094
+ { url = "https://files.pythonhosted.org/packages/4c/8d/87ac494b5165e7650b2bc92ee3325c1339a47323489beeda32dffc9a1334/types_awscrt-0.31.0-py3-none-any.whl", hash = "sha256:009cfe5b9af8c75e8304243490e20a5229e7a56203f1d41481f5522233453f51", size = 42509, upload-time = "2026-01-12T06:42:36.187Z" },
1085
1095
  ]
1086
1096
 
1087
1097
  [[package]]
1088
1098
  name = "types-boto3"
1089
- version = "1.42.24"
1099
+ version = "1.42.25"
1090
1100
  source = { registry = "https://pypi.org/simple" }
1091
1101
  dependencies = [
1092
1102
  { name = "botocore-stubs" },
1093
1103
  { name = "types-s3transfer" },
1094
1104
  { name = "typing-extensions", marker = "python_full_version < '3.12'" },
1095
1105
  ]
1096
- sdist = { url = "https://files.pythonhosted.org/packages/f3/8d/a0052576bab66a0632e2f7f26ebbcd98eeaf17d8b8fc15f4c19b7ec3df82/types_boto3-1.42.24.tar.gz", hash = "sha256:7b982a7ddbe1cfb153c5bd5442c5b394562adcac4dd6d1df3bc6f68f3f11f1d6", size = 101257, upload-time = "2026-01-07T20:41:13.892Z" }
1106
+ sdist = { url = "https://files.pythonhosted.org/packages/95/b4/4cbc4b0dfa72feebdd51ef2ae9ec84c6603054e7215aebd2a27bc7a05f97/types_boto3-1.42.25.tar.gz", hash = "sha256:0b47f5219bae83355fd6942989e0d120847032224a09e57996753a9cd1d153e6", size = 101256, upload-time = "2026-01-09T20:44:37.904Z" }
1097
1107
  wheels = [
1098
- { url = "https://files.pythonhosted.org/packages/be/b7/71eddff9cd4191e0a23a8dcd2538a99f5aa6e8562f050f76ab0a6e9bbc4c/types_boto3-1.42.24-py3-none-any.whl", hash = "sha256:0f1edc99c9cc7b5e6a7dc0003d1d9831dec81fd9f66a550d0979c577742e8956", size = 69676, upload-time = "2026-01-07T20:41:10.734Z" },
1108
+ { url = "https://files.pythonhosted.org/packages/89/cc/85d967f38fd62c7853de351dc7068177a7648a33e3fd72f1fcded2422d73/types_boto3-1.42.25-py3-none-any.whl", hash = "sha256:d334021e6037c15b0cf63ce376144ac72e6506e9710bbc29e2a806a8ba4501e7", size = 69675, upload-time = "2026-01-09T20:44:33.833Z" },
1099
1109
  ]
1100
1110
 
1101
1111
  [package.optional-dependencies]
@@ -1,11 +0,0 @@
1
- ## [2.0.4] - 2026-01-09
2
-
3
- ### Added
4
- - Add rds mysql cursor
5
-
6
- ### Changed
7
- - Use the port forwarder class in [#8](https://github.com/clearskies-py/aws/pull/8)
8
-
9
- ### Fixed
10
- - Make age dynamic instead of fixed
11
-
@@ -1,7 +0,0 @@
1
- import logging
2
-
3
- from clearskies_aws.cursors.iam.rds_mysql import RdsMySql
4
-
5
- logging.getLogger(__name__)
6
-
7
- __all__ = ["RdsMySql", "MysqlWithSSM"]
File without changes