From 3e93d163c03048b801b654dcd0400cbecf2bd7f4 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Fri, 30 Jun 2023 16:11:37 +0200 Subject: [PATCH 1/3] check PyOpenColorIO rather then python version https://github.com/ynput/OpenPype/pull/5212#issuecomment-1614651292 --- openpype/pipeline/colorspace.py | 36 +++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/openpype/pipeline/colorspace.py b/openpype/pipeline/colorspace.py index d5f2624155..244463ad41 100644 --- a/openpype/pipeline/colorspace.py +++ b/openpype/pipeline/colorspace.py @@ -1,7 +1,6 @@ from copy import deepcopy import re import os -import sys import json import platform import contextlib @@ -237,12 +236,13 @@ def get_data_subprocess(config_path, data_type): return json.loads(return_json_data) -def compatible_python(): - """Only 3.9 or higher can directly use PyOpenColorIO in ocio_wrapper""" - compatible = False - if sys.version_info.major == 3 and sys.version_info.minor >= 9: - compatible = True - return compatible +def compatibility_check(): + """Making sure PyOpenColorIO is importable""" + try: + import PyOpenColorIO + except (ImportError, ModuleNotFoundError): + return False + return True def get_ocio_config_colorspaces(config_path): @@ -257,12 +257,15 @@ def get_ocio_config_colorspaces(config_path): Returns: dict: colorspace and family in couple """ - if compatible_python(): - from ..scripts.ocio_wrapper import _get_colorspace_data - return _get_colorspace_data(config_path) - else: + if not compatibility_check(): + # python environment is not compatible with PyOpenColorIO + # needs to be run in subprocess return get_colorspace_data_subprocess(config_path) + from openpype.scripts.ocio_wrapper import _get_colorspace_data + + return _get_colorspace_data(config_path) + def get_colorspace_data_subprocess(config_path): """Get colorspace data via subprocess @@ -290,12 +293,15 @@ def get_ocio_config_views(config_path): Returns: dict: `display/viewer` and viewer data """ - if compatible_python(): - from ..scripts.ocio_wrapper import _get_views_data - return _get_views_data(config_path) - else: + if not compatibility_check(): + # python environment is not compatible with PyOpenColorIO + # needs to be run in subprocess return get_views_data_subprocess(config_path) + from openpype.scripts.ocio_wrapper import _get_views_data + + return _get_views_data(config_path) + def get_views_data_subprocess(config_path): """Get viewers data via subprocess From 051882bb3e0bf59c265c96718b2c7fa264230191 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Fri, 30 Jun 2023 16:16:12 +0200 Subject: [PATCH 2/3] noqa excepetion --- openpype/pipeline/colorspace.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/pipeline/colorspace.py b/openpype/pipeline/colorspace.py index 244463ad41..bda14d275d 100644 --- a/openpype/pipeline/colorspace.py +++ b/openpype/pipeline/colorspace.py @@ -239,7 +239,7 @@ def get_data_subprocess(config_path, data_type): def compatibility_check(): """Making sure PyOpenColorIO is importable""" try: - import PyOpenColorIO + import PyOpenColorIO # noqa: F401 except (ImportError, ModuleNotFoundError): return False return True From 131f8ddd8998372782b80ce73ec936f6254f1358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Je=C5=BEek?= Date: Fri, 30 Jun 2023 16:23:11 +0200 Subject: [PATCH 3/3] Update openpype/pipeline/colorspace.py Co-authored-by: Roy Nieterau --- openpype/pipeline/colorspace.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/pipeline/colorspace.py b/openpype/pipeline/colorspace.py index bda14d275d..3f2d4891c1 100644 --- a/openpype/pipeline/colorspace.py +++ b/openpype/pipeline/colorspace.py @@ -240,7 +240,7 @@ def compatibility_check(): """Making sure PyOpenColorIO is importable""" try: import PyOpenColorIO # noqa: F401 - except (ImportError, ModuleNotFoundError): + except ImportError: return False return True