dbos 1.7.0a4__tar.gz → 1.7.0a5__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.

Potentially problematic release.


This version of dbos might be problematic. Click here for more details.

Files changed (108) hide show
  1. {dbos-1.7.0a4 → dbos-1.7.0a5}/PKG-INFO +1 -1
  2. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_core.py +4 -1
  3. {dbos-1.7.0a4 → dbos-1.7.0a5}/pyproject.toml +1 -1
  4. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_dbos.py +26 -0
  5. {dbos-1.7.0a4 → dbos-1.7.0a5}/LICENSE +0 -0
  6. {dbos-1.7.0a4 → dbos-1.7.0a5}/README.md +0 -0
  7. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/__init__.py +0 -0
  8. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/__main__.py +0 -0
  9. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_admin_server.py +0 -0
  10. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_app_db.py +0 -0
  11. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_classproperty.py +0 -0
  12. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_client.py +0 -0
  13. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_conductor/conductor.py +0 -0
  14. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_conductor/protocol.py +0 -0
  15. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_context.py +0 -0
  16. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_croniter.py +0 -0
  17. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_dbos.py +0 -0
  18. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_dbos_config.py +0 -0
  19. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_debug.py +0 -0
  20. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_docker_pg_helper.py +0 -0
  21. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_error.py +0 -0
  22. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_event_loop.py +0 -0
  23. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_fastapi.py +0 -0
  24. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_flask.py +0 -0
  25. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_kafka.py +0 -0
  26. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_kafka_message.py +0 -0
  27. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_logger.py +0 -0
  28. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_migrations/env.py +0 -0
  29. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_migrations/script.py.mako +0 -0
  30. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_migrations/versions/04ca4f231047_workflow_queues_executor_id.py +0 -0
  31. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_migrations/versions/27ac6900c6ad_add_queue_dedup.py +0 -0
  32. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_migrations/versions/50f3227f0b4b_fix_job_queue.py +0 -0
  33. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_migrations/versions/5c361fc04708_added_system_tables.py +0 -0
  34. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_migrations/versions/66478e1b95e5_consolidate_queues.py +0 -0
  35. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_migrations/versions/83f3732ae8e7_workflow_timeout.py +0 -0
  36. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_migrations/versions/933e86bdac6a_add_queue_priority.py +0 -0
  37. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_migrations/versions/a3b18ad34abe_added_triggers.py +0 -0
  38. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_migrations/versions/d76646551a6b_job_queue_limiter.py +0 -0
  39. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_migrations/versions/d76646551a6c_workflow_queue.py +0 -0
  40. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_migrations/versions/d994145b47b6_consolidate_inputs.py +0 -0
  41. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_migrations/versions/eab0cc1d9a14_job_queue.py +0 -0
  42. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_migrations/versions/f4b9b32ba814_functionname_childid_op_outputs.py +0 -0
  43. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_outcome.py +0 -0
  44. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_queue.py +0 -0
  45. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_recovery.py +0 -0
  46. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_registrations.py +0 -0
  47. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_roles.py +0 -0
  48. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_scheduler.py +0 -0
  49. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_schemas/__init__.py +0 -0
  50. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_schemas/application_database.py +0 -0
  51. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_schemas/system_database.py +0 -0
  52. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_serialization.py +0 -0
  53. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_sys_db.py +0 -0
  54. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_templates/dbos-db-starter/README.md +0 -0
  55. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_templates/dbos-db-starter/__package/__init__.py +0 -0
  56. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_templates/dbos-db-starter/__package/main.py.dbos +0 -0
  57. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_templates/dbos-db-starter/__package/schema.py +0 -0
  58. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_templates/dbos-db-starter/alembic.ini +0 -0
  59. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_templates/dbos-db-starter/dbos-config.yaml.dbos +0 -0
  60. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_templates/dbos-db-starter/migrations/env.py.dbos +0 -0
  61. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_templates/dbos-db-starter/migrations/script.py.mako +0 -0
  62. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_templates/dbos-db-starter/migrations/versions/2024_07_31_180642_init.py +0 -0
  63. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_templates/dbos-db-starter/start_postgres_docker.py +0 -0
  64. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_tracer.py +0 -0
  65. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_utils.py +0 -0
  66. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/_workflow_commands.py +0 -0
  67. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/cli/_github_init.py +0 -0
  68. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/cli/_template_init.py +0 -0
  69. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/cli/cli.py +0 -0
  70. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/dbos-config.schema.json +0 -0
  71. {dbos-1.7.0a4 → dbos-1.7.0a5}/dbos/py.typed +0 -0
  72. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/__init__.py +0 -0
  73. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/atexit_no_ctor.py +0 -0
  74. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/atexit_no_launch.py +0 -0
  75. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/classdefs.py +0 -0
  76. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/client_collateral.py +0 -0
  77. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/client_worker.py +0 -0
  78. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/conftest.py +0 -0
  79. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/dupname_classdefs1.py +0 -0
  80. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/dupname_classdefsa.py +0 -0
  81. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/more_classdefs.py +0 -0
  82. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/queuedworkflow.py +0 -0
  83. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_admin_server.py +0 -0
  84. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_async.py +0 -0
  85. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_classdecorators.py +0 -0
  86. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_cli.py +0 -0
  87. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_client.py +0 -0
  88. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_concurrency.py +0 -0
  89. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_config.py +0 -0
  90. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_croniter.py +0 -0
  91. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_debug.py +0 -0
  92. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_docker_secrets.py +0 -0
  93. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_failures.py +0 -0
  94. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_fastapi.py +0 -0
  95. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_fastapi_roles.py +0 -0
  96. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_flask.py +0 -0
  97. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_kafka.py +0 -0
  98. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_outcome.py +0 -0
  99. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_package.py +0 -0
  100. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_queue.py +0 -0
  101. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_scheduler.py +0 -0
  102. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_schema_migration.py +0 -0
  103. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_singleton.py +0 -0
  104. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_spans.py +0 -0
  105. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_sqlalchemy.py +0 -0
  106. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_workflow_introspection.py +0 -0
  107. {dbos-1.7.0a4 → dbos-1.7.0a5}/tests/test_workflow_management.py +0 -0
  108. {dbos-1.7.0a4 → dbos-1.7.0a5}/version/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dbos
3
- Version: 1.7.0a4
3
+ Version: 1.7.0a5
4
4
  Summary: Ultra-lightweight durable execution in Python
5
5
  Author-Email: "DBOS, Inc." <contact@dbos.dev>
6
6
  License: MIT
@@ -1157,13 +1157,16 @@ def decorate_step(
1157
1157
  def wrapper(*args: Any, **kwargs: Any) -> Any:
1158
1158
  rr: Optional[str] = check_required_roles(func, fi)
1159
1159
  # Entering step is allowed:
1160
+ # No DBOS, just call the original function directly
1160
1161
  # In a step already, just call the original function directly.
1161
1162
  # In a workflow (that is not in a step already)
1162
1163
  # Not in a workflow (we will start the single op workflow)
1164
+ if not dbosreg.dbos or not dbosreg.dbos._launched:
1165
+ # Call the original function directly
1166
+ return func(*args, **kwargs)
1163
1167
  ctx = get_local_dbos_context()
1164
1168
  if ctx and ctx.is_step():
1165
1169
  # Call the original function directly
1166
-
1167
1170
  return func(*args, **kwargs)
1168
1171
  if ctx and ctx.is_within_workflow():
1169
1172
  assert ctx.is_workflow(), "Steps must be called from within workflows"
@@ -27,7 +27,7 @@ dependencies = [
27
27
  ]
28
28
  requires-python = ">=3.9"
29
29
  readme = "README.md"
30
- version = "1.7.0a4"
30
+ version = "1.7.0a5"
31
31
 
32
32
  [project.license]
33
33
  text = "MIT"
@@ -1608,3 +1608,29 @@ def test_custom_names(dbos: DBOS) -> None:
1608
1608
  handle = DBOS.start_workflow(workflow, value) # type: ignore
1609
1609
  assert handle.get_status().name == another_workflow
1610
1610
  assert handle.get_result() == value # type: ignore
1611
+
1612
+
1613
+ @pytest.mark.asyncio
1614
+ async def test_step_without_dbos(dbos: DBOS, config: DBOSConfig) -> None:
1615
+ DBOS.destroy(destroy_registry=True)
1616
+
1617
+ @DBOS.step()
1618
+ def step(x: int) -> int:
1619
+ return x
1620
+
1621
+ @DBOS.step()
1622
+ async def async_step(x: int) -> int:
1623
+ return x
1624
+
1625
+ assert step(5) == 5
1626
+ assert await async_step(5) == 5
1627
+
1628
+ DBOS(config=config)
1629
+
1630
+ assert step(5) == 5
1631
+ assert await async_step(5) == 5
1632
+
1633
+ DBOS.launch()
1634
+
1635
+ assert step(5) == 5
1636
+ assert await async_step(5) == 5
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes