|
13 | 13 | # limitations under the License.
|
14 | 14 |
|
15 | 15 | import importlib.util
|
| 16 | +import logging |
16 | 17 | import operator as op
|
17 | 18 | import sys
|
18 | 19 | from collections import OrderedDict
|
|
27 | 28 | import importlib.metadata as importlib_metadata
|
28 | 29 |
|
29 | 30 |
|
| 31 | +logger = logging.getLogger(__name__) |
| 32 | + |
30 | 33 | STR_OPERATION_TO_FUNC = {">": op.gt, ">=": op.ge, "==": op.eq, "!=": op.ne, "<=": op.le, "<": op.lt}
|
31 | 34 |
|
32 | 35 | _optimum_version = importlib_metadata.version("optimum")
|
|
75 | 78 | version = get_version()
|
76 | 79 | # avoid invalid format
|
77 | 80 | if "-" in version:
|
78 |
| - major_version, dev_info = version.split("-", 1) |
| 81 | + ov_major_version, dev_info = version.split("-", 1) |
79 | 82 | commit_id = dev_info.split("-")[0]
|
80 |
| - version = f"{major_version}-{commit_id}" |
| 83 | + version = f"{ov_major_version}-{commit_id}" |
81 | 84 | _openvino_version = version
|
82 | 85 | except ImportError:
|
83 | 86 | _openvino_available = False
|
84 | 87 |
|
| 88 | +_openvino_tokenizers_available = importlib.util.find_spec("openvino_tokenizers") is not None and _openvino_available |
| 89 | +_openvino_tokenizers_version = "N/A" |
| 90 | +if _openvino_tokenizers_available: |
| 91 | + try: |
| 92 | + _openvino_tokenizers_version = importlib_metadata.version("openvino_tokenizers") |
| 93 | + except importlib_metadata.PackageNotFoundError: |
| 94 | + _openvino_tokenizers_available = False |
| 95 | + |
| 96 | +if _openvino_tokenizers_available and _openvino_tokenizers_version != "N/A": |
| 97 | + _compatible_openvino_version = next( |
| 98 | + ( |
| 99 | + requirement.split("==")[-1] |
| 100 | + for requirement in importlib_metadata.requires("openvino-tokenizers") |
| 101 | + if requirement.startswith("openvino==") |
| 102 | + ), |
| 103 | + "", |
| 104 | + ) |
| 105 | + _openvino_tokenizers_available = _compatible_openvino_version == ov_major_version |
| 106 | + if not _openvino_tokenizers_available: |
| 107 | + logger.warning( |
| 108 | + "OpenVINO Tokenizer version is not compatible with OpenVINO version. " |
| 109 | + f"Installed OpenVINO version: {ov_major_version}," |
| 110 | + f"OpenVINO Tokenizers requires {_compatible_openvino_version}. " |
| 111 | + f"OpenVINO Tokenizers models will not be added during export." |
| 112 | + ) |
85 | 113 |
|
86 | 114 | _nncf_available = importlib.util.find_spec("nncf") is not None
|
87 | 115 | _nncf_version = "N/A"
|
|
91 | 119 | except importlib_metadata.PackageNotFoundError:
|
92 | 120 | _nncf_available = False
|
93 | 121 |
|
94 |
| - |
95 |
| -_openvino_tokenizers_available = importlib.util.find_spec("openvino_tokenizers") is not None |
96 |
| -_openvino_tokenizers_version = "N/A" |
97 |
| -if _openvino_tokenizers_available: |
98 |
| - try: |
99 |
| - _openvino_tokenizers_version = importlib_metadata.version("openvino_tokenizers") |
100 |
| - except importlib_metadata.PackageNotFoundError: |
101 |
| - _openvino_tokenizers_available = False |
102 |
| - |
103 |
| - |
104 | 122 | _diffusers_available = importlib.util.find_spec("diffusers") is not None
|
105 | 123 | _diffusers_version = "N/A"
|
106 | 124 | if _diffusers_available:
|
|
0 commit comments