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.
This commit is contained in:
Sybren A. Stüvel 2022-03-14 15:56:46 +01:00
parent b993f38889
commit f6e636f8de
4 changed files with 38 additions and 28 deletions

@ -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.

@ -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,

@ -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)."""

@ -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):