Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion mesonbuild/dependencies/python.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

import functools, json, os, textwrap
from pathlib import Path
import sys
import typing as T

from .. import mesonlib, mlog
Expand Down Expand Up @@ -110,8 +111,13 @@ def sanity(self) -> bool:
# Sanity check, we expect to have something that at least quacks in tune

import importlib.resources
if sys.version_info >= (3, 13):
traversable = importlib.resources.files('mesonbuild.scripts').joinpath('python_info.py')
context_mgr = importlib.resources.as_file(traversable)
else:
context_mgr = importlib.resources.path('mesonbuild.scripts', 'python_info.py')

with importlib.resources.path('mesonbuild.scripts', 'python_info.py') as f:
with context_mgr as f:
cmd = self.get_command() + [str(f)]
p, stdout, stderr = mesonlib.Popen_safe(cmd)

Expand Down
7 changes: 5 additions & 2 deletions mesonbuild/modules/python.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# limitations under the License.
from __future__ import annotations

import copy, json, os, shutil
import copy, json, os, shutil, sys
import typing as T

from . import ExtensionModule, ModuleInfo
Expand Down Expand Up @@ -329,7 +329,10 @@ def should_append(f, isdir: bool = False):
import importlib.resources
pycompile = os.path.join(self.interpreter.environment.get_scratch_dir(), 'pycompile.py')
with open(pycompile, 'wb') as f:
f.write(importlib.resources.read_binary('mesonbuild.scripts', 'pycompile.py'))
if sys.version_info >= (3, 13):
f.write(importlib.resources.files('mesonbuild.scripts').joinpath('pycompile.py').read_bytes())
else:
f.write(importlib.resources.read_binary('mesonbuild.scripts', 'pycompile.py'))

for i in self.installations.values():
if isinstance(i, PythonExternalProgram) and i.run_bytecompile[i.info['version']]:
Expand Down