dbos 0.23.0a13__py3-none-any.whl → 0.24.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.
Potentially problematic release.
This version of dbos might be problematic. Click here for more details.
- dbos/__init__.py +2 -1
- dbos/_app_db.py +16 -2
- dbos/_conductor/conductor.py +122 -56
- dbos/_conductor/protocol.py +29 -0
- dbos/_core.py +159 -39
- dbos/_db_wizard.py +18 -14
- dbos/_dbos.py +96 -31
- dbos/_dbos_config.py +352 -58
- dbos/_debug.py +7 -1
- dbos/_error.py +9 -3
- dbos/_logger.py +8 -7
- dbos/_queue.py +14 -3
- dbos/_scheduler.py +5 -2
- dbos/_schemas/system_database.py +1 -1
- dbos/_sys_db.py +35 -26
- dbos/_templates/dbos-db-starter/dbos-config.yaml.dbos +2 -4
- dbos/_tracer.py +5 -6
- dbos/cli/cli.py +1 -1
- dbos/dbos-config.schema.json +4 -1
- {dbos-0.23.0a13.dist-info → dbos-0.24.0.dist-info}/METADATA +1 -2
- {dbos-0.23.0a13.dist-info → dbos-0.24.0.dist-info}/RECORD +24 -24
- {dbos-0.23.0a13.dist-info → dbos-0.24.0.dist-info}/WHEEL +0 -0
- {dbos-0.23.0a13.dist-info → dbos-0.24.0.dist-info}/entry_points.txt +0 -0
- {dbos-0.23.0a13.dist-info → dbos-0.24.0.dist-info}/licenses/LICENSE +0 -0
dbos/_scheduler.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import threading
|
|
2
|
+
import traceback
|
|
2
3
|
from datetime import datetime, timezone
|
|
3
4
|
from typing import TYPE_CHECKING, Callable
|
|
4
5
|
|
|
@@ -33,8 +34,10 @@ def scheduler_loop(
|
|
|
33
34
|
with SetWorkflowID(f"sched-{func.__qualname__}-{nextExecTime.isoformat()}"):
|
|
34
35
|
try:
|
|
35
36
|
scheduler_queue.enqueue(func, nextExecTime, datetime.now(timezone.utc))
|
|
36
|
-
except Exception
|
|
37
|
-
dbos_logger.warning(
|
|
37
|
+
except Exception:
|
|
38
|
+
dbos_logger.warning(
|
|
39
|
+
f"Exception encountered in scheduler thread: {traceback.format_exc()})"
|
|
40
|
+
)
|
|
38
41
|
|
|
39
42
|
|
|
40
43
|
def scheduled(
|
dbos/_schemas/system_database.py
CHANGED
|
@@ -154,7 +154,7 @@ class SystemSchema:
|
|
|
154
154
|
nullable=False,
|
|
155
155
|
primary_key=True,
|
|
156
156
|
),
|
|
157
|
-
Column("executor_id", Text),
|
|
157
|
+
# Column("executor_id", Text), # This column is deprecated. Do *not* use it.
|
|
158
158
|
Column("queue_name", Text, nullable=False),
|
|
159
159
|
Column(
|
|
160
160
|
"created_at_epoch_ms",
|
dbos/_sys_db.py
CHANGED
|
@@ -202,7 +202,11 @@ class SystemDatabase:
|
|
|
202
202
|
|
|
203
203
|
# Create a connection pool for the system database
|
|
204
204
|
self.engine = sa.create_engine(
|
|
205
|
-
system_db_url,
|
|
205
|
+
system_db_url,
|
|
206
|
+
pool_size=config["database"]["sys_db_pool_size"],
|
|
207
|
+
max_overflow=0,
|
|
208
|
+
pool_timeout=30,
|
|
209
|
+
connect_args={"connect_timeout": 10},
|
|
206
210
|
)
|
|
207
211
|
|
|
208
212
|
# Run a schema migration for the system database
|
|
@@ -622,9 +626,11 @@ class SystemDatabase:
|
|
|
622
626
|
with self.engine.begin() as c:
|
|
623
627
|
row = c.execute(cmd).fetchone()
|
|
624
628
|
if row is not None and row[0] != inputs:
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
629
|
+
# In a distributed environment, scheduled workflows are enqueued multiple times with slightly different timestamps
|
|
630
|
+
if not workflow_uuid.startswith("sched-"):
|
|
631
|
+
dbos_logger.warning(
|
|
632
|
+
f"Workflow {workflow_uuid} has been called multiple times with different inputs"
|
|
633
|
+
)
|
|
628
634
|
# TODO: actually changing the input
|
|
629
635
|
if workflow_uuid in self._temp_txn_wf_ids:
|
|
630
636
|
# Clean up the single-transaction tracking sets
|
|
@@ -1324,24 +1330,32 @@ class SystemDatabase:
|
|
|
1324
1330
|
# If there is a global or local concurrency limit N, select only the N oldest enqueued
|
|
1325
1331
|
# functions, else select all of them.
|
|
1326
1332
|
|
|
1327
|
-
# First lets figure out how many tasks
|
|
1333
|
+
# First lets figure out how many tasks are eligible for dequeue.
|
|
1334
|
+
# This means figuring out how many unstarted tasks are within the local and global concurrency limits
|
|
1328
1335
|
running_tasks_query = (
|
|
1329
1336
|
sa.select(
|
|
1330
|
-
SystemSchema.
|
|
1337
|
+
SystemSchema.workflow_status.c.executor_id,
|
|
1331
1338
|
sa.func.count().label("task_count"),
|
|
1332
1339
|
)
|
|
1340
|
+
.select_from(
|
|
1341
|
+
SystemSchema.workflow_queue.join(
|
|
1342
|
+
SystemSchema.workflow_status,
|
|
1343
|
+
SystemSchema.workflow_queue.c.workflow_uuid
|
|
1344
|
+
== SystemSchema.workflow_status.c.workflow_uuid,
|
|
1345
|
+
)
|
|
1346
|
+
)
|
|
1333
1347
|
.where(SystemSchema.workflow_queue.c.queue_name == queue.name)
|
|
1334
1348
|
.where(
|
|
1335
|
-
SystemSchema.workflow_queue.c.
|
|
1349
|
+
SystemSchema.workflow_queue.c.started_at_epoch_ms.isnot(
|
|
1336
1350
|
None
|
|
1337
|
-
) # Task is
|
|
1351
|
+
) # Task is started
|
|
1338
1352
|
)
|
|
1339
1353
|
.where(
|
|
1340
1354
|
SystemSchema.workflow_queue.c.completed_at_epoch_ms.is_(
|
|
1341
1355
|
None
|
|
1342
|
-
) # Task is not completed
|
|
1356
|
+
) # Task is not completed.
|
|
1343
1357
|
)
|
|
1344
|
-
.group_by(SystemSchema.
|
|
1358
|
+
.group_by(SystemSchema.workflow_status.c.executor_id)
|
|
1345
1359
|
)
|
|
1346
1360
|
running_tasks_result = c.execute(running_tasks_query).fetchall()
|
|
1347
1361
|
running_tasks_result_dict = {row[0]: row[1] for row in running_tasks_result}
|
|
@@ -1351,12 +1365,6 @@ class SystemDatabase:
|
|
|
1351
1365
|
|
|
1352
1366
|
max_tasks = float("inf")
|
|
1353
1367
|
if queue.worker_concurrency is not None:
|
|
1354
|
-
# Worker local concurrency limit should always be >= running_tasks_for_this_worker
|
|
1355
|
-
# This should never happen but a check + warning doesn't hurt
|
|
1356
|
-
if running_tasks_for_this_worker > queue.worker_concurrency:
|
|
1357
|
-
dbos_logger.warning(
|
|
1358
|
-
f"Number of tasks on this worker ({running_tasks_for_this_worker}) exceeds the worker concurrency limit ({queue.worker_concurrency})"
|
|
1359
|
-
)
|
|
1360
1368
|
max_tasks = max(
|
|
1361
1369
|
0, queue.worker_concurrency - running_tasks_for_this_worker
|
|
1362
1370
|
)
|
|
@@ -1371,16 +1379,14 @@ class SystemDatabase:
|
|
|
1371
1379
|
available_tasks = max(0, queue.concurrency - total_running_tasks)
|
|
1372
1380
|
max_tasks = min(max_tasks, available_tasks)
|
|
1373
1381
|
|
|
1374
|
-
# Lookup tasks
|
|
1382
|
+
# Lookup unstarted/uncompleted tasks (not running)
|
|
1375
1383
|
query = (
|
|
1376
1384
|
sa.select(
|
|
1377
1385
|
SystemSchema.workflow_queue.c.workflow_uuid,
|
|
1378
|
-
SystemSchema.workflow_queue.c.started_at_epoch_ms,
|
|
1379
|
-
SystemSchema.workflow_queue.c.executor_id,
|
|
1380
1386
|
)
|
|
1381
1387
|
.where(SystemSchema.workflow_queue.c.queue_name == queue.name)
|
|
1388
|
+
.where(SystemSchema.workflow_queue.c.started_at_epoch_ms == None)
|
|
1382
1389
|
.where(SystemSchema.workflow_queue.c.completed_at_epoch_ms == None)
|
|
1383
|
-
.where(SystemSchema.workflow_queue.c.executor_id == None)
|
|
1384
1390
|
.order_by(SystemSchema.workflow_queue.c.created_at_epoch_ms.asc())
|
|
1385
1391
|
.with_for_update(nowait=True) # Error out early
|
|
1386
1392
|
)
|
|
@@ -1423,7 +1429,7 @@ class SystemDatabase:
|
|
|
1423
1429
|
c.execute(
|
|
1424
1430
|
SystemSchema.workflow_queue.update()
|
|
1425
1431
|
.where(SystemSchema.workflow_queue.c.workflow_uuid == id)
|
|
1426
|
-
.values(started_at_epoch_ms=start_time_ms
|
|
1432
|
+
.values(started_at_epoch_ms=start_time_ms)
|
|
1427
1433
|
)
|
|
1428
1434
|
ret_ids.append(id)
|
|
1429
1435
|
|
|
@@ -1468,23 +1474,26 @@ class SystemDatabase:
|
|
|
1468
1474
|
|
|
1469
1475
|
with self.engine.connect() as conn:
|
|
1470
1476
|
with conn.begin() as transaction:
|
|
1477
|
+
# Reset the start time in the queue to mark it as not started
|
|
1471
1478
|
res = conn.execute(
|
|
1472
1479
|
sa.update(SystemSchema.workflow_queue)
|
|
1473
1480
|
.where(SystemSchema.workflow_queue.c.workflow_uuid == workflow_id)
|
|
1474
|
-
.
|
|
1481
|
+
.where(
|
|
1482
|
+
SystemSchema.workflow_queue.c.completed_at_epoch_ms.is_(None)
|
|
1483
|
+
)
|
|
1484
|
+
.values(started_at_epoch_ms=None)
|
|
1475
1485
|
)
|
|
1476
1486
|
|
|
1477
|
-
# If no rows were affected, the workflow is not anymore in the queue
|
|
1487
|
+
# If no rows were affected, the workflow is not anymore in the queue or was already completed
|
|
1478
1488
|
if res.rowcount == 0:
|
|
1479
1489
|
transaction.rollback()
|
|
1480
1490
|
return False
|
|
1481
1491
|
|
|
1492
|
+
# Reset the status of the task to "ENQUEUED"
|
|
1482
1493
|
res = conn.execute(
|
|
1483
1494
|
sa.update(SystemSchema.workflow_status)
|
|
1484
1495
|
.where(SystemSchema.workflow_status.c.workflow_uuid == workflow_id)
|
|
1485
|
-
.values(
|
|
1486
|
-
executor_id=None, status=WorkflowStatusString.ENQUEUED.value
|
|
1487
|
-
)
|
|
1496
|
+
.values(status=WorkflowStatusString.ENQUEUED.value)
|
|
1488
1497
|
)
|
|
1489
1498
|
if res.rowcount == 0:
|
|
1490
1499
|
# This should never happen
|
dbos/_tracer.py
CHANGED
|
@@ -27,14 +27,13 @@ class DBOSTracer:
|
|
|
27
27
|
if os.environ.get("DBOS__CONSOLE_TRACES", None) is not None:
|
|
28
28
|
processor = BatchSpanProcessor(ConsoleSpanExporter())
|
|
29
29
|
provider.add_span_processor(processor)
|
|
30
|
-
|
|
30
|
+
otlp_traces_endpoints = (
|
|
31
31
|
config.get("telemetry", {}).get("OTLPExporter", {}).get("tracesEndpoint") # type: ignore
|
|
32
32
|
)
|
|
33
|
-
if
|
|
34
|
-
|
|
35
|
-
OTLPSpanExporter(endpoint=
|
|
36
|
-
|
|
37
|
-
provider.add_span_processor(processor)
|
|
33
|
+
if otlp_traces_endpoints:
|
|
34
|
+
for e in otlp_traces_endpoints:
|
|
35
|
+
processor = BatchSpanProcessor(OTLPSpanExporter(endpoint=e))
|
|
36
|
+
provider.add_span_processor(processor)
|
|
38
37
|
trace.set_tracer_provider(provider)
|
|
39
38
|
|
|
40
39
|
def set_provider(self, provider: Optional[TracerProvider]) -> None:
|
dbos/cli/cli.py
CHANGED
|
@@ -41,7 +41,7 @@ def _on_windows() -> bool:
|
|
|
41
41
|
help="Start your DBOS application using the start commands in 'dbos-config.yaml'"
|
|
42
42
|
)
|
|
43
43
|
def start() -> None:
|
|
44
|
-
config = load_config()
|
|
44
|
+
config = load_config(run_process_config=False, silent=True)
|
|
45
45
|
start_commands = config["runtimeConfig"]["start"]
|
|
46
46
|
typer.echo("Executing start commands from 'dbos-config.yaml'")
|
|
47
47
|
for command in start_commands:
|
dbos/dbos-config.schema.json
CHANGED
|
@@ -12,10 +12,13 @@
|
|
|
12
12
|
"type": "string",
|
|
13
13
|
"description": "The language used in your application",
|
|
14
14
|
"enum": [
|
|
15
|
-
"typescript",
|
|
16
15
|
"python"
|
|
17
16
|
]
|
|
18
17
|
},
|
|
18
|
+
"database_url": {
|
|
19
|
+
"type": ["string", "null"],
|
|
20
|
+
"description": "The URL of the application database"
|
|
21
|
+
},
|
|
19
22
|
"database": {
|
|
20
23
|
"type": "object",
|
|
21
24
|
"additionalProperties": false,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dbos
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.24.0
|
|
4
4
|
Summary: Ultra-lightweight durable execution in Python
|
|
5
5
|
Author-Email: "DBOS, Inc." <contact@dbos.dev>
|
|
6
6
|
License: MIT
|
|
@@ -18,7 +18,6 @@ Requires-Dist: python-dateutil>=2.9.0.post0
|
|
|
18
18
|
Requires-Dist: fastapi[standard]>=0.115.2
|
|
19
19
|
Requires-Dist: tomlkit>=0.13.2
|
|
20
20
|
Requires-Dist: psycopg[binary]>=3.1
|
|
21
|
-
Requires-Dist: fastapi-cli==0.0.5
|
|
22
21
|
Requires-Dist: docker>=7.1.0
|
|
23
22
|
Requires-Dist: cryptography>=43.0.3
|
|
24
23
|
Requires-Dist: rich>=13.9.4
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
dbos-0.
|
|
2
|
-
dbos-0.
|
|
3
|
-
dbos-0.
|
|
4
|
-
dbos-0.
|
|
5
|
-
dbos/__init__.py,sha256=
|
|
1
|
+
dbos-0.24.0.dist-info/METADATA,sha256=I8cwgtPEDDay3wENxVS_eGDuAY8Wh8YHlCjSrcWfLpI,5519
|
|
2
|
+
dbos-0.24.0.dist-info/WHEEL,sha256=thaaA2w1JzcGC48WYufAs8nrYZjJm8LqNfnXFOFyCC4,90
|
|
3
|
+
dbos-0.24.0.dist-info/entry_points.txt,sha256=_QOQ3tVfEjtjBlr1jS4sHqHya9lI2aIEIWkz8dqYp14,58
|
|
4
|
+
dbos-0.24.0.dist-info/licenses/LICENSE,sha256=VGZit_a5-kdw9WT6fY5jxAWVwGQzgLFyPWrcVVUhVNU,1067
|
|
5
|
+
dbos/__init__.py,sha256=uq9LP5uY96kIS9N0yKqlvDwADmtg_Hl30uSUhyuUr-4,754
|
|
6
6
|
dbos/__main__.py,sha256=P7jAr-7L9XE5mrsQ7i4b-bLr2ap1tCQfhMByLCRWDj0,568
|
|
7
7
|
dbos/_admin_server.py,sha256=YiVn5lywz2Vg8_juyNHOYl0HVEy48--7b4phwK7r92o,5732
|
|
8
|
-
dbos/_app_db.py,sha256=
|
|
8
|
+
dbos/_app_db.py,sha256=4EGrYL14rVx96TXn34hoibN9ltf4-2DKcj6nd-HvBxA,6262
|
|
9
9
|
dbos/_classproperty.py,sha256=f0X-_BySzn3yFDRKB2JpCbLYQ9tLwt1XftfshvY7CBs,626
|
|
10
10
|
dbos/_cloudutils/authentication.py,sha256=V0fCWQN9stCkhbuuxgPTGpvuQcDqfU3KAxPAh01vKW4,5007
|
|
11
11
|
dbos/_cloudutils/cloudutils.py,sha256=YC7jGsIopT0KveLsqbRpQk2KlRBk-nIRC_UCgep4f3o,7797
|
|
12
12
|
dbos/_cloudutils/databases.py,sha256=_shqaqSvhY4n2ScgQ8IP5PDZvzvcx3YBKV8fj-cxhSY,8543
|
|
13
|
-
dbos/_conductor/conductor.py,sha256=
|
|
14
|
-
dbos/_conductor/protocol.py,sha256=
|
|
13
|
+
dbos/_conductor/conductor.py,sha256=udu8atyYYrs5bCfokie9ttjHlIg0FMo1p0-24IoneFs,15252
|
|
14
|
+
dbos/_conductor/protocol.py,sha256=MWY3SuIeY6GN2Vg3wQjcxiT0d4zz4ccGzdEkmYYJ6t0,5633
|
|
15
15
|
dbos/_context.py,sha256=Ue5qu3rzLfRmPkz-UUZi9ZS8iXpapRN0NTM4mbA2QmQ,17738
|
|
16
|
-
dbos/_core.py,sha256=
|
|
16
|
+
dbos/_core.py,sha256=_a_rSkAWNLoHqzQbkqez0mpctkjDs301123ti3wmKHk,41340
|
|
17
17
|
dbos/_croniter.py,sha256=XHAyUyibs_59sJQfSNWkP7rqQY6_XrlfuuCxk4jYqek,47559
|
|
18
|
-
dbos/_db_wizard.py,sha256=
|
|
19
|
-
dbos/_dbos.py,sha256=
|
|
20
|
-
dbos/_dbos_config.py,sha256=
|
|
21
|
-
dbos/_debug.py,sha256=
|
|
22
|
-
dbos/_error.py,sha256=
|
|
18
|
+
dbos/_db_wizard.py,sha256=YEW2qoy6hfHQv2fZ_4nHiPUeHMFofPpNTolJ1Kvw7AQ,8394
|
|
19
|
+
dbos/_dbos.py,sha256=ymQnOZ8RQehcPVAjjJipoW8StxM7bktTyT_4a_Zlse8,43599
|
|
20
|
+
dbos/_dbos_config.py,sha256=rWGy8mB7uLGRgkAybBEz-ogsJQYJpXY41cXNy5eITMs,21513
|
|
21
|
+
dbos/_debug.py,sha256=mmgvLkqlrljMBBow9wk01PPur9kUf2rI_11dTJXY4gw,1822
|
|
22
|
+
dbos/_error.py,sha256=B6Y9XLS1f6yrawxB2uAEYFMxFwk9BHhdxPNddKco-Fw,5399
|
|
23
23
|
dbos/_fastapi.py,sha256=ke03vqsSYDnO6XeOtOVFXj0-f-v1MGsOxa9McaROvNc,3616
|
|
24
24
|
dbos/_flask.py,sha256=DZKUZR5-xOzPI7tYZ53r2PvvHVoAb8SYwLzMVFsVfjI,2608
|
|
25
25
|
dbos/_kafka.py,sha256=o6DbwnsYRDtvVTZVsN7BAK8cdP79AfoWX3Q7CGY2Yuo,4199
|
|
26
26
|
dbos/_kafka_message.py,sha256=NYvOXNG3Qn7bghn1pv3fg4Pbs86ILZGcK4IB-MLUNu0,409
|
|
27
|
-
dbos/_logger.py,sha256=
|
|
27
|
+
dbos/_logger.py,sha256=pSP-CyzHUR6ypousTaeKe2zYMKSqvrbsFru8HJpBHsA,3546
|
|
28
28
|
dbos/_migrations/env.py,sha256=38SIGVbmn_VV2x2u1aHLcPOoWgZ84eCymf3g_NljmbU,1626
|
|
29
29
|
dbos/_migrations/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
|
|
30
30
|
dbos/_migrations/versions/04ca4f231047_workflow_queues_executor_id.py,sha256=ICLPl8CN9tQXMsLDsAj8z1TsL831-Z3F8jSBvrR-wyw,736
|
|
@@ -35,34 +35,34 @@ dbos/_migrations/versions/d76646551a6b_job_queue_limiter.py,sha256=8PyFi8rd6CN-m
|
|
|
35
35
|
dbos/_migrations/versions/d76646551a6c_workflow_queue.py,sha256=G942nophZ2uC2vc4hGBC02Ptng1715roTjY3xiyzZU4,729
|
|
36
36
|
dbos/_migrations/versions/eab0cc1d9a14_job_queue.py,sha256=uvhFOtqbBreCePhAxZfIT0qCAI7BiZTou9wt6QnbY7c,1412
|
|
37
37
|
dbos/_outcome.py,sha256=FDMgWVjZ06vm9xO-38H17mTqBImUYQxgKs_bDCSIAhE,6648
|
|
38
|
-
dbos/_queue.py,sha256=
|
|
38
|
+
dbos/_queue.py,sha256=OWUtbBAqdkDAArFWkwlF8STxykV4iQmrZxrF-_lavh4,3341
|
|
39
39
|
dbos/_recovery.py,sha256=4KyZb0XJEUGH7ekYT1kpx38i6y5vygPeH75Ta7RZjYo,2596
|
|
40
40
|
dbos/_registrations.py,sha256=_zy6k944Ll8QwqU12Kr3OP23ukVtm8axPNN1TS_kJRc,6717
|
|
41
41
|
dbos/_request.py,sha256=cX1B3Atlh160phgS35gF1VEEV4pD126c9F3BDgBmxZU,929
|
|
42
42
|
dbos/_roles.py,sha256=iOsgmIAf1XVzxs3gYWdGRe1B880YfOw5fpU7Jwx8_A8,2271
|
|
43
|
-
dbos/_scheduler.py,sha256=
|
|
43
|
+
dbos/_scheduler.py,sha256=boG4BdcncFa3WxR97T5Oou4ppR0TgrEa2QQkjzpFEHU,2028
|
|
44
44
|
dbos/_schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
45
|
dbos/_schemas/application_database.py,sha256=KeyoPrF7hy_ODXV7QNike_VFSD74QBRfQ76D7QyE9HI,966
|
|
46
|
-
dbos/_schemas/system_database.py,sha256=
|
|
46
|
+
dbos/_schemas/system_database.py,sha256=16146P4TLjAGjTYykOs_KUd2c_geJ5fuhk0ko85C65M,5211
|
|
47
47
|
dbos/_serialization.py,sha256=YCYv0qKAwAZ1djZisBC7khvKqG-5OcIv9t9EC5PFIog,1743
|
|
48
|
-
dbos/_sys_db.py,sha256=
|
|
48
|
+
dbos/_sys_db.py,sha256=YzQv26TcF9W6nDDr9hbN147KnVmgBoodjWVop_sLkC4,64891
|
|
49
49
|
dbos/_templates/dbos-db-starter/README.md,sha256=GhxhBj42wjTt1fWEtwNriHbJuKb66Vzu89G4pxNHw2g,930
|
|
50
50
|
dbos/_templates/dbos-db-starter/__package/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
51
|
dbos/_templates/dbos-db-starter/__package/main.py,sha256=eI0SS9Nwj-fldtiuSzIlIG6dC91GXXwdRsoHxv6S_WI,2719
|
|
52
52
|
dbos/_templates/dbos-db-starter/__package/schema.py,sha256=7Z27JGC8yy7Z44cbVXIREYxtUhU4JVkLCp5Q7UahVQ0,260
|
|
53
53
|
dbos/_templates/dbos-db-starter/alembic.ini,sha256=VKBn4Gy8mMuCdY7Hip1jmo3wEUJ1VG1aW7EqY0_n-as,3695
|
|
54
|
-
dbos/_templates/dbos-db-starter/dbos-config.yaml.dbos,sha256=
|
|
54
|
+
dbos/_templates/dbos-db-starter/dbos-config.yaml.dbos,sha256=Z-JC7wp-E9l7NiacjT7E66M812fYFVU3FSS7mNjb6XE,492
|
|
55
55
|
dbos/_templates/dbos-db-starter/migrations/env.py.dbos,sha256=GUV6sjkDzf9Vl6wkGEd0RSkK-ftRfV6EUwSQdd0qFXg,2392
|
|
56
56
|
dbos/_templates/dbos-db-starter/migrations/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
|
|
57
57
|
dbos/_templates/dbos-db-starter/migrations/versions/2024_07_31_180642_init.py,sha256=MpS7LGaJS0CpvsjhfDkp9EJqvMvVCjRPfUp4c0aE2ys,941
|
|
58
58
|
dbos/_templates/dbos-db-starter/start_postgres_docker.py,sha256=lQVLlYO5YkhGPEgPqwGc7Y8uDKse9HsWv5fynJEFJHM,1681
|
|
59
|
-
dbos/_tracer.py,sha256=
|
|
59
|
+
dbos/_tracer.py,sha256=dFDSFlta-rfA3-ahIRLYwnnoAOmlavdxAGllqwFgnCA,2440
|
|
60
60
|
dbos/_utils.py,sha256=wjOJzxN66IzL9p4dwcEmQACRQah_V09G6mJI2exQfOM,155
|
|
61
61
|
dbos/_workflow_commands.py,sha256=CEzR5XghoZscbc2RHb9G-7Eoo4MMuzfeTo-QBZu4VPY,4690
|
|
62
62
|
dbos/cli/_github_init.py,sha256=Y_bDF9gfO2jB1id4FV5h1oIxEJRWyqVjhb7bNEa5nQ0,3224
|
|
63
63
|
dbos/cli/_template_init.py,sha256=AfuMaO8bmr9WsPNHr6j2cp7kjVVZDUpH7KpbTg0hhFs,2722
|
|
64
|
-
dbos/cli/cli.py,sha256=
|
|
65
|
-
dbos/dbos-config.schema.json,sha256=
|
|
64
|
+
dbos/cli/cli.py,sha256=pet2vf4GLlSDfxfQbsplM9uewD6pJK2ZpLgZlwgBU5w,15627
|
|
65
|
+
dbos/dbos-config.schema.json,sha256=HtF_njVTGHLdzBGZ4OrGQz3qbPPT0Go-iwd1PgFVTNg,5847
|
|
66
66
|
dbos/py.typed,sha256=QfzXT1Ktfk3Rj84akygc7_42z0lRpCq0Ilh8OXI6Zas,44
|
|
67
67
|
version/__init__.py,sha256=L4sNxecRuqdtSFdpUGX3TtBi9KL3k7YsZVIvv-fv9-A,1678
|
|
68
|
-
dbos-0.
|
|
68
|
+
dbos-0.24.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|