simpleflow 0.34.2__tar.gz → 0.34.3__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 (115) hide show
  1. {simpleflow-0.34.2 → simpleflow-0.34.3}/PKG-INFO +1 -1
  2. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/__init__.py +1 -1
  3. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/format.py +22 -18
  4. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/event/factory.py +1 -1
  5. simpleflow-0.34.2/simpleflow/cli/workflow.py +0 -0
  6. {simpleflow-0.34.2 → simpleflow-0.34.3}/.gitignore +0 -0
  7. {simpleflow-0.34.2 → simpleflow-0.34.3}/LICENSE +0 -0
  8. {simpleflow-0.34.2 → simpleflow-0.34.3}/README.md +0 -0
  9. {simpleflow-0.34.2 → simpleflow-0.34.3}/pyproject.toml +0 -0
  10. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/__main__.py +0 -0
  11. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/_decorators.py +0 -0
  12. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/activity.py +0 -0
  13. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/base.py +0 -0
  14. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/boto3_utils.py +0 -0
  15. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/canvas.py +0 -0
  16. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/command.py +0 -0
  17. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/constants.py +0 -0
  18. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/dispatch/__init__.py +0 -0
  19. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/dispatch/by_module.py +0 -0
  20. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/dispatch/dry_run.py +0 -0
  21. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/dispatch/dynamic_dispatcher.py +0 -0
  22. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/dispatch/exceptions.py +0 -0
  23. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/dispatch/from_task_registry.py +0 -0
  24. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/download.py +0 -0
  25. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/exceptions.py +0 -0
  26. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/execute.py +0 -0
  27. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/executor.py +0 -0
  28. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/futures.py +0 -0
  29. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/history.py +0 -0
  30. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/job/__init__.py +0 -0
  31. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/local/__init__.py +0 -0
  32. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/local/executor.py +0 -0
  33. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/log.py +0 -0
  34. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/logging_context.py +0 -0
  35. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/marker.py +0 -0
  36. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/metrology.py +0 -0
  37. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/process/__init__.py +0 -0
  38. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/process/_named_mixin.py +0 -0
  39. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/process/_supervisor.py +0 -0
  40. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/registry.py +0 -0
  41. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/runtime/__init__.py +0 -0
  42. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/settings/__init__.py +0 -0
  43. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/settings/base.py +0 -0
  44. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/settings/default.py +0 -0
  45. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/signal.py +0 -0
  46. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/step/__init__.py +0 -0
  47. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/step/constants.py +0 -0
  48. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/step/submittable.py +0 -0
  49. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/step/tasks.py +0 -0
  50. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/step/utils.py +0 -0
  51. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/step/workflow.py +0 -0
  52. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/storage.py +0 -0
  53. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/__init__.py +0 -0
  54. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/constants.py +0 -0
  55. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/executor.py +0 -0
  56. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/helpers.py +0 -0
  57. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/__init__.py +0 -0
  58. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/actors/__init__.py +0 -0
  59. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/actors/core.py +0 -0
  60. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/actors/decider.py +0 -0
  61. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/actors/worker.py +0 -0
  62. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/constants.py +0 -0
  63. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/core.py +0 -0
  64. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/exceptions.py +0 -0
  65. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/__init__.py +0 -0
  66. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/activity.py +0 -0
  67. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/base.py +0 -0
  68. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/decision/__init__.py +0 -0
  69. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/decision/base.py +0 -0
  70. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/decision/marker.py +0 -0
  71. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/decision/task.py +0 -0
  72. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/decision/timer.py +0 -0
  73. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/decision/workflow.py +0 -0
  74. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/domain.py +0 -0
  75. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/event/__init__.py +0 -0
  76. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/event/base.py +0 -0
  77. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/event/compiler.py +0 -0
  78. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/event/marker.py +0 -0
  79. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/event/task.py +0 -0
  80. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/event/timer.py +0 -0
  81. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/event/workflow.py +0 -0
  82. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/history/__init__.py +0 -0
  83. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/history/base.py +0 -0
  84. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/history/builder.py +0 -0
  85. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/models/workflow.py +0 -0
  86. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/querysets/__init__.py +0 -0
  87. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/querysets/activity.py +0 -0
  88. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/querysets/base.py +0 -0
  89. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/querysets/domain.py +0 -0
  90. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/querysets/history.py +0 -0
  91. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/querysets/workflow.py +0 -0
  92. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/responses/__init__.py +0 -0
  93. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/responses/_base.py +0 -0
  94. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/settings.py +0 -0
  95. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/mapper/utils.py +0 -0
  96. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/process/__init__.py +0 -0
  97. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/process/decider/__init__.py +0 -0
  98. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/process/decider/base.py +0 -0
  99. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/process/decider/command.py +0 -0
  100. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/process/decider/helpers.py +0 -0
  101. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/process/poller.py +0 -0
  102. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/process/worker/__init__.py +0 -0
  103. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/process/worker/base.py +0 -0
  104. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/process/worker/command.py +0 -0
  105. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/stats/__init__.py +0 -0
  106. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/stats/base.py +0 -0
  107. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/stats/pretty.py +0 -0
  108. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/task.py +0 -0
  109. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/swf/utils.py +0 -0
  110. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/task.py +0 -0
  111. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/utils/__init__.py +0 -0
  112. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/utils/_dict.py +0 -0
  113. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/utils/_json.py +0 -0
  114. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/utils/retry.py +0 -0
  115. {simpleflow-0.34.2 → simpleflow-0.34.3}/simpleflow/workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: simpleflow
3
- Version: 0.34.2
3
+ Version: 0.34.3
4
4
  Summary: Python library for dataflow programming with Amazon SWF
5
5
  Project-URL: documentation, https://botify-labs.github.io/simpleflow
6
6
  Project-URL: repository, https://github.com/botify-labs/simpleflow
@@ -5,6 +5,6 @@ from .runtime import logger # NOQA
5
5
  from .signal import WaitForSignal # NOQA
6
6
  from .workflow import Workflow # NOQA
7
7
 
8
- __version__ = "0.34.2"
8
+ __version__ = "0.34.3"
9
9
  __author__ = "Greg Leclercq"
10
10
  __license__ = "MIT"
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  import os
4
4
  from sqlite3 import OperationalError
5
- from typing import Any
5
+ from typing import Any, cast
6
6
  from uuid import uuid4
7
7
 
8
8
  import lazy_object_proxy
@@ -23,7 +23,7 @@ def _jumbo_fields_bucket() -> str | None:
23
23
  # wrapped into a function so easier to override for tests
24
24
  bucket = os.getenv("SIMPLEFLOW_JUMBO_FIELDS_BUCKET")
25
25
  if not bucket:
26
- return
26
+ return None
27
27
  # trim trailing / if there, would provoke double slashes down the road
28
28
  if bucket.endswith("/"):
29
29
  bucket = bucket[:-1]
@@ -122,9 +122,9 @@ def _set_cached(path: str, content: str) -> None:
122
122
  def _push_jumbo_field(message: str) -> str:
123
123
  size = len(message)
124
124
  uuid = str(uuid4())
125
- bucket_with_dir = _jumbo_fields_bucket()
125
+ bucket_with_dir = cast(str, _jumbo_fields_bucket())
126
126
  if "/" in bucket_with_dir:
127
- bucket, directory = _jumbo_fields_bucket().split("/", 1)
127
+ bucket, directory = bucket_with_dir.split("/", 1)
128
128
  path = f"{directory}/{uuid}"
129
129
  else:
130
130
  bucket = bucket_with_dir
@@ -149,43 +149,47 @@ def _pull_jumbo_field(location: str) -> str:
149
149
  return content
150
150
 
151
151
 
152
- def _log_message_too_long(message):
152
+ def _log_message_too_long(message: str):
153
153
  if len(message) > constants.MAX_LOG_FIELD:
154
154
  message = f"{message[: constants.MAX_LOG_FIELD]} <...truncated to {constants.MAX_LOG_FIELD} chars>"
155
155
  logger.error(f"Message too long, will raise: {message}")
156
156
 
157
157
 
158
158
  # A few helpers to wrap common SWF fields
159
- def details(message):
159
+ def details(message: str | None) -> str | None:
160
160
  return encode(message, constants.MAX_DETAILS_LENGTH)
161
161
 
162
162
 
163
- def execution_context(message):
163
+ def execution_context(message: str | None) -> str | None:
164
164
  return encode(message, constants.MAX_EXECUTION_CONTEXT_LENGTH)
165
165
 
166
166
 
167
- def heartbeat_details(message):
167
+ def heartbeat_details(message: str | None) -> str | None:
168
168
  return encode(message, constants.MAX_HEARTBEAT_DETAILS_LENGTH)
169
169
 
170
170
 
171
- def identity(message):
171
+ def identity(message: str | None) -> str | None:
172
172
  # we don't allow the use of jumbo fields for identity because it's guaranteed
173
173
  # to change on every task, and we fear it makes the decider too slow
174
- # NB: this should be revisited / questionned later, maybe not such a problem?
175
- return encode(message, constants.MAX_IDENTITY_LENGTH, allow_jumbo_fields=False)
174
+ # NB: this should be revisited / questioned later, maybe not such a problem?
175
+ if not message:
176
+ return message
177
+ if len(message) > constants.MAX_IDENTITY_LENGTH:
178
+ message = f"{message[: constants.MAX_IDENTITY_LENGTH - 4]} ..."
179
+ return message
176
180
 
177
181
 
178
- def input(message):
179
- return encode(json_dumps(message), constants.MAX_INPUT_LENGTH)
182
+ def input(message: Any) -> str:
183
+ return cast(str, encode(json_dumps(message), constants.MAX_INPUT_LENGTH))
180
184
 
181
185
 
182
- def reason(message):
186
+ def reason(message: str | None) -> str | None:
183
187
  return encode(message, constants.MAX_REASON_LENGTH)
184
188
 
185
189
 
186
- def result(message):
187
- return encode(json_dumps(message), constants.MAX_RESULT_LENGTH)
190
+ def result(message: Any) -> str:
191
+ return cast(str, encode(json_dumps(message), constants.MAX_RESULT_LENGTH))
188
192
 
189
193
 
190
- def control(message):
191
- return encode(json_dumps(message), constants.MAX_CONTROL_LENGTH)
194
+ def control(message: Any) -> str:
195
+ return cast(str, encode(json_dumps(message), constants.MAX_CONTROL_LENGTH))
@@ -127,7 +127,7 @@ class EventFactory:
127
127
  Returns: 'start_initiated'
128
128
 
129
129
  """
130
- left, sep, right = event_name.partition(event_type)
130
+ left, _, right = event_name.partition(event_type)
131
131
  return camel_to_underscore(left + right)
132
132
 
133
133
 
File without changes
File without changes
File without changes
File without changes
File without changes