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 CHANGED
@@ -1156,27 +1156,15 @@ def decorate_step(
1156
1156
 
1157
1157
  @wraps(func)
1158
1158
  def wrapper(*args: Any, **kwargs: Any) -> Any:
1159
- rr: Optional[str] = check_required_roles(func, fi)
1160
- # Entering step is allowed:
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.is_step():
1170
- # Call the original function directly
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
- tempwf = dbosreg.workflow_info_map.get("<temp>." + step_name)
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(help="Restart a workflow from the beginning with a new id")
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
- status = (
613
- start_client(db_url=db_url)
614
- .fork_workflow(workflow_id=workflow_id, start_step=step)
615
- .get_status()
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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dbos
3
- Version: 1.12.0a1
3
+ Version: 1.12.0a3
4
4
  Summary: Ultra-lightweight durable execution in Python
5
5
  Author-Email: "DBOS, Inc." <contact@dbos.dev>
6
6
  License: MIT
@@ -1,7 +1,7 @@
1
- dbos-1.12.0a1.dist-info/METADATA,sha256=C0KYncUnaBZoIUcbp8aiGYugvzqGDUYEejRyhriIUac,13268
2
- dbos-1.12.0a1.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
3
- dbos-1.12.0a1.dist-info/entry_points.txt,sha256=_QOQ3tVfEjtjBlr1jS4sHqHya9lI2aIEIWkz8dqYp14,58
4
- dbos-1.12.0a1.dist-info/licenses/LICENSE,sha256=VGZit_a5-kdw9WT6fY5jxAWVwGQzgLFyPWrcVVUhVNU,1067
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=KtIA7VZDeuKrrJT6Cy2z0YeT9dDDxelj69LIJ-4Gors,49536
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=T7YlVY77ASqyTqq0aAPclZ9YzlXdGTT0lEYSwSgt1EE,3151
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=ey7E-lNFgvUWhsd-mkFwZvTdYorv6hU2zsMOS23n1yQ,22214
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.0a1.dist-info/RECORD,,
74
+ dbos-1.12.0a3.dist-info/RECORD,,