From f6e636f8dec91202115f21f288384ae551ec859e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Mon, 14 Mar 2022 15:56:46 +0100 Subject: [PATCH] Addon: cleanup, prefix TYPE_CHECKING imports with underscores Prefix anything that's imported in an `if TYPE_CHECKING` block with underscores, to indicate they're not the real types. --- addon/README.md | 6 +++--- addon/flamenco/job_types.py | 28 ++++++++++++++------------- addon/flamenco/job_types_propgroup.py | 19 +++++++++++------- addon/flamenco/operators.py | 13 ++++++++----- 4 files changed, 38 insertions(+), 28 deletions(-) diff --git a/addon/README.md b/addon/README.md index 388078f4..a8b34e7e 100644 --- a/addon/README.md +++ b/addon/README.md @@ -23,9 +23,9 @@ The result is that sometimes there are some strange hoops to jump through. The m ``` if TYPE_CHECKING: - from .bat_interface import PackThread + from .bat_interface import _PackThread else: - PackThread = object + _PackThread = object ``` -This makes it possible to declare a function with `def func() -> PackThread`, without having to load `bat_interface` immediately at import time. +This makes it possible to declare a function with `def func() -> _PackThread`, without having to load `bat_interface` immediately at import time. diff --git a/addon/flamenco/job_types.py b/addon/flamenco/job_types.py index 962fb9a6..5d217d26 100644 --- a/addon/flamenco/job_types.py +++ b/addon/flamenco/job_types.py @@ -13,18 +13,18 @@ _log = logging.getLogger(__name__) if TYPE_CHECKING: from flamenco.manager.models import ( - AvailableJobType, - AvailableJobTypes, - SubmittedJob, - JobSettings, + AvailableJobType as _AvailableJobType, + AvailableJobTypes as _AvailableJobTypes, + SubmittedJob as _SubmittedJob, + JobSettings as _JobSettings, ) else: - AvailableJobTypes = object - AvailableJobType = object - SubmittedJob = object - JobSettings = object + _AvailableJobTypes = object + _AvailableJobType = object + _SubmittedJob = object + _JobSettings = object -_available_job_types: Optional[list[AvailableJobType]] = None +_available_job_types: Optional[list[_AvailableJobType]] = None # Items for a bpy.props.EnumProperty() _job_type_enum_items: list[ @@ -54,7 +54,7 @@ def fetch_available_job_types(api_client, scene: bpy.types.Scene): _store_available_job_types(response) -def _store_available_job_types(available_job_types: AvailableJobTypes) -> None: +def _store_available_job_types(available_job_types: _AvailableJobTypes) -> None: global _available_job_types global _job_type_enum_items @@ -129,7 +129,9 @@ def update_job_type_properties(scene: bpy.types.Scene) -> None: ) -def get_job_settings(scene: bpy.types.Scene) -> Optional[JobSettings]: +def get_job_settings(scene: bpy.types.Scene) -> Optional[_JobSettings]: + from flamenco.manager.models import JobSettings + job_settings = getattr(scene, "flamenco_job_settings", None) if job_settings is None: return None @@ -139,7 +141,7 @@ def get_job_settings(scene: bpy.types.Scene) -> Optional[JobSettings]: return job_settings -def job_for_scene(scene: bpy.types.Scene) -> Optional[SubmittedJob]: +def job_for_scene(scene: bpy.types.Scene) -> Optional[_SubmittedJob]: from flamenco.manager.models import SubmittedJob, JobSettings, JobMetadata settings_propgroup = get_job_settings(scene) @@ -189,7 +191,7 @@ def _clear_job_type_propgroup(): _selected_job_type_propgroup = None -def active_job_type(scene: bpy.types.Scene) -> Optional[AvailableJobType]: +def active_job_type(scene: bpy.types.Scene) -> Optional[_AvailableJobType]: """Return the active job type. Returns a flamenco.manager.model.available_job_type.AvailableJobType, diff --git a/addon/flamenco/job_types_propgroup.py b/addon/flamenco/job_types_propgroup.py index 6a6947c4..67091a55 100644 --- a/addon/flamenco/job_types_propgroup.py +++ b/addon/flamenco/job_types_propgroup.py @@ -10,10 +10,15 @@ import bpy _log = logging.getLogger(__name__) if TYPE_CHECKING: - from flamenco.manager.models import AvailableJobType, AvailableJobSetting + from flamenco.manager.models import ( + AvailableJobType as _AvailableJobType, + AvailableJobSetting as _AvailableJobSetting, + JobSettings as _JobSettings, + ) else: - AvailableJobType = object - AvailableJobSetting = object + _AvailableJobType = object + _AvailableJobSetting = object + _JobSettings = object class JobTypePropertyGroup: @@ -22,7 +27,7 @@ class JobTypePropertyGroup: Use `generate(job_type: AvailableJobType)` to create such a subclass. """ - job_type: AvailableJobType + job_type: _AvailableJobType """The job type passed to `generate(job_type)`.""" @classmethod @@ -52,7 +57,7 @@ _prop_types = { } -def generate(job_type: AvailableJobType) -> type[JobTypePropertyGroup]: +def generate(job_type: _AvailableJobType) -> type[JobTypePropertyGroup]: """Create a PropertyGroup for the job type. Does not register the property group. @@ -89,7 +94,7 @@ def generate(job_type: AvailableJobType) -> type[JobTypePropertyGroup]: return pg_type -def _create_property(job_type: AvailableJobType, setting: AvailableJobSetting) -> Any: +def _create_property(job_type: _AvailableJobType, setting: _AvailableJobSetting) -> Any: """Create a bpy.props property for the given job setting. Depending on the setting, will be a StringProperty, EnumProperty, FloatProperty, etc. @@ -117,7 +122,7 @@ def _create_property(job_type: AvailableJobType, setting: AvailableJobSetting) - def _find_prop_type( - job_type: AvailableJobType, setting: AvailableJobSetting + job_type: _AvailableJobType, setting: _AvailableJobSetting ) -> tuple[Any, dict[str, Any]]: """Return a tuple (bpy.props.XxxProperty, kwargs for construction).""" diff --git a/addon/flamenco/operators.py b/addon/flamenco/operators.py index 80739d32..fbc7fd82 100644 --- a/addon/flamenco/operators.py +++ b/addon/flamenco/operators.py @@ -10,10 +10,13 @@ import bpy from . import preferences if TYPE_CHECKING: - from .bat_interface import PackThread, Message + from .bat_interface import ( + PackThread as _PackThread, + Message as _Message, + ) else: - PackThread = object - Message = object + _PackThread = object + _Message = object _log = logging.getLogger(__name__) @@ -109,7 +112,7 @@ class FLAMENCO_OT_submit_job(FlamencoOpMixin, bpy.types.Operator): job_name: bpy.props.StringProperty(name="Job Name") timer: Optional[bpy.types.Timer] = None - packthread: Optional[PackThread] = None + packthread: Optional[_PackThread] = None log = _log.getChild(bl_idname) @@ -204,7 +207,7 @@ class FLAMENCO_OT_submit_job(FlamencoOpMixin, bpy.types.Operator): return {"RUNNING_MODAL"} - def _on_bat_pack_msg(self, context: bpy.types.Context, msg: Message) -> set[str]: + def _on_bat_pack_msg(self, context: bpy.types.Context, msg: _Message) -> set[str]: from . import bat_interface if isinstance(msg, bat_interface.MsgDone):