Skip to content

Commit

Permalink
fix: support legacy blender in root __init__.py
Browse files Browse the repository at this point in the history
  • Loading branch information
saturday06 committed Aug 21, 2023
1 parent d3643e5 commit 424378f
Showing 1 changed file with 17 additions and 21 deletions.
38 changes: 17 additions & 21 deletions io_scene_vrm/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@

#
#
# Please don't import anything in the global scope to minimize initialization and
# support unzipping the partial add-on archive for users who have acquired the add-on
# from "Code" -> "Download ZIP" on GitHub.
# - Please don't import anything in the global scope to minimize initialization and
# support unzipping the partial add-on archive for users who have acquired the add-on
# from "Code" -> "Download ZIP" on GitHub.
# - Please write this script to work with Blender 2.79.
#
#

Expand All @@ -30,7 +31,7 @@


def register() -> None:
raise_error_if_current_blender_is_not_supported()
raise_error_if_unsupported()
extract_github_private_partial_code_archive_if_necessary()

# Lazy import to minimize initialization before blender version checking and
Expand All @@ -41,32 +42,27 @@ def register() -> None:


def unregister() -> None:
import bpy

if bpy.app.version < minimum_supported_blender_version():
return

# Lazy import to minimize initialization before blender version checking.
from . import registration

registration.unregister()


def minimum_supported_blender_version() -> tuple[int, int, int]:
blender = bl_info.get("blender")
if not isinstance(blender, tuple) or len(blender) != 3:
def raise_error_if_unsupported() -> None:
import bpy

minimum_version = bl_info.get("blender")
if (
not isinstance(minimum_version, tuple)
or len(minimum_version) != 3
or not all(isinstance(v, int) for v in minimum_version)
):
raise AssertionError(
# pylint: disable=consider-using-f-string; for legacy Blender versions
"Invalid version value: {}".format(blender),
"Invalid version value: {}".format(minimum_version),
)
major, minor, patch = blender
return (major, minor, patch)


def raise_error_if_current_blender_is_not_supported() -> None:
import bpy

if bpy.app.version >= minimum_supported_blender_version():
if bpy.app.version >= minimum_version:
return

default_message = (
Expand Down Expand Up @@ -97,7 +93,7 @@ def raise_error_if_current_blender_is_not_supported() -> None:
===========================================================
""".format(
message.format(
minimum_version=".".join(map(str, bl_info["blender"])),
minimum_version=".".join(map(str, minimum_version)),
current_version=".".join(map(str, bpy.app.version)),
)
)
Expand Down

0 comments on commit 424378f

Please sign in to comment.