dbos 0.12.0__tar.gz → 0.13.0a1__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.
- {dbos-0.12.0 → dbos-0.13.0a1}/PKG-INFO +1 -2
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_admin_sever.py +0 -14
- {dbos-0.12.0 → dbos-0.13.0a1}/pyproject.toml +1 -3
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_admin_server.py +0 -18
- {dbos-0.12.0 → dbos-0.13.0a1}/LICENSE +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/README.md +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/__init__.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_app_db.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_classproperty.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_context.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_core.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_croniter.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_dbos.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_dbos_config.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_error.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_fastapi.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_flask.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_kafka.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_kafka_message.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_logger.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_migrations/env.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_migrations/script.py.mako +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_migrations/versions/50f3227f0b4b_fix_job_queue.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_migrations/versions/5c361fc04708_added_system_tables.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_migrations/versions/a3b18ad34abe_added_triggers.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_migrations/versions/d76646551a6b_job_queue_limiter.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_migrations/versions/d76646551a6c_workflow_queue.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_migrations/versions/eab0cc1d9a14_job_queue.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_queue.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_recovery.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_registrations.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_request.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_roles.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_scheduler.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_schemas/__init__.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_schemas/application_database.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_schemas/system_database.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_serialization.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_sys_db.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_templates/hello/README.md +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_templates/hello/__package/__init__.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_templates/hello/__package/main.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_templates/hello/__package/schema.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_templates/hello/alembic.ini +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_templates/hello/dbos-config.yaml.dbos +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_templates/hello/migrations/env.py.dbos +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_templates/hello/migrations/script.py.mako +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_templates/hello/migrations/versions/2024_07_31_180642_init.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_templates/hello/start_postgres_docker.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/_tracer.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/cli.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/dbos-config.schema.json +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/dbos/py.typed +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/__init__.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/atexit_no_ctor.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/atexit_no_launch.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/classdefs.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/conftest.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/more_classdefs.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_classdecorators.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_concurrency.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_config.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_croniter.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_dbos.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_failures.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_fastapi.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_fastapi_roles.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_flask.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_kafka.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_package.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_queue.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_scheduler.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_schema_migration.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/tests/test_singleton.py +0 -0
- {dbos-0.12.0 → dbos-0.13.0a1}/version/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dbos
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.13.0a1
|
|
4
4
|
Summary: Ultra-lightweight durable execution in Python
|
|
5
5
|
Author-Email: "DBOS, Inc." <contact@dbos.dev>
|
|
6
6
|
License: MIT
|
|
@@ -16,7 +16,6 @@ Requires-Dist: opentelemetry-sdk>=1.27.0
|
|
|
16
16
|
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.27.0
|
|
17
17
|
Requires-Dist: python-dateutil>=2.9.0.post0
|
|
18
18
|
Requires-Dist: fastapi[standard]>=0.115.2
|
|
19
|
-
Requires-Dist: psutil>=6.0.0
|
|
20
19
|
Requires-Dist: tomlkit>=0.13.2
|
|
21
20
|
Requires-Dist: psycopg[binary]>=3.1
|
|
22
21
|
Description-Content-Type: text/markdown
|
|
@@ -6,8 +6,6 @@ from functools import partial
|
|
|
6
6
|
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
|
|
7
7
|
from typing import TYPE_CHECKING, Any, List, TypedDict
|
|
8
8
|
|
|
9
|
-
import psutil
|
|
10
|
-
|
|
11
9
|
from ._logger import dbos_logger
|
|
12
10
|
from ._recovery import recover_pending_workflows
|
|
13
11
|
|
|
@@ -16,7 +14,6 @@ if TYPE_CHECKING:
|
|
|
16
14
|
|
|
17
15
|
_health_check_path = "/dbos-healthz"
|
|
18
16
|
_workflow_recovery_path = "/dbos-workflow-recovery"
|
|
19
|
-
_perf_path = "/dbos-perf"
|
|
20
17
|
_deactivate_path = "/deactivate"
|
|
21
18
|
|
|
22
19
|
|
|
@@ -55,17 +52,6 @@ class AdminRequestHandler(BaseHTTPRequestHandler):
|
|
|
55
52
|
self.send_response(200)
|
|
56
53
|
self._end_headers()
|
|
57
54
|
self.wfile.write("healthy".encode("utf-8"))
|
|
58
|
-
elif self.path == _perf_path:
|
|
59
|
-
# Compares system CPU times elapsed since last call or module import, returning immediately (non blocking).
|
|
60
|
-
cpu_percent = psutil.cpu_percent(interval=None) / 100.0
|
|
61
|
-
perf_util: PerfUtilization = {
|
|
62
|
-
"idle": 1.0 - cpu_percent,
|
|
63
|
-
"active": cpu_percent,
|
|
64
|
-
"utilization": cpu_percent,
|
|
65
|
-
}
|
|
66
|
-
self.send_response(200)
|
|
67
|
-
self._end_headers()
|
|
68
|
-
self.wfile.write(json.dumps(perf_util).encode("utf-8"))
|
|
69
55
|
elif self.path == _deactivate_path:
|
|
70
56
|
dbos_logger.info("Deactivating DBOS")
|
|
71
57
|
# Stop all scheduled workflows, queues, and kafka loops
|
|
@@ -17,13 +17,12 @@ dependencies = [
|
|
|
17
17
|
"opentelemetry-exporter-otlp-proto-http>=1.27.0",
|
|
18
18
|
"python-dateutil>=2.9.0.post0",
|
|
19
19
|
"fastapi[standard]>=0.115.2",
|
|
20
|
-
"psutil>=6.0.0",
|
|
21
20
|
"tomlkit>=0.13.2",
|
|
22
21
|
"psycopg[binary]>=3.1",
|
|
23
22
|
]
|
|
24
23
|
requires-python = ">=3.9"
|
|
25
24
|
readme = "README.md"
|
|
26
|
-
version = "0.
|
|
25
|
+
version = "0.13.0a1"
|
|
27
26
|
|
|
28
27
|
[project.license]
|
|
29
28
|
text = "MIT"
|
|
@@ -54,7 +53,6 @@ dev = [
|
|
|
54
53
|
"black>=24.10.0",
|
|
55
54
|
"pre-commit>=4.0.1",
|
|
56
55
|
"isort>=5.13.2",
|
|
57
|
-
"types-psutil>=6.0.0.20240621",
|
|
58
56
|
"requests>=2.32.3",
|
|
59
57
|
"types-requests>=2.32.0.20240914",
|
|
60
58
|
"httpx>=0.27.2",
|
|
@@ -23,23 +23,6 @@ def test_admin_endpoints(dbos: DBOS) -> None:
|
|
|
23
23
|
assert response.status_code == 200
|
|
24
24
|
assert response.json() == []
|
|
25
25
|
|
|
26
|
-
# Test GET /dbos-perf
|
|
27
|
-
response = requests.get("http://localhost:3001/dbos-perf", timeout=5)
|
|
28
|
-
assert response.status_code == 200
|
|
29
|
-
perf_util = response.json()
|
|
30
|
-
assert perf_util is not None
|
|
31
|
-
assert "idle" in perf_util
|
|
32
|
-
assert "active" in perf_util
|
|
33
|
-
assert "utilization" in perf_util
|
|
34
|
-
|
|
35
|
-
# Test GET /dbos-perf again, should be a valid utilization between 0~1
|
|
36
|
-
time.sleep(0.2)
|
|
37
|
-
response = requests.get("http://localhost:3001/dbos-perf", timeout=5)
|
|
38
|
-
assert response.status_code == 200
|
|
39
|
-
perf_util = response.json()
|
|
40
|
-
assert perf_util["utilization"] >= 0.0
|
|
41
|
-
assert perf_util["utilization"] <= 1.0
|
|
42
|
-
|
|
43
26
|
# Test GET not found
|
|
44
27
|
response = requests.get("http://localhost:3001/stuff", timeout=5)
|
|
45
28
|
assert response.status_code == 404
|
|
@@ -55,7 +38,6 @@ def test_admin_endpoints(dbos: DBOS) -> None:
|
|
|
55
38
|
assert event.is_set(), "Event is not set!"
|
|
56
39
|
|
|
57
40
|
|
|
58
|
-
|
|
59
41
|
def test_admin_recovery(dbos: DBOS) -> None:
|
|
60
42
|
os.environ["DBOS__VMID"] = "testexecutor"
|
|
61
43
|
os.environ["DBOS__APPVERSION"] = "testversion"
|
|
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
|
{dbos-0.12.0 → dbos-0.13.0a1}/dbos/_templates/hello/migrations/versions/2024_07_31_180642_init.py
RENAMED
|
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
|