Addon: start of generating OAPI SubmittedJob object
Work in progress.
This commit is contained in:
parent
a803edcce4
commit
c3cd119e21
@ -1,7 +1,7 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
from inspect import isclass
|
|
||||||
import logging
|
import logging
|
||||||
|
import uuid
|
||||||
from typing import TYPE_CHECKING, Callable, Optional, Union
|
from typing import TYPE_CHECKING, Callable, Optional, Union
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
@ -38,10 +38,12 @@ _prop_types = {
|
|||||||
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from flamenco.manager.model.available_job_type import AvailableJobType
|
from flamenco.manager.models import AvailableJobType, SubmittedJob, JobSettings
|
||||||
|
|
||||||
_available_job_types: Optional[list[AvailableJobType]] = None
|
_available_job_types: Optional[list[AvailableJobType]] = None
|
||||||
else:
|
else:
|
||||||
|
SubmittedJob = object
|
||||||
|
JobSettings = object
|
||||||
_available_job_types = None
|
_available_job_types = None
|
||||||
|
|
||||||
# Items for a bpy.props.EnumProperty()
|
# Items for a bpy.props.EnumProperty()
|
||||||
@ -114,6 +116,41 @@ def update_job_type_properties(scene: bpy.types.Scene) -> None:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def get_job_settings(scene: bpy.types.Scene) -> Optional[JobSettings]:
|
||||||
|
job_settings = getattr(scene, "flamenco_job_settings", None)
|
||||||
|
if job_settings is None:
|
||||||
|
return None
|
||||||
|
assert isinstance(job_settings, JobSettings), "expected JobSettings, got %s" % (
|
||||||
|
type(job_settings)
|
||||||
|
)
|
||||||
|
return job_settings
|
||||||
|
|
||||||
|
|
||||||
|
def job_for_scene(scene: bpy.types.Scene) -> Optional[SubmittedJob]:
|
||||||
|
from flamenco.manager.models import SubmittedJob, JobSettings, JobMetadata
|
||||||
|
|
||||||
|
settings_propgroup = get_job_settings(scene)
|
||||||
|
if settings_propgroup is None:
|
||||||
|
return None
|
||||||
|
|
||||||
|
# TODO: convert settings_propgroup to JobSettings.
|
||||||
|
# dict(settings_propgroup) only includes the user-modified items, which
|
||||||
|
# isn't enough; the JobSettings() object should also have explicit values
|
||||||
|
# for the still-default ones.
|
||||||
|
settings = JobSettings()
|
||||||
|
metadata = JobMetadata()
|
||||||
|
|
||||||
|
job = SubmittedJob(
|
||||||
|
name=scene.flamenco_job_name,
|
||||||
|
type=settings_propgroup.job_type.name,
|
||||||
|
priority=50,
|
||||||
|
id=str(uuid.uuid4()),
|
||||||
|
settings=settings,
|
||||||
|
metadata=metadata,
|
||||||
|
)
|
||||||
|
return job
|
||||||
|
|
||||||
|
|
||||||
def _clear_available_job_types():
|
def _clear_available_job_types():
|
||||||
global _available_job_types
|
global _available_job_types
|
||||||
global _job_type_enum_items
|
global _job_type_enum_items
|
||||||
|
Loading…
x
Reference in New Issue
Block a user