1*99e0aae7SDavid Rees# Copyright 2024 Google LLC 2*99e0aae7SDavid Rees# 3*99e0aae7SDavid Rees# Licensed under the Apache License, Version 2.0 (the "License"); 4*99e0aae7SDavid Rees# you may not use this file except in compliance with the License. 5*99e0aae7SDavid Rees# You may obtain a copy of the License at 6*99e0aae7SDavid Rees# 7*99e0aae7SDavid Rees# https://www.apache.org/licenses/LICENSE-2.0 8*99e0aae7SDavid Rees# 9*99e0aae7SDavid Rees# Unless required by applicable law or agreed to in writing, software 10*99e0aae7SDavid Rees# distributed under the License is distributed on an "AS IS" BASIS, 11*99e0aae7SDavid Rees# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*99e0aae7SDavid Rees# See the License for the specific language governing permissions and 13*99e0aae7SDavid Rees# limitations under the License. 14*99e0aae7SDavid Rees 15*99e0aae7SDavid Rees"""Routines to load resource files from within the compiler.""" 16*99e0aae7SDavid Rees 17*99e0aae7SDavid Reesimport importlib.resources 18*99e0aae7SDavid Rees 19*99e0aae7SDavid Reesdef load(package, file, encoding="utf-8"): 20*99e0aae7SDavid Rees """Returns the contents of `file` from the Python package loader.""" 21*99e0aae7SDavid Rees with importlib.resources.files( 22*99e0aae7SDavid Rees package).joinpath(file).open("r", encoding=encoding) as f: 23*99e0aae7SDavid Rees return f.read() 24