From 71bf2bea80008d15ff729b7481979a8d5152aa2c Mon Sep 17 00:00:00 2001 From: Onuralp SEZER Date: Wed, 1 Oct 2025 21:15:57 +0300 Subject: [PATCH] refactor:(samsung backend): replace pkg_resources with importlib.resources for schema loading (#14654) This PR refactors the Samsung backend schema loading logic in compile_options.py by replacing pkg_resources with importlib.resources. This modernizes resource access, improves compatibility with Python packaging standards, and removes the dependency on setuptools. No functional changes to the compile options logic; only the resource loading mechanism is updated. Signed-off-by: Onuralp SEZER (cherry picked from commit d95143ebe0fee4bfe127ff6d99e7fe3bd1693728) --- .../samsung/serialization/compile_options.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/backends/samsung/serialization/compile_options.py b/backends/samsung/serialization/compile_options.py index 1ad2350cfeb..a4af40368e9 100644 --- a/backends/samsung/serialization/compile_options.py +++ b/backends/samsung/serialization/compile_options.py @@ -11,7 +11,8 @@ from dataclasses import dataclass from enum import IntEnum, unique -import pkg_resources +from importlib.resources import files + from executorch.exir._serialize._dataclass import _DataclassEncoder from executorch.exir._serialize._flatbuffer import _flatc_compile from executorch.exir.backend.backend_details import CompileSpec @@ -36,12 +37,15 @@ def gen_samsung_backend_compile_spec_core(options: EnnExecuTorchOptions) -> Comp with tempfile.TemporaryDirectory() as d: # schema schema_path = os.path.join(d, "{}.fbs".format(COMPILE_OPTION_SCHEMA_NAME)) + + schema_content = ( + files(__package__) + .joinpath(f"{COMPILE_OPTION_SCHEMA_NAME}.fbs") + .read_bytes() + ) + with open(schema_path, "wb") as schema_file: - schema_file.write( - pkg_resources.resource_string( - __name__, "{}.fbs".format(COMPILE_OPTION_SCHEMA_NAME) - ) - ) + schema_file.write(schema_content) # dump json json_path = os.path.join(d, "{}.json".format(COMPILE_OPTION_SCHEMA_NAME)) enn_options_json = json.dumps(options, cls=_DataclassEncoder, indent=4)