dbos 1.12.0a1__py3-none-any.whl → 1.12.0a3__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.
Potentially problematic release.
This version of dbos might be problematic. Click here for more details.
- dbos/_core.py +5 -17
- dbos/_fastapi.py +2 -0
- dbos/cli/cli.py +35 -6
- {dbos-1.12.0a1.dist-info → dbos-1.12.0a3.dist-info}/METADATA +1 -1
- {dbos-1.12.0a1.dist-info → dbos-1.12.0a3.dist-info}/RECORD +8 -8
- {dbos-1.12.0a1.dist-info → dbos-1.12.0a3.dist-info}/WHEEL +0 -0
- {dbos-1.12.0a1.dist-info → dbos-1.12.0a3.dist-info}/entry_points.txt +0 -0
- {dbos-1.12.0a1.dist-info → dbos-1.12.0a3.dist-info}/licenses/LICENSE +0 -0
dbos/_core.py
CHANGED
|
@@ -1156,27 +1156,15 @@ def decorate_step(
|
|
|
1156
1156
|
|
|
1157
1157
|
@wraps(func)
|
|
1158
1158
|
def wrapper(*args: Any, **kwargs: Any) -> Any:
|
|
1159
|
-
|
|
1160
|
-
#
|
|
1161
|
-
# No DBOS, just call the original function directly
|
|
1162
|
-
# In a step already, just call the original function directly.
|
|
1163
|
-
# In a workflow (that is not in a step already)
|
|
1164
|
-
# Not in a workflow (we will start the single op workflow)
|
|
1165
|
-
if not dbosreg.dbos or not dbosreg.dbos._launched:
|
|
1166
|
-
# Call the original function directly
|
|
1167
|
-
return func(*args, **kwargs)
|
|
1159
|
+
# If the step is called from a workflow, run it as a step.
|
|
1160
|
+
# Otherwise, run it as a normal function.
|
|
1168
1161
|
ctx = get_local_dbos_context()
|
|
1169
|
-
if ctx and ctx.
|
|
1170
|
-
|
|
1171
|
-
return func(*args, **kwargs)
|
|
1172
|
-
if ctx and ctx.is_within_workflow():
|
|
1173
|
-
assert ctx.is_workflow(), "Steps must be called from within workflows"
|
|
1162
|
+
if ctx and ctx.is_workflow():
|
|
1163
|
+
rr: Optional[str] = check_required_roles(func, fi)
|
|
1174
1164
|
with DBOSAssumeRole(rr):
|
|
1175
1165
|
return invoke_step(*args, **kwargs)
|
|
1176
1166
|
else:
|
|
1177
|
-
|
|
1178
|
-
assert tempwf
|
|
1179
|
-
return tempwf(*args, **kwargs)
|
|
1167
|
+
return func(*args, **kwargs)
|
|
1180
1168
|
|
|
1181
1169
|
wrapper = (
|
|
1182
1170
|
_mark_coroutine(wrapper) if inspect.iscoroutinefunction(func) else wrapper # type: ignore
|
dbos/_fastapi.py
CHANGED
|
@@ -83,4 +83,6 @@ def setup_fastapi_middleware(app: FastAPI, dbos: DBOS) -> None:
|
|
|
83
83
|
response = await call_next(request)
|
|
84
84
|
else:
|
|
85
85
|
response = await call_next(request)
|
|
86
|
+
if hasattr(response, "status_code"):
|
|
87
|
+
DBOS.span.set_attribute("responseCode", response.status_code)
|
|
86
88
|
return response
|
dbos/cli/cli.py
CHANGED
|
@@ -14,6 +14,7 @@ from rich import print as richprint
|
|
|
14
14
|
from rich.prompt import IntPrompt
|
|
15
15
|
from typing_extensions import Annotated, List
|
|
16
16
|
|
|
17
|
+
from dbos._context import SetWorkflowID
|
|
17
18
|
from dbos._debug import debug_workflow, parse_start_command
|
|
18
19
|
from dbos.cli.migration import grant_dbos_schema_permissions, migrate_dbos_databases
|
|
19
20
|
|
|
@@ -567,7 +568,9 @@ def resume(
|
|
|
567
568
|
start_client(db_url=db_url).resume_workflow(workflow_id=workflow_id)
|
|
568
569
|
|
|
569
570
|
|
|
570
|
-
@workflow.command(
|
|
571
|
+
@workflow.command(
|
|
572
|
+
help="[DEPRECATED - Use fork instead] Restart a workflow from the beginning with a new id"
|
|
573
|
+
)
|
|
571
574
|
def restart(
|
|
572
575
|
workflow_id: Annotated[str, typer.Argument()],
|
|
573
576
|
db_url: Annotated[
|
|
@@ -600,6 +603,22 @@ def fork(
|
|
|
600
603
|
help="Restart from this step",
|
|
601
604
|
),
|
|
602
605
|
] = 1,
|
|
606
|
+
forked_workflow_id: Annotated[
|
|
607
|
+
typing.Optional[str],
|
|
608
|
+
typer.Option(
|
|
609
|
+
"--forked-workflow-id",
|
|
610
|
+
"-f",
|
|
611
|
+
help="Custom ID for the forked workflow",
|
|
612
|
+
),
|
|
613
|
+
] = None,
|
|
614
|
+
application_version: Annotated[
|
|
615
|
+
typing.Optional[str],
|
|
616
|
+
typer.Option(
|
|
617
|
+
"--application-version",
|
|
618
|
+
"-v",
|
|
619
|
+
help="Custom application version for the forked workflow",
|
|
620
|
+
),
|
|
621
|
+
] = None,
|
|
603
622
|
db_url: Annotated[
|
|
604
623
|
typing.Optional[str],
|
|
605
624
|
typer.Option(
|
|
@@ -609,11 +628,21 @@ def fork(
|
|
|
609
628
|
),
|
|
610
629
|
] = None,
|
|
611
630
|
) -> None:
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
631
|
+
client = start_client(db_url=db_url)
|
|
632
|
+
|
|
633
|
+
if forked_workflow_id is not None:
|
|
634
|
+
with SetWorkflowID(forked_workflow_id):
|
|
635
|
+
status = client.fork_workflow(
|
|
636
|
+
workflow_id=workflow_id,
|
|
637
|
+
start_step=step,
|
|
638
|
+
application_version=application_version,
|
|
639
|
+
).get_status()
|
|
640
|
+
else:
|
|
641
|
+
status = client.fork_workflow(
|
|
642
|
+
workflow_id=workflow_id,
|
|
643
|
+
start_step=step,
|
|
644
|
+
application_version=application_version,
|
|
645
|
+
).get_status()
|
|
617
646
|
print(jsonpickle.encode(status, unpicklable=False))
|
|
618
647
|
|
|
619
648
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
dbos-1.12.
|
|
2
|
-
dbos-1.12.
|
|
3
|
-
dbos-1.12.
|
|
4
|
-
dbos-1.12.
|
|
1
|
+
dbos-1.12.0a3.dist-info/METADATA,sha256=i85-mbUNn-cIjrb1446QIw276DRDiV9AWW36ig8KgBk,13268
|
|
2
|
+
dbos-1.12.0a3.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
|
|
3
|
+
dbos-1.12.0a3.dist-info/entry_points.txt,sha256=_QOQ3tVfEjtjBlr1jS4sHqHya9lI2aIEIWkz8dqYp14,58
|
|
4
|
+
dbos-1.12.0a3.dist-info/licenses/LICENSE,sha256=VGZit_a5-kdw9WT6fY5jxAWVwGQzgLFyPWrcVVUhVNU,1067
|
|
5
5
|
dbos/__init__.py,sha256=NssPCubaBxdiKarOWa-wViz1hdJSkmBGcpLX_gQ4NeA,891
|
|
6
6
|
dbos/__main__.py,sha256=G7Exn-MhGrVJVDbgNlpzhfh8WMX_72t3_oJaFT9Lmt8,653
|
|
7
7
|
dbos/_admin_server.py,sha256=e8ELhcDWqR3_PNobnNgUvLGh5lzZq0yFSF6dvtzoQRI,16267
|
|
@@ -11,7 +11,7 @@ dbos/_client.py,sha256=_wMe4qnRSwiRZo74xdqTBetbHlIVy3vQifdSd7os1ZY,18213
|
|
|
11
11
|
dbos/_conductor/conductor.py,sha256=3E_hL3c9g9yWqKZkvI6KA0-ZzPMPRo06TOzT1esMiek,24114
|
|
12
12
|
dbos/_conductor/protocol.py,sha256=q3rgLxINFtWFigdOONc-4gX4vn66UmMlJQD6Kj8LnL4,7420
|
|
13
13
|
dbos/_context.py,sha256=8yZOTM1ehhk6URLa0EP9_20aOd6SZLhXBmcPwFEZDlA,26739
|
|
14
|
-
dbos/_core.py,sha256=
|
|
14
|
+
dbos/_core.py,sha256=tKAahVW7StJ_KuW4e1fWnCSE5-2SaI7RZIMWZWcuzm8,48848
|
|
15
15
|
dbos/_croniter.py,sha256=XHAyUyibs_59sJQfSNWkP7rqQY6_XrlfuuCxk4jYqek,47559
|
|
16
16
|
dbos/_dbos.py,sha256=bn5S_T6HZnDipYEVqhLq_F2Zo904fjT3J5oO15Frhrs,57715
|
|
17
17
|
dbos/_dbos_config.py,sha256=er8oF3e9zGlEG9KntX7uBSXrDuVvROtkzVidzXjOwUU,21746
|
|
@@ -19,7 +19,7 @@ dbos/_debug.py,sha256=99j2SChWmCPAlZoDmjsJGe77tpU2LEa8E2TtLAnnh7o,1831
|
|
|
19
19
|
dbos/_docker_pg_helper.py,sha256=tLJXWqZ4S-ExcaPnxg_i6cVxL6ZxrYlZjaGsklY-s2I,6115
|
|
20
20
|
dbos/_error.py,sha256=GwO0Ng4d4iB52brY09-Ss6Cz_V28Xc0D0cRCzZ6XmNM,8688
|
|
21
21
|
dbos/_event_loop.py,sha256=cvaFN9-II3MsHEOq8QoICc_8qSKrjikMlLfuhC3Y8Dk,2923
|
|
22
|
-
dbos/_fastapi.py,sha256=
|
|
22
|
+
dbos/_fastapi.py,sha256=cXqXAf0pM0wMM6YZPkRqHVToeRszzRasmk01HDj1aNc,3278
|
|
23
23
|
dbos/_flask.py,sha256=Npnakt-a3W5OykONFRkDRnumaDhTQmA0NPdUCGRYKXE,1652
|
|
24
24
|
dbos/_kafka.py,sha256=Gm4fHWl7gYb-i5BMvwNwm5Km3z8zQpseqdMgqgFjlGI,4252
|
|
25
25
|
dbos/_kafka_message.py,sha256=NYvOXNG3Qn7bghn1pv3fg4Pbs86ILZGcK4IB-MLUNu0,409
|
|
@@ -66,9 +66,9 @@ dbos/_utils.py,sha256=uywq1QrjMwy17btjxW4bES49povlQwYwYbvKwMT6C2U,1575
|
|
|
66
66
|
dbos/_workflow_commands.py,sha256=EmmAaQfRWeOZm_WPTznuU-O3he3jiSzzT9VpYrhxugE,4835
|
|
67
67
|
dbos/cli/_github_init.py,sha256=Y_bDF9gfO2jB1id4FV5h1oIxEJRWyqVjhb7bNEa5nQ0,3224
|
|
68
68
|
dbos/cli/_template_init.py,sha256=7JBcpMqP1r2mfCnvWatu33z8ctEGHJarlZYKgB83cXE,2972
|
|
69
|
-
dbos/cli/cli.py,sha256=
|
|
69
|
+
dbos/cli/cli.py,sha256=btUbl0L_1cf46W8z0Hi6nPBCLaSqY9I4c1eZCG7obow,23128
|
|
70
70
|
dbos/cli/migration.py,sha256=eI0sc0vYq2iUP3cBHPfTa6WHCyDBr8ld9nRxEZZzFrU,3316
|
|
71
71
|
dbos/dbos-config.schema.json,sha256=CjaspeYmOkx6Ip_pcxtmfXJTn_YGdSx_0pcPBF7KZmo,6060
|
|
72
72
|
dbos/py.typed,sha256=QfzXT1Ktfk3Rj84akygc7_42z0lRpCq0Ilh8OXI6Zas,44
|
|
73
73
|
version/__init__.py,sha256=L4sNxecRuqdtSFdpUGX3TtBi9KL3k7YsZVIvv-fv9-A,1678
|
|
74
|
-
dbos-1.12.
|
|
74
|
+
dbos-1.12.0a3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|