paddlepaddle has no Python 3.14 (cp314) wheel on PyPI, so host-agent
deployments on 3.14 can never install it, causing OCR to fail at
runtime with RuntimeError. Pin the workspace to Python 3.13 across
all pyproject.toml files, the Docker base image, and the Jenkins CI
image; regenerate uv.lock against 3.13.
Also fixes a pre-existing Python-2-style `except X, Y:` syntax error
(invalid in all Python 3.x) in runtime/task.py and
packages/cloud-platform/cloud/{sql_repository,internal_api/api}.py,
introduced in 22d37ca9 and unrelated to this change's scope, which
blocked the full test suite from collecting on any interpreter
version.
openspec change: downgrade-python-3-13-paddleocr
This commit is contained in:
@@ -1821,7 +1821,7 @@ def _device_enrollment_from_row(row: DeviceEnrollmentRow) -> Any:
|
||||
|
||||
try:
|
||||
tags = list(json.loads(row.capability_tags_json))
|
||||
except TypeError, ValueError:
|
||||
except (TypeError, ValueError):
|
||||
tags = []
|
||||
return DeviceEnrollment(
|
||||
device_id=row.device_id,
|
||||
@@ -1840,7 +1840,7 @@ def _device_from_row(row: PooledDeviceRow) -> Any:
|
||||
|
||||
try:
|
||||
tags = list(json.loads(row.capability_tags_json))
|
||||
except TypeError, ValueError:
|
||||
except (TypeError, ValueError):
|
||||
tags = []
|
||||
return PooledDevice(
|
||||
device_id=row.device_id,
|
||||
@@ -1857,7 +1857,7 @@ def _task_from_row(row: ScheduledTaskRow) -> Any:
|
||||
|
||||
try:
|
||||
constraints_data = json.loads(row.constraints_json)
|
||||
except TypeError, ValueError:
|
||||
except (TypeError, ValueError):
|
||||
constraints_data = {}
|
||||
terminal_result = _parse_json_object(row.result_json)
|
||||
return ScheduledTask(
|
||||
@@ -1896,7 +1896,7 @@ def _load_optional_string_tuple(value: str | None) -> tuple[str, ...] | None:
|
||||
return None
|
||||
try:
|
||||
parsed = json.loads(value)
|
||||
except TypeError, ValueError:
|
||||
except (TypeError, ValueError):
|
||||
parsed = []
|
||||
return tuple(item for item in parsed if isinstance(item, str))
|
||||
|
||||
@@ -1908,7 +1908,7 @@ def _load_optional_device_targets(
|
||||
return None
|
||||
try:
|
||||
parsed = json.loads(value)
|
||||
except TypeError, ValueError:
|
||||
except (TypeError, ValueError):
|
||||
parsed = []
|
||||
return tuple(
|
||||
(item[0], item[1])
|
||||
@@ -2026,7 +2026,7 @@ def _parse_json_object(value: str | None) -> dict[str, Any] | None:
|
||||
return None
|
||||
try:
|
||||
parsed = json.loads(value)
|
||||
except TypeError, ValueError:
|
||||
except (TypeError, ValueError):
|
||||
return None
|
||||
return parsed if isinstance(parsed, dict) else None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user