dbos 0.24.1__py3-none-any.whl → 0.25.0__py3-none-any.whl
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.
- dbos/__init__.py +5 -1
- dbos/__main__.py +3 -0
- dbos/_admin_server.py +28 -2
- dbos/_app_db.py +14 -15
- dbos/_client.py +206 -0
- dbos/_conductor/conductor.py +33 -2
- dbos/_conductor/protocol.py +47 -7
- dbos/_context.py +48 -0
- dbos/_core.py +173 -48
- dbos/_db_wizard.py +3 -7
- dbos/_dbos.py +134 -85
- dbos/_fastapi.py +4 -1
- dbos/_logger.py +14 -0
- dbos/_migrations/versions/f4b9b32ba814_functionname_childid_op_outputs.py +46 -0
- dbos/_outcome.py +6 -2
- dbos/_queue.py +5 -5
- dbos/_schemas/system_database.py +2 -0
- dbos/_sys_db.py +159 -178
- dbos/_templates/dbos-db-starter/__package/main.py +6 -11
- dbos/_templates/dbos-db-starter/dbos-config.yaml.dbos +2 -4
- dbos/_workflow_commands.py +90 -63
- dbos/cli/_template_init.py +8 -3
- dbos/cli/cli.py +22 -6
- {dbos-0.24.1.dist-info → dbos-0.25.0.dist-info}/METADATA +2 -1
- {dbos-0.24.1.dist-info → dbos-0.25.0.dist-info}/RECORD +28 -26
- {dbos-0.24.1.dist-info → dbos-0.25.0.dist-info}/WHEEL +1 -1
- {dbos-0.24.1.dist-info → dbos-0.25.0.dist-info}/entry_points.txt +0 -0
- {dbos-0.24.1.dist-info → dbos-0.25.0.dist-info}/licenses/LICENSE +0 -0
dbos/_workflow_commands.py
CHANGED
|
@@ -1,59 +1,78 @@
|
|
|
1
|
-
|
|
1
|
+
import json
|
|
2
|
+
from typing import Any, List, Optional
|
|
2
3
|
|
|
3
4
|
from . import _serialization
|
|
4
5
|
from ._sys_db import (
|
|
5
6
|
GetQueuedWorkflowsInput,
|
|
6
7
|
GetWorkflowsInput,
|
|
7
8
|
GetWorkflowsOutput,
|
|
9
|
+
StepInfo,
|
|
8
10
|
SystemDatabase,
|
|
9
|
-
WorkflowStatuses,
|
|
10
11
|
)
|
|
11
12
|
|
|
12
13
|
|
|
13
|
-
class
|
|
14
|
+
class WorkflowStatus:
|
|
15
|
+
# The workflow ID
|
|
14
16
|
workflow_id: str
|
|
15
|
-
status
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
# The workflow status. Must be one of ENQUEUED, PENDING, SUCCESS, ERROR, CANCELLED, or RETRIES_EXCEEDED
|
|
18
|
+
status: str
|
|
19
|
+
# The name of the workflow function
|
|
20
|
+
name: str
|
|
21
|
+
# The name of the workflow's class, if any
|
|
22
|
+
class_name: Optional[str]
|
|
23
|
+
# The name with which the workflow's class instance was configured, if any
|
|
24
|
+
config_name: Optional[str]
|
|
25
|
+
# The user who ran the workflow, if specified
|
|
19
26
|
authenticated_user: Optional[str]
|
|
27
|
+
# The role with which the workflow ran, if specified
|
|
20
28
|
assumed_role: Optional[str]
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
# All roles which the authenticated user could assume
|
|
30
|
+
authenticated_roles: Optional[list[str]]
|
|
31
|
+
# The deserialized workflow input object
|
|
32
|
+
input: Optional[_serialization.WorkflowInputs]
|
|
33
|
+
# The workflow's output, if any
|
|
34
|
+
output: Optional[Any] = None
|
|
35
|
+
# The error the workflow threw, if any
|
|
36
|
+
error: Optional[Exception] = None
|
|
37
|
+
# Workflow start time, as a Unix epoch timestamp in ms
|
|
38
|
+
created_at: Optional[int]
|
|
39
|
+
# Last time the workflow status was updated, as a Unix epoch timestamp in ms
|
|
40
|
+
updated_at: Optional[int]
|
|
41
|
+
# If this workflow was enqueued, on which queue
|
|
28
42
|
queue_name: Optional[str]
|
|
43
|
+
# The executor to most recently executed this workflow
|
|
29
44
|
executor_id: Optional[str]
|
|
45
|
+
# The application version on which this workflow was started
|
|
30
46
|
app_version: Optional[str]
|
|
47
|
+
# The ID of the application executing this workflow
|
|
31
48
|
app_id: Optional[str]
|
|
49
|
+
# The number of times this workflow's execution has been attempted
|
|
32
50
|
recovery_attempts: Optional[int]
|
|
51
|
+
# The HTTP request that triggered the workflow, if known
|
|
52
|
+
request: Optional[str]
|
|
33
53
|
|
|
34
54
|
|
|
35
55
|
def list_workflows(
|
|
36
56
|
sys_db: SystemDatabase,
|
|
37
57
|
*,
|
|
38
58
|
workflow_ids: Optional[List[str]] = None,
|
|
39
|
-
|
|
59
|
+
status: Optional[str] = None,
|
|
40
60
|
start_time: Optional[str] = None,
|
|
41
61
|
end_time: Optional[str] = None,
|
|
42
|
-
status: Optional[str] = None,
|
|
43
|
-
request: bool = False,
|
|
44
|
-
app_version: Optional[str] = None,
|
|
45
62
|
name: Optional[str] = None,
|
|
63
|
+
app_version: Optional[str] = None,
|
|
64
|
+
user: Optional[str] = None,
|
|
46
65
|
limit: Optional[int] = None,
|
|
47
66
|
offset: Optional[int] = None,
|
|
48
67
|
sort_desc: bool = False,
|
|
49
|
-
|
|
68
|
+
request: bool = False,
|
|
69
|
+
) -> List[WorkflowStatus]:
|
|
50
70
|
input = GetWorkflowsInput()
|
|
51
71
|
input.workflow_ids = workflow_ids
|
|
52
72
|
input.authenticated_user = user
|
|
53
73
|
input.start_time = start_time
|
|
54
74
|
input.end_time = end_time
|
|
55
|
-
|
|
56
|
-
input.status = cast(WorkflowStatuses, status)
|
|
75
|
+
input.status = status
|
|
57
76
|
input.application_version = app_version
|
|
58
77
|
input.limit = limit
|
|
59
78
|
input.name = name
|
|
@@ -61,7 +80,7 @@ def list_workflows(
|
|
|
61
80
|
input.sort_desc = sort_desc
|
|
62
81
|
|
|
63
82
|
output: GetWorkflowsOutput = sys_db.get_workflows(input)
|
|
64
|
-
infos: List[
|
|
83
|
+
infos: List[WorkflowStatus] = []
|
|
65
84
|
for workflow_id in output.workflow_uuids:
|
|
66
85
|
info = get_workflow(sys_db, workflow_id, request) # Call the method for each ID
|
|
67
86
|
if info is not None:
|
|
@@ -72,16 +91,16 @@ def list_workflows(
|
|
|
72
91
|
def list_queued_workflows(
|
|
73
92
|
sys_db: SystemDatabase,
|
|
74
93
|
*,
|
|
75
|
-
limit: Optional[int] = None,
|
|
76
|
-
start_time: Optional[str] = None,
|
|
77
|
-
end_time: Optional[str] = None,
|
|
78
94
|
queue_name: Optional[str] = None,
|
|
79
95
|
status: Optional[str] = None,
|
|
96
|
+
start_time: Optional[str] = None,
|
|
97
|
+
end_time: Optional[str] = None,
|
|
80
98
|
name: Optional[str] = None,
|
|
81
|
-
|
|
99
|
+
limit: Optional[int] = None,
|
|
82
100
|
offset: Optional[int] = None,
|
|
83
101
|
sort_desc: bool = False,
|
|
84
|
-
|
|
102
|
+
request: bool = False,
|
|
103
|
+
) -> List[WorkflowStatus]:
|
|
85
104
|
input: GetQueuedWorkflowsInput = {
|
|
86
105
|
"queue_name": queue_name,
|
|
87
106
|
"start_time": start_time,
|
|
@@ -93,7 +112,7 @@ def list_queued_workflows(
|
|
|
93
112
|
"sort_desc": sort_desc,
|
|
94
113
|
}
|
|
95
114
|
output: GetWorkflowsOutput = sys_db.get_queued_workflows(input)
|
|
96
|
-
infos: List[
|
|
115
|
+
infos: List[WorkflowStatus] = []
|
|
97
116
|
for workflow_id in output.workflow_uuids:
|
|
98
117
|
info = get_workflow(sys_db, workflow_id, request) # Call the method for each ID
|
|
99
118
|
if info is not None:
|
|
@@ -102,47 +121,55 @@ def list_queued_workflows(
|
|
|
102
121
|
|
|
103
122
|
|
|
104
123
|
def get_workflow(
|
|
105
|
-
sys_db: SystemDatabase,
|
|
106
|
-
) -> Optional[
|
|
124
|
+
sys_db: SystemDatabase, workflow_id: str, get_request: bool
|
|
125
|
+
) -> Optional[WorkflowStatus]:
|
|
107
126
|
|
|
108
|
-
|
|
109
|
-
if
|
|
127
|
+
internal_status = sys_db.get_workflow_status(workflow_id)
|
|
128
|
+
if internal_status is None:
|
|
110
129
|
return None
|
|
111
130
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
131
|
+
info = WorkflowStatus()
|
|
132
|
+
|
|
133
|
+
info.workflow_id = workflow_id
|
|
134
|
+
info.status = internal_status["status"]
|
|
135
|
+
info.name = internal_status["name"]
|
|
136
|
+
info.class_name = internal_status["class_name"]
|
|
137
|
+
info.config_name = internal_status["config_name"]
|
|
138
|
+
info.authenticated_user = internal_status["authenticated_user"]
|
|
139
|
+
info.assumed_role = internal_status["assumed_role"]
|
|
140
|
+
info.authenticated_roles = (
|
|
141
|
+
json.loads(internal_status["authenticated_roles"])
|
|
142
|
+
if internal_status["authenticated_roles"] is not None
|
|
143
|
+
else None
|
|
144
|
+
)
|
|
145
|
+
info.request = internal_status["request"]
|
|
146
|
+
info.created_at = internal_status["created_at"]
|
|
147
|
+
info.updated_at = internal_status["updated_at"]
|
|
148
|
+
info.queue_name = internal_status["queue_name"]
|
|
149
|
+
info.executor_id = internal_status["executor_id"]
|
|
150
|
+
info.app_version = internal_status["app_version"]
|
|
151
|
+
info.app_id = internal_status["app_id"]
|
|
152
|
+
info.recovery_attempts = internal_status["recovery_attempts"]
|
|
153
|
+
|
|
154
|
+
input_data = sys_db.get_workflow_inputs(workflow_id)
|
|
133
155
|
if input_data is not None:
|
|
134
|
-
|
|
156
|
+
info.input = input_data
|
|
135
157
|
|
|
136
|
-
if
|
|
137
|
-
result = sys_db.await_workflow_result(
|
|
138
|
-
|
|
139
|
-
elif
|
|
158
|
+
if internal_status.get("status") == "SUCCESS":
|
|
159
|
+
result = sys_db.await_workflow_result(workflow_id)
|
|
160
|
+
info.output = result
|
|
161
|
+
elif internal_status.get("status") == "ERROR":
|
|
140
162
|
try:
|
|
141
|
-
sys_db.await_workflow_result(
|
|
163
|
+
sys_db.await_workflow_result(workflow_id)
|
|
142
164
|
except Exception as e:
|
|
143
|
-
|
|
165
|
+
info.error = e
|
|
166
|
+
|
|
167
|
+
if not get_request:
|
|
168
|
+
info.request = None
|
|
169
|
+
|
|
170
|
+
return info
|
|
144
171
|
|
|
145
|
-
if not getRequest:
|
|
146
|
-
winfo.request = None
|
|
147
172
|
|
|
148
|
-
|
|
173
|
+
def list_workflow_steps(sys_db: SystemDatabase, workflow_id: str) -> List[StepInfo]:
|
|
174
|
+
output = sys_db.get_workflow_steps(workflow_id)
|
|
175
|
+
return output
|
dbos/cli/_template_init.py
CHANGED
|
@@ -58,15 +58,20 @@ def copy_template(src_dir: str, project_name: str, config_mode: bool) -> None:
|
|
|
58
58
|
dst_dir = path.abspath(".")
|
|
59
59
|
|
|
60
60
|
package_name = project_name.replace("-", "_")
|
|
61
|
+
default_migration_section = """database:
|
|
62
|
+
migrate:
|
|
63
|
+
- alembic upgrade head
|
|
64
|
+
"""
|
|
61
65
|
ctx = {
|
|
62
66
|
"project_name": project_name,
|
|
63
67
|
"package_name": package_name,
|
|
64
|
-
"
|
|
68
|
+
"start_command": f"python3 -m {package_name}.main",
|
|
69
|
+
"migration_section": default_migration_section,
|
|
65
70
|
}
|
|
66
71
|
|
|
67
72
|
if config_mode:
|
|
68
|
-
ctx["
|
|
69
|
-
ctx["
|
|
73
|
+
ctx["start_command"] = "python3 main.py"
|
|
74
|
+
ctx["migration_section"] = ""
|
|
70
75
|
_copy_dbos_template(
|
|
71
76
|
os.path.join(src_dir, "dbos-config.yaml.dbos"),
|
|
72
77
|
os.path.join(dst_dir, "dbos-config.yaml"),
|
dbos/cli/cli.py
CHANGED
|
@@ -21,7 +21,12 @@ from .. import load_config
|
|
|
21
21
|
from .._app_db import ApplicationDatabase
|
|
22
22
|
from .._dbos_config import _is_valid_app_name
|
|
23
23
|
from .._sys_db import SystemDatabase, reset_system_database
|
|
24
|
-
from .._workflow_commands import
|
|
24
|
+
from .._workflow_commands import (
|
|
25
|
+
get_workflow,
|
|
26
|
+
list_queued_workflows,
|
|
27
|
+
list_workflow_steps,
|
|
28
|
+
list_workflows,
|
|
29
|
+
)
|
|
25
30
|
from ..cli._github_init import create_template_from_github
|
|
26
31
|
from ._template_init import copy_template, get_project_name, get_templates_directory
|
|
27
32
|
|
|
@@ -184,8 +189,8 @@ def migrate() -> None:
|
|
|
184
189
|
app_db = None
|
|
185
190
|
sys_db = None
|
|
186
191
|
try:
|
|
187
|
-
sys_db = SystemDatabase(config)
|
|
188
|
-
app_db = ApplicationDatabase(config)
|
|
192
|
+
sys_db = SystemDatabase(config["database"])
|
|
193
|
+
app_db = ApplicationDatabase(config["database"])
|
|
189
194
|
except Exception as e:
|
|
190
195
|
typer.echo(f"DBOS system schema migration failed: {e}")
|
|
191
196
|
finally:
|
|
@@ -309,7 +314,7 @@ def list(
|
|
|
309
314
|
] = False,
|
|
310
315
|
) -> None:
|
|
311
316
|
config = load_config(silent=True)
|
|
312
|
-
sys_db = SystemDatabase(config)
|
|
317
|
+
sys_db = SystemDatabase(config["database"])
|
|
313
318
|
workflows = list_workflows(
|
|
314
319
|
sys_db,
|
|
315
320
|
limit=limit,
|
|
@@ -333,12 +338,23 @@ def get(
|
|
|
333
338
|
] = False,
|
|
334
339
|
) -> None:
|
|
335
340
|
config = load_config(silent=True)
|
|
336
|
-
sys_db = SystemDatabase(config)
|
|
341
|
+
sys_db = SystemDatabase(config["database"])
|
|
337
342
|
print(
|
|
338
343
|
jsonpickle.encode(get_workflow(sys_db, workflow_id, request), unpicklable=False)
|
|
339
344
|
)
|
|
340
345
|
|
|
341
346
|
|
|
347
|
+
@workflow.command(help="List the steps of a workflow")
|
|
348
|
+
def steps(
|
|
349
|
+
workflow_id: Annotated[str, typer.Argument()],
|
|
350
|
+
) -> None:
|
|
351
|
+
config = load_config(silent=True)
|
|
352
|
+
sys_db = SystemDatabase(config["database"])
|
|
353
|
+
print(
|
|
354
|
+
jsonpickle.encode(list_workflow_steps(sys_db, workflow_id), unpicklable=False)
|
|
355
|
+
)
|
|
356
|
+
|
|
357
|
+
|
|
342
358
|
@workflow.command(
|
|
343
359
|
help="Cancel a workflow so it is no longer automatically retried or restarted"
|
|
344
360
|
)
|
|
@@ -459,7 +475,7 @@ def list_queue(
|
|
|
459
475
|
] = False,
|
|
460
476
|
) -> None:
|
|
461
477
|
config = load_config(silent=True)
|
|
462
|
-
sys_db = SystemDatabase(config)
|
|
478
|
+
sys_db = SystemDatabase(config["database"])
|
|
463
479
|
workflows = list_queued_workflows(
|
|
464
480
|
sys_db=sys_db,
|
|
465
481
|
limit=limit,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dbos
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.25.0
|
|
4
4
|
Summary: Ultra-lightweight durable execution in Python
|
|
5
5
|
Author-Email: "DBOS, Inc." <contact@dbos.dev>
|
|
6
6
|
License: MIT
|
|
@@ -23,6 +23,7 @@ Requires-Dist: cryptography>=43.0.3
|
|
|
23
23
|
Requires-Dist: rich>=13.9.4
|
|
24
24
|
Requires-Dist: pyjwt>=2.10.1
|
|
25
25
|
Requires-Dist: websockets>=15.0
|
|
26
|
+
Requires-Dist: pyright>=1.1.398
|
|
26
27
|
Description-Content-Type: text/markdown
|
|
27
28
|
|
|
28
29
|
|
|
@@ -1,30 +1,31 @@
|
|
|
1
|
-
dbos-0.
|
|
2
|
-
dbos-0.
|
|
3
|
-
dbos-0.
|
|
4
|
-
dbos-0.
|
|
5
|
-
dbos/__init__.py,sha256=
|
|
6
|
-
dbos/__main__.py,sha256=
|
|
7
|
-
dbos/_admin_server.py,sha256=
|
|
8
|
-
dbos/_app_db.py,sha256=
|
|
1
|
+
dbos-0.25.0.dist-info/METADATA,sha256=mWgqxc8liS9Ysol7sLx5Xocz8_efHGHoeq8wariyfOA,5551
|
|
2
|
+
dbos-0.25.0.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
|
|
3
|
+
dbos-0.25.0.dist-info/entry_points.txt,sha256=_QOQ3tVfEjtjBlr1jS4sHqHya9lI2aIEIWkz8dqYp14,58
|
|
4
|
+
dbos-0.25.0.dist-info/licenses/LICENSE,sha256=VGZit_a5-kdw9WT6fY5jxAWVwGQzgLFyPWrcVVUhVNU,1067
|
|
5
|
+
dbos/__init__.py,sha256=3NQfGlBiiUSM_v88STdVP3rNZvGkUL_9WbSotKb8Voo,873
|
|
6
|
+
dbos/__main__.py,sha256=G7Exn-MhGrVJVDbgNlpzhfh8WMX_72t3_oJaFT9Lmt8,653
|
|
7
|
+
dbos/_admin_server.py,sha256=FLUacm9WGIPjB5s3QhdpMCilc8JHJOF0KMNStF82qs0,6625
|
|
8
|
+
dbos/_app_db.py,sha256=R3sbh--84A4i-dTz8IXYmxO4b4s5VSwiPQvi_le52mg,6109
|
|
9
9
|
dbos/_classproperty.py,sha256=f0X-_BySzn3yFDRKB2JpCbLYQ9tLwt1XftfshvY7CBs,626
|
|
10
|
+
dbos/_client.py,sha256=XKjR0a3JA9Xfo9VJx48EcdyiVDaA10FvI7Y_I1v27Ng,7384
|
|
10
11
|
dbos/_cloudutils/authentication.py,sha256=V0fCWQN9stCkhbuuxgPTGpvuQcDqfU3KAxPAh01vKW4,5007
|
|
11
12
|
dbos/_cloudutils/cloudutils.py,sha256=YC7jGsIopT0KveLsqbRpQk2KlRBk-nIRC_UCgep4f3o,7797
|
|
12
13
|
dbos/_cloudutils/databases.py,sha256=_shqaqSvhY4n2ScgQ8IP5PDZvzvcx3YBKV8fj-cxhSY,8543
|
|
13
|
-
dbos/_conductor/conductor.py,sha256=
|
|
14
|
-
dbos/_conductor/protocol.py,sha256=
|
|
15
|
-
dbos/_context.py,sha256=
|
|
16
|
-
dbos/_core.py,sha256=
|
|
14
|
+
dbos/_conductor/conductor.py,sha256=7elKINsgl4s1Tg5DwrU-K7xQ5vQvmDAIfAvUgfwpGN0,16784
|
|
15
|
+
dbos/_conductor/protocol.py,sha256=xN7pmooyF1pqbH1b6WhllU5718P7zSb_b0KCwA6bzcs,6716
|
|
16
|
+
dbos/_context.py,sha256=3He4w46OTFbR7h8U1MLcdaU10wNyIPBSRqzLkdggv7U,19368
|
|
17
|
+
dbos/_core.py,sha256=kIj_4wlIff8ptlACJKXAPSNoyJIt2h44swjMKxfwv0k,45789
|
|
17
18
|
dbos/_croniter.py,sha256=XHAyUyibs_59sJQfSNWkP7rqQY6_XrlfuuCxk4jYqek,47559
|
|
18
|
-
dbos/_db_wizard.py,sha256=
|
|
19
|
-
dbos/_dbos.py,sha256=
|
|
19
|
+
dbos/_db_wizard.py,sha256=VnMa6OL87Lc-XPDD1RnXp8NjsJE8YgiQLj3wtWAXp-8,8252
|
|
20
|
+
dbos/_dbos.py,sha256=AKfB61vvz5shPoEpKxqrqoiDemintKMqyBxhESRRJE8,45231
|
|
20
21
|
dbos/_dbos_config.py,sha256=7Qm3FARP3lTKZS0gSxDHLbpaDCT30GzfyERxfCde4bc,21566
|
|
21
22
|
dbos/_debug.py,sha256=mmgvLkqlrljMBBow9wk01PPur9kUf2rI_11dTJXY4gw,1822
|
|
22
23
|
dbos/_error.py,sha256=B6Y9XLS1f6yrawxB2uAEYFMxFwk9BHhdxPNddKco-Fw,5399
|
|
23
|
-
dbos/_fastapi.py,sha256=
|
|
24
|
+
dbos/_fastapi.py,sha256=PhaKftbApHnjtYEOw0EYna_3K0cmz__J9of7mRJWzu4,3704
|
|
24
25
|
dbos/_flask.py,sha256=DZKUZR5-xOzPI7tYZ53r2PvvHVoAb8SYwLzMVFsVfjI,2608
|
|
25
26
|
dbos/_kafka.py,sha256=o6DbwnsYRDtvVTZVsN7BAK8cdP79AfoWX3Q7CGY2Yuo,4199
|
|
26
27
|
dbos/_kafka_message.py,sha256=NYvOXNG3Qn7bghn1pv3fg4Pbs86ILZGcK4IB-MLUNu0,409
|
|
27
|
-
dbos/_logger.py,sha256=
|
|
28
|
+
dbos/_logger.py,sha256=qv2srteCF2rSRjCK1VGOck3ieIkwUe9Lvbv60mJc16E,4069
|
|
28
29
|
dbos/_migrations/env.py,sha256=38SIGVbmn_VV2x2u1aHLcPOoWgZ84eCymf3g_NljmbU,1626
|
|
29
30
|
dbos/_migrations/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
|
|
30
31
|
dbos/_migrations/versions/04ca4f231047_workflow_queues_executor_id.py,sha256=ICLPl8CN9tQXMsLDsAj8z1TsL831-Z3F8jSBvrR-wyw,736
|
|
@@ -34,8 +35,9 @@ dbos/_migrations/versions/a3b18ad34abe_added_triggers.py,sha256=Rv0ZsZYZ_WdgGEUL
|
|
|
34
35
|
dbos/_migrations/versions/d76646551a6b_job_queue_limiter.py,sha256=8PyFi8rd6CN-mUro43wGhsg5wcQWKZPRHD6jw8R5pVc,986
|
|
35
36
|
dbos/_migrations/versions/d76646551a6c_workflow_queue.py,sha256=G942nophZ2uC2vc4hGBC02Ptng1715roTjY3xiyzZU4,729
|
|
36
37
|
dbos/_migrations/versions/eab0cc1d9a14_job_queue.py,sha256=uvhFOtqbBreCePhAxZfIT0qCAI7BiZTou9wt6QnbY7c,1412
|
|
37
|
-
dbos/
|
|
38
|
-
dbos/
|
|
38
|
+
dbos/_migrations/versions/f4b9b32ba814_functionname_childid_op_outputs.py,sha256=m90Lc5YH0ZISSq1MyxND6oq3RZrZKrIqEsZtwJ1jWxA,1049
|
|
39
|
+
dbos/_outcome.py,sha256=EXxBg4jXCVJsByDQ1VOCIedmbeq_03S6d-p1vqQrLFU,6810
|
|
40
|
+
dbos/_queue.py,sha256=HqeybpS7kujs9laM-n0j7LWcJdwMl9okqm2hNSrUab8,3367
|
|
39
41
|
dbos/_recovery.py,sha256=4KyZb0XJEUGH7ekYT1kpx38i6y5vygPeH75Ta7RZjYo,2596
|
|
40
42
|
dbos/_registrations.py,sha256=_zy6k944Ll8QwqU12Kr3OP23ukVtm8axPNN1TS_kJRc,6717
|
|
41
43
|
dbos/_request.py,sha256=cX1B3Atlh160phgS35gF1VEEV4pD126c9F3BDgBmxZU,929
|
|
@@ -43,26 +45,26 @@ dbos/_roles.py,sha256=iOsgmIAf1XVzxs3gYWdGRe1B880YfOw5fpU7Jwx8_A8,2271
|
|
|
43
45
|
dbos/_scheduler.py,sha256=boG4BdcncFa3WxR97T5Oou4ppR0TgrEa2QQkjzpFEHU,2028
|
|
44
46
|
dbos/_schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
47
|
dbos/_schemas/application_database.py,sha256=KeyoPrF7hy_ODXV7QNike_VFSD74QBRfQ76D7QyE9HI,966
|
|
46
|
-
dbos/_schemas/system_database.py,sha256=
|
|
48
|
+
dbos/_schemas/system_database.py,sha256=W9eSpL7SZzQkxcEZ4W07BOcwkkDr35b9oCjUOgfHWek,5336
|
|
47
49
|
dbos/_serialization.py,sha256=YCYv0qKAwAZ1djZisBC7khvKqG-5OcIv9t9EC5PFIog,1743
|
|
48
|
-
dbos/_sys_db.py,sha256=
|
|
50
|
+
dbos/_sys_db.py,sha256=fEkJbIzavLX-7K_TFnJe8ST58cpWShpBIarhEVXu6Po,62816
|
|
49
51
|
dbos/_templates/dbos-db-starter/README.md,sha256=GhxhBj42wjTt1fWEtwNriHbJuKb66Vzu89G4pxNHw2g,930
|
|
50
52
|
dbos/_templates/dbos-db-starter/__package/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
|
-
dbos/_templates/dbos-db-starter/__package/main.py,sha256=
|
|
53
|
+
dbos/_templates/dbos-db-starter/__package/main.py,sha256=nJMN3ZD2lmwg4Dcgmiwqc-tQGuCJuJal2Xl85iA277U,2453
|
|
52
54
|
dbos/_templates/dbos-db-starter/__package/schema.py,sha256=7Z27JGC8yy7Z44cbVXIREYxtUhU4JVkLCp5Q7UahVQ0,260
|
|
53
55
|
dbos/_templates/dbos-db-starter/alembic.ini,sha256=VKBn4Gy8mMuCdY7Hip1jmo3wEUJ1VG1aW7EqY0_n-as,3695
|
|
54
|
-
dbos/_templates/dbos-db-starter/dbos-config.yaml.dbos,sha256=
|
|
56
|
+
dbos/_templates/dbos-db-starter/dbos-config.yaml.dbos,sha256=0wPktElM7kMB3OPHTXw4xBk9bgGKMqOHrrr7x_R23Z8,446
|
|
55
57
|
dbos/_templates/dbos-db-starter/migrations/env.py.dbos,sha256=GUV6sjkDzf9Vl6wkGEd0RSkK-ftRfV6EUwSQdd0qFXg,2392
|
|
56
58
|
dbos/_templates/dbos-db-starter/migrations/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
|
|
57
59
|
dbos/_templates/dbos-db-starter/migrations/versions/2024_07_31_180642_init.py,sha256=MpS7LGaJS0CpvsjhfDkp9EJqvMvVCjRPfUp4c0aE2ys,941
|
|
58
60
|
dbos/_templates/dbos-db-starter/start_postgres_docker.py,sha256=lQVLlYO5YkhGPEgPqwGc7Y8uDKse9HsWv5fynJEFJHM,1681
|
|
59
61
|
dbos/_tracer.py,sha256=dFDSFlta-rfA3-ahIRLYwnnoAOmlavdxAGllqwFgnCA,2440
|
|
60
62
|
dbos/_utils.py,sha256=wjOJzxN66IzL9p4dwcEmQACRQah_V09G6mJI2exQfOM,155
|
|
61
|
-
dbos/_workflow_commands.py,sha256=
|
|
63
|
+
dbos/_workflow_commands.py,sha256=SYp2khc9RSf6tjllG9CqT1zjBQnFTFq33ePXpvmRwME,5892
|
|
62
64
|
dbos/cli/_github_init.py,sha256=Y_bDF9gfO2jB1id4FV5h1oIxEJRWyqVjhb7bNEa5nQ0,3224
|
|
63
|
-
dbos/cli/_template_init.py,sha256
|
|
64
|
-
dbos/cli/cli.py,sha256=
|
|
65
|
+
dbos/cli/_template_init.py,sha256=-WW3kbq0W_Tq4WbMqb1UGJG3xvJb3woEY5VspG95Srk,2857
|
|
66
|
+
dbos/cli/cli.py,sha256=G55sZJxfmvUGvWr0hoIWwVZBy-fJdpCsTsZmuHT1CjA,16049
|
|
65
67
|
dbos/dbos-config.schema.json,sha256=HtF_njVTGHLdzBGZ4OrGQz3qbPPT0Go-iwd1PgFVTNg,5847
|
|
66
68
|
dbos/py.typed,sha256=QfzXT1Ktfk3Rj84akygc7_42z0lRpCq0Ilh8OXI6Zas,44
|
|
67
69
|
version/__init__.py,sha256=L4sNxecRuqdtSFdpUGX3TtBi9KL3k7YsZVIvv-fv9-A,1678
|
|
68
|
-
dbos-0.
|
|
70
|
+
dbos-0.25.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|