clear-skies-aws 2.0.7__tar.gz → 2.0.9__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 (84) hide show
  1. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/.github/workflows/create-version.yaml +1 -1
  2. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/CHANGELOG.md +21 -0
  3. clear_skies_aws-2.0.9/LATEST_CHANGELOG.md +9 -0
  4. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/PKG-INFO +1 -1
  5. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/pyproject.toml +1 -1
  6. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/cursors/port_forwarding/ssm.py +9 -3
  7. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/input_outputs/lambda_input_output.py +2 -0
  8. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/input_outputs/lambda_invoke.py +1 -4
  9. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/input_outputs/lambda_sns.py +0 -4
  10. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/input_outputs/lambda_sqs_standard.py +0 -4
  11. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/uv.lock +22 -22
  12. clear_skies_aws-2.0.7/LATEST_CHANGELOG.md +0 -5
  13. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/.copier-answers.yml +0 -0
  14. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/.editorconfig +0 -0
  15. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/.github/workflows/docs.yaml +0 -0
  16. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/.github/workflows/run-tests.yml +0 -0
  17. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/.github/workflows/tests-matrix.yaml +0 -0
  18. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/.github/workflows/tests.yaml +0 -0
  19. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/.gitignore +0 -0
  20. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/.pre-commit-config.yaml +0 -0
  21. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/.python-version +0 -0
  22. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/LICENSE +0 -0
  23. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/README.md +0 -0
  24. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/cliff.toml +0 -0
  25. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/ruff.toml +0 -0
  26. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/__init__.py +0 -0
  27. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/actions/__init__.py +0 -0
  28. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/actions/action_aws.py +0 -0
  29. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/actions/assume_role.py +0 -0
  30. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/actions/ses.py +0 -0
  31. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/actions/sns.py +0 -0
  32. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/actions/sqs.py +0 -0
  33. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/actions/step_function.py +0 -0
  34. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/backends/__init__.py +0 -0
  35. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/backends/backend.py +0 -0
  36. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/backends/dynamo_db_backend.py +0 -0
  37. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/backends/dynamo_db_condition_parser.py +0 -0
  38. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/backends/dynamo_db_parti_ql_backend.py +0 -0
  39. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/backends/sqs_backend.py +0 -0
  40. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/configs/__init__.py +0 -0
  41. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/contexts/__init__.py +0 -0
  42. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/contexts/cli_web_socket_mock.py +0 -0
  43. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/contexts/lambda_alb.py +0 -0
  44. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/contexts/lambda_api_gateway.py +0 -0
  45. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/contexts/lambda_api_gateway_web_socket.py +0 -0
  46. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/contexts/lambda_invoke.py +0 -0
  47. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/contexts/lambda_sns.py +0 -0
  48. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/contexts/lambda_sqs_standard.py +0 -0
  49. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/cursors/__init__.py +0 -0
  50. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/cursors/iam/__init__.py +0 -0
  51. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/cursors/iam/rds_mysql.py +0 -0
  52. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/cursors/port_forwarding/__init__.py +0 -0
  53. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/di/__init__.py +0 -0
  54. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/di/aws_additional_config_auto_import.py +0 -0
  55. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/di/inject/__init__.py +0 -0
  56. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/di/inject/boto3.py +0 -0
  57. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/di/inject/boto3_session.py +0 -0
  58. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/di/inject/parameter_store.py +0 -0
  59. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/endpoints/__init__.py +0 -0
  60. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/endpoints/secrets_manager_rotation.py +0 -0
  61. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/endpoints/simple_body_routing.py +0 -0
  62. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/input_outputs/__init__.py +0 -0
  63. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/input_outputs/cli_web_socket_mock.py +0 -0
  64. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/input_outputs/lambda_alb.py +0 -0
  65. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/input_outputs/lambda_api_gateway.py +0 -0
  66. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/input_outputs/lambda_api_gateway_web_socket.py +0 -0
  67. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/mocks/__init__.py +0 -0
  68. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/mocks/actions/__init__.py +0 -0
  69. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/mocks/actions/ses.py +0 -0
  70. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/mocks/actions/sns.py +0 -0
  71. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/mocks/actions/sqs.py +0 -0
  72. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/mocks/actions/step_function.py +0 -0
  73. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/models/__init__.py +0 -0
  74. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/models/web_socket_connection_model.py +0 -0
  75. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/secrets/__init__.py +0 -0
  76. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/secrets/additional_configs/__init__.py +0 -0
  77. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/secrets/additional_configs/iam_db_auth.py +0 -0
  78. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/secrets/additional_configs/iam_db_auth_with_ssm.py +0 -0
  79. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/secrets/additional_configs/mysql_connection_dynamic_producer_via_ssh_cert_bastion.py +0 -0
  80. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/secrets/additional_configs/mysql_connection_dynamic_producer_via_ssm_bastion.py +0 -0
  81. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/secrets/akeyless_with_ssm_cache.py +0 -0
  82. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/secrets/parameter_store.py +0 -0
  83. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/secrets/secrets.py +0 -0
  84. {clear_skies_aws-2.0.7 → clear_skies_aws-2.0.9}/src/clearskies_aws/secrets/secrets_manager.py +0 -0
@@ -79,7 +79,7 @@ jobs:
79
79
  # STEP 2: Commit all file changes together
80
80
  - name: Commit All Changes
81
81
  run: |
82
- git add pyproject.toml CHANGELOG.md
82
+ git add pyproject.toml CHANGELOG.md uv.lock
83
83
  git commit -m "chore(release): bump version to ${{ steps.bump.outputs.tag }}"
84
84
 
85
85
  # STEP 3: Create the tag for the final commit
@@ -5,9 +5,28 @@ 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.9] - 2026-01-14
9
+
10
+ ### Changed
11
+ - Lock update
12
+ - Check if url is set
13
+
14
+ ### Fixed
15
+ - Don't add base class items in [#10](https://github.com/clearskies-py/aws/pull/10)
16
+
17
+ ## [2.0.8] - 2026-01-12
18
+
19
+ ### Changed
20
+ - Bump version to v2.0.8 by @github-actions[bot]
21
+ - Update clear-skies
22
+
23
+ ### Fixed
24
+ - Ssm command
25
+
8
26
  ## [2.0.7] - 2026-01-12
9
27
 
10
28
  ### Changed
29
+ - Bump version to v2.0.7 by @github-actions[bot]
11
30
  - Update clear-skies
12
31
 
13
32
  ## [2.0.6] - 2026-01-12
@@ -111,6 +130,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
111
130
  * @cmancone made their first contribution
112
131
  * @ made their first contribution
113
132
  * @github-actions[bot] made their first contribution
133
+ [2.0.9]: https://github.com/clearskies-py/aws/compare/v2.0.8..v2.0.9
134
+ [2.0.8]: https://github.com/clearskies-py/aws/compare/v2.0.7..v2.0.8
114
135
  [2.0.7]: https://github.com/clearskies-py/aws/compare/v2.0.6..v2.0.7
115
136
  [2.0.6]: https://github.com/clearskies-py/aws/compare/v2.0.5..v2.0.6
116
137
  [2.0.5]: https://github.com/clearskies-py/aws/compare/v2.0.4..v2.0.5
@@ -0,0 +1,9 @@
1
+ ## [2.0.9] - 2026-01-14
2
+
3
+ ### Changed
4
+ - Lock update
5
+ - Check if url is set
6
+
7
+ ### Fixed
8
+ - Don't add base class items in [#10](https://github.com/clearskies-py/aws/pull/10)
9
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clear-skies-aws
3
- Version: 2.0.7
3
+ Version: 2.0.9
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
@@ -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.7"
6
+ version = "2.0.9"
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'
@@ -92,6 +92,9 @@ class Ssm(PortForwarder):
92
92
  if self.local_port == 0:
93
93
  self.local_port = self.pick_free_port("127.0.0.1")
94
94
 
95
+ if self.remote_port is None:
96
+ raise ValueError("remote_port must be set for SSM port forwarding.")
97
+
95
98
  if self.is_port_open("127.0.0.1", self.local_port):
96
99
  return "127.0.0.1", self.local_port
97
100
 
@@ -102,15 +105,17 @@ class Ssm(PortForwarder):
102
105
  "--target",
103
106
  self.instance_id,
104
107
  "--document-name",
105
- "AWS-StartPortForwardingSession",
108
+ "AWS-StartPortForwardingSessionToRemoteHost",
106
109
  "--parameters",
107
- f"portNumber={self.remote_port},localPort={self.local_port}",
110
+ f'{{"host":["{original_host}"],"portNumber":["{self.remote_port}"],"localPortNumber":["{self.local_port}"]}}',
108
111
  ]
109
112
  if self.region:
110
113
  ssm_cmd += ["--region", self.region]
111
114
  if self.profile:
112
115
  ssm_cmd += ["--profile", self.profile]
113
116
 
117
+ self.logger.debug(f"Starting SSM port forwarding session: {' '.join(ssm_cmd)}")
118
+
114
119
  self._proc = self.subprocess.Popen(ssm_cmd, stdout=self.subprocess.PIPE, stderr=self.subprocess.PIPE)
115
120
 
116
121
  start = time.time()
@@ -123,7 +128,8 @@ class Ssm(PortForwarder):
123
128
  break
124
129
  except Exception:
125
130
  if self._proc is not None and self._proc.poll() is not None:
126
- raise RuntimeError("SSM process exited unexpectedly")
131
+ stderr = self._proc.stderr.read().decode() if self._proc.stderr else ""
132
+ raise RuntimeError(f"SSM process exited unexpectedly. Stderr: {stderr}")
127
133
  if time.time() - start > 10:
128
134
  raise TimeoutError(f"Timeout waiting for port {self.local_port} to open")
129
135
  time.sleep(0.1)
@@ -79,6 +79,8 @@ class LambdaInputOutput(InputOutput):
79
79
 
80
80
  def get_full_path(self) -> str:
81
81
  """Get full path."""
82
+ if self.url is not None:
83
+ return self.url
82
84
  return self.path
83
85
 
84
86
  def context_specifics(self) -> dict[str, Any]:
@@ -24,6 +24,7 @@ class LambdaInvoke(lambda_input_output.LambdaInputOutput):
24
24
 
25
25
  # Direct invocation specific initialization
26
26
  if url:
27
+ self.url = url
27
28
  self.path = url
28
29
  else:
29
30
  self.supports_url = True
@@ -59,10 +60,6 @@ class LambdaInvoke(lambda_input_output.LambdaInputOutput):
59
60
  """Direct invocations don't have a protocol."""
60
61
  return "lambda"
61
62
 
62
- def get_full_path(self) -> str:
63
- """Return the configured path."""
64
- return self.path
65
-
66
63
  def context_specifics(self) -> dict[str, Any]:
67
64
  """Provide direct invocation specific context data."""
68
65
  return {
@@ -66,10 +66,6 @@ class LambdaSns(lambda_input_output.LambdaInputOutput):
66
66
  """SNS events don't have a protocol."""
67
67
  return "sns"
68
68
 
69
- def get_full_path(self) -> str:
70
- """Return the configured path."""
71
- return self.path
72
-
73
69
  def context_specifics(self) -> dict[str, Any]:
74
70
  """Provide SNS specific context data."""
75
71
  sns_record = self.event.get("Records", [{}])[0].get("Sns", {})
@@ -68,10 +68,6 @@ class LambdaSqsStandard(lambda_input_output.LambdaInputOutput):
68
68
  """SQS events don't have a protocol."""
69
69
  return "sqs"
70
70
 
71
- def get_full_path(self) -> str:
72
- """Return the configured path."""
73
- return self.path
74
-
75
71
  def context_specifics(self) -> dict[str, Any]:
76
72
  """Provide SQS specific context data."""
77
73
  return {
@@ -4,7 +4,7 @@ requires-python = ">=3.11, <4.0"
4
4
 
5
5
  [[package]]
6
6
  name = "akeyless"
7
- version = "5.0.18"
7
+ version = "5.0.19"
8
8
  source = { registry = "https://pypi.org/simple" }
9
9
  dependencies = [
10
10
  { name = "certifi" },
@@ -13,9 +13,9 @@ dependencies = [
13
13
  { name = "six" },
14
14
  { name = "urllib3" },
15
15
  ]
16
- sdist = { url = "https://files.pythonhosted.org/packages/b7/02/0e258ad9dd2401fcf07ddea037ebd9cd36b09ba11b7a45bd7809dd312be3/akeyless-5.0.18.tar.gz", hash = "sha256:82e220c66a97d63778ec02b222bce18840c1efae6ea4efd764346e7608b78274", size = 1497136, upload-time = "2025-12-25T08:33:28.909Z" }
16
+ sdist = { url = "https://files.pythonhosted.org/packages/99/01/2a8e5af60178da4f279f0314e4ef1111e4302ab9f2692b93acb8c82d32a5/akeyless-5.0.19.tar.gz", hash = "sha256:ab2ef944d07d502abea0e16c7365feaf38fb6153791ccac20b2b74f1e06e9c11", size = 1503846, upload-time = "2026-01-12T15:29:27.054Z" }
17
17
  wheels = [
18
- { url = "https://files.pythonhosted.org/packages/4b/b5/5055362724232da120b5e1ffcfdcdb6cbeab153753c7730f97e7b5776dec/akeyless-5.0.18-py3-none-any.whl", hash = "sha256:f3ab1460e0b10f477fe8419411b67c00d717a75d075b0c394db921b7cf901e9d", size = 2830695, upload-time = "2025-12-25T08:33:27.126Z" },
18
+ { url = "https://files.pythonhosted.org/packages/68/98/608f6a64c921ecfea9e71739511e960df3b4cf090ebddecc8f038c23fbf7/akeyless-5.0.19-py3-none-any.whl", hash = "sha256:b8dda1fb0c4918f834704eab6339b51adff7a23b25beb1cc02dcf7ce2d5fb8e4", size = 2843240, upload-time = "2026-01-12T15:29:25.528Z" },
19
19
  ]
20
20
 
21
21
  [[package]]
@@ -70,42 +70,42 @@ wheels = [
70
70
 
71
71
  [[package]]
72
72
  name = "boto3"
73
- version = "1.42.25"
73
+ version = "1.42.27"
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/29/30/755a6c4b27ad4effefa9e407f84c6f0a69f75a21c0090beb25022dfcfd3f/boto3-1.42.25.tar.gz", hash = "sha256:ccb5e757dd62698d25766cc54cf5c47bea43287efa59c93cf1df8c8fbc26eeda", size = 112811, upload-time = "2026-01-09T20:27:44.73Z" }
80
+ sdist = { url = "https://files.pythonhosted.org/packages/8d/99/65569052c911160702ad371b0b08b751bb1df29deeef0c5c117528074c29/boto3-1.42.27.tar.gz", hash = "sha256:a8a53abb98ff1a24d9a88d9d8c0285bf02d23189666130456e8951ede2f7db98", size = 112765, upload-time = "2026-01-13T20:35:11.971Z" }
81
81
  wheels = [
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" },
82
+ { url = "https://files.pythonhosted.org/packages/44/9e/9554a8c1d7610ec8ea55bec0dac87ad894c83cada2ea2c05fc45f14d0cde/boto3-1.42.27-py3-none-any.whl", hash = "sha256:39dfec51aff3f9356e8c7331195f324cb498ec75b2601a902fc62aa127b8fd00", size = 140577, upload-time = "2026-01-13T20:35:09.35Z" },
83
83
  ]
84
84
 
85
85
  [[package]]
86
86
  name = "botocore"
87
- version = "1.42.25"
87
+ version = "1.42.27"
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/2c/b5/8f961c65898deb5417c9e9e908ea6c4d2fe8bb52ff04e552f679c88ed2ce/botocore-1.42.25.tar.gz", hash = "sha256:7ae79d1f77d3771e83e4dd46bce43166a1ba85d58a49cffe4c4a721418616054", size = 14879737, upload-time = "2026-01-09T20:27:34.676Z" }
94
+ sdist = { url = "https://files.pythonhosted.org/packages/65/90/55b003d38f947c90c0d7e306d377dcdfd9cd0dc1e184082b2d1a6adb0eec/botocore-1.42.27.tar.gz", hash = "sha256:c8e1e3ffb6c871622b1c8054f064d60cbc786aa5ca1f97f5f9fd5fa0a9d82d05", size = 14880030, upload-time = "2026-01-13T20:35:00.31Z" }
95
95
  wheels = [
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" },
96
+ { url = "https://files.pythonhosted.org/packages/bf/32/8a4a0447432425cd2f772c757d988742685f46796cf5d68aeaf6bcb6bc37/botocore-1.42.27-py3-none-any.whl", hash = "sha256:d51fb3b8dd1a944c8d238d2827a0dd6e5528d6da49a3bd9eccad019c533e4c9c", size = 14555236, upload-time = "2026-01-13T20:34:55.918Z" },
97
97
  ]
98
98
 
99
99
  [[package]]
100
100
  name = "botocore-stubs"
101
- version = "1.42.25"
101
+ version = "1.42.27"
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/44/23/1f30c552bd0af9523abe49d50e849555298ed836b18a8039093ba786c2ef/botocore_stubs-1.42.25.tar.gz", hash = "sha256:70a8a53ba2684ff462c44d5996acd85fc5c7eb969e2cf3c25274441269524298", size = 42415, upload-time = "2026-01-09T20:32:21.78Z" }
106
+ sdist = { url = "https://files.pythonhosted.org/packages/19/28/16998a7a4a7d6128025a3a85c8419f6c410573314223ef0a9962cf4bcb84/botocore_stubs-1.42.27.tar.gz", hash = "sha256:1e5bc3f8879dc0c8cf98e668d108b3314d34db8f342ade2a9a53d88f27dc3292", size = 42396, upload-time = "2026-01-13T21:28:35.741Z" }
107
107
  wheels = [
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" },
108
+ { url = "https://files.pythonhosted.org/packages/d6/cd/fcb5810d0b7f98349128b223a2196589cb1757c6882895a8a3fb102010e0/botocore_stubs-1.42.27-py3-none-any.whl", hash = "sha256:b0075eb627800cc3bb6486595b4322e2ed3b3e36925bf1700d7b48ac14bfa37f", size = 66761, upload-time = "2026-01-13T21:28:34.131Z" },
109
109
  ]
110
110
 
111
111
  [[package]]
@@ -201,16 +201,16 @@ wheels = [
201
201
 
202
202
  [[package]]
203
203
  name = "clear-skies"
204
- version = "2.0.31"
204
+ version = "2.0.33"
205
205
  source = { registry = "https://pypi.org/simple" }
206
206
  dependencies = [
207
207
  { name = "dateparser" },
208
208
  { name = "requests" },
209
209
  { name = "wrapt" },
210
210
  ]
211
- sdist = { url = "https://files.pythonhosted.org/packages/73/59/1fb57d9a45d290d69f595d2cd8777edae01b26ec9915892bfac2ea70e133/clear_skies-2.0.31.tar.gz", hash = "sha256:3c7818f3cf6b9c5b29e8fd23c559219e0e6ddf232d0efd798faa8eb9140d560b", size = 369408, upload-time = "2026-01-12T08:48:01.466Z" }
211
+ sdist = { url = "https://files.pythonhosted.org/packages/85/a6/f9622e9598dda4e7220808359ce6678c0ad95954610e46f8b6b05b369575/clear_skies-2.0.33.tar.gz", hash = "sha256:1a7fbcbcd2b53695fc247c9c348a447fb9a39b5fc89c2c813f2724985d9c4898", size = 370509, upload-time = "2026-01-14T08:27:00.751Z" }
212
212
  wheels = [
213
- { url = "https://files.pythonhosted.org/packages/b0/4c/aec61cc05843e72074480df44827ee1b7523f53c4e8fa52ca127c6e73706/clear_skies-2.0.31-py3-none-any.whl", hash = "sha256:e384b998d2d802424ae49d30aa269c76bedaa7d66c8315d12a13870a1e4a8f89", size = 358254, upload-time = "2026-01-12T08:48:03.168Z" },
213
+ { url = "https://files.pythonhosted.org/packages/a2/df/fc096c9330de8e1e521a9cb3bd937c807f27cb78b7b30c84398bafcca8c4/clear_skies-2.0.33-py3-none-any.whl", hash = "sha256:b6783342b0580e5e851104392ee9734fb1d88928d06bb1ce142847e00e5b4edd", size = 359304, upload-time = "2026-01-14T08:26:59.377Z" },
214
214
  ]
215
215
 
216
216
  [package.optional-dependencies]
@@ -220,7 +220,7 @@ mysql = [
220
220
 
221
221
  [[package]]
222
222
  name = "clear-skies-aws"
223
- version = "2.0.7"
223
+ version = "2.0.9"
224
224
  source = { editable = "." }
225
225
  dependencies = [
226
226
  { name = "boto3" },
@@ -424,11 +424,11 @@ wheels = [
424
424
 
425
425
  [[package]]
426
426
  name = "identify"
427
- version = "2.6.15"
427
+ version = "2.6.16"
428
428
  source = { registry = "https://pypi.org/simple" }
429
- sdist = { url = "https://files.pythonhosted.org/packages/ff/e7/685de97986c916a6d93b3876139e00eef26ad5bbbd61925d670ae8013449/identify-2.6.15.tar.gz", hash = "sha256:e4f4864b96c6557ef2a1e1c951771838f4edc9df3a72ec7118b338801b11c7bf", size = 99311, upload-time = "2025-10-02T17:43:40.631Z" }
429
+ sdist = { url = "https://files.pythonhosted.org/packages/5b/8d/e8b97e6bd3fb6fb271346f7981362f1e04d6a7463abd0de79e1fda17c067/identify-2.6.16.tar.gz", hash = "sha256:846857203b5511bbe94d5a352a48ef2359532bc8f6727b5544077a0dcfb24980", size = 99360, upload-time = "2026-01-12T18:58:58.201Z" }
430
430
  wheels = [
431
- { url = "https://files.pythonhosted.org/packages/0f/1c/e5fd8f973d4f375adb21565739498e2e9a1e54c858a97b9a8ccfdc81da9b/identify-2.6.15-py2.py3-none-any.whl", hash = "sha256:1181ef7608e00704db228516541eb83a88a9f94433a8c80bb9b5bd54b1d81757", size = 99183, upload-time = "2025-10-02T17:43:39.137Z" },
431
+ { url = "https://files.pythonhosted.org/packages/b8/58/40fbbcefeda82364720eba5cf2270f98496bdfa19ea75b4cccae79c698e6/identify-2.6.16-py2.py3-none-any.whl", hash = "sha256:391ee4d77741d994189522896270b787aed8670389bfd60f326d677d64a6dfb0", size = 99202, upload-time = "2026-01-12T18:58:56.627Z" },
432
432
  ]
433
433
 
434
434
  [[package]]
@@ -1096,16 +1096,16 @@ wheels = [
1096
1096
 
1097
1097
  [[package]]
1098
1098
  name = "types-boto3"
1099
- version = "1.42.25"
1099
+ version = "1.42.27"
1100
1100
  source = { registry = "https://pypi.org/simple" }
1101
1101
  dependencies = [
1102
1102
  { name = "botocore-stubs" },
1103
1103
  { name = "types-s3transfer" },
1104
1104
  { name = "typing-extensions", marker = "python_full_version < '3.12'" },
1105
1105
  ]
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" }
1106
+ sdist = { url = "https://files.pythonhosted.org/packages/af/4d/d21d4c95b00233a585339ccafb9ed8b533017a6151a03f813efa73237f3e/types_boto3-1.42.27.tar.gz", hash = "sha256:6895136fed360995fc84936a82564b77cc3aa59e65be4e5450d1f94dc5d1806c", size = 101249, upload-time = "2026-01-13T20:40:54.819Z" }
1107
1107
  wheels = [
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" },
1108
+ { url = "https://files.pythonhosted.org/packages/4d/fc/37a29248f547b9c7cdd1c51f7802ea692416423ef8aac969fc92d33bc488/types_boto3-1.42.27-py3-none-any.whl", hash = "sha256:4d1c391f5eeaf940f17677ac67c39b7917ea9245201940cf26c0b8d435a04966", size = 69676, upload-time = "2026-01-13T20:40:47.423Z" },
1109
1109
  ]
1110
1110
 
1111
1111
  [package.optional-dependencies]
@@ -1,5 +0,0 @@
1
- ## [2.0.7] - 2026-01-12
2
-
3
- ### Changed
4
- - Update clear-skies
5
-
File without changes