PythonExtension: fix issue where package does not extend python (#44109)
This commit is contained in:
parent
f55224f161
commit
252a5bd71b
1 changed files with 12 additions and 8 deletions
|
@ -120,12 +120,6 @@ def skip_modules(self) -> Iterable[str]:
|
||||||
"""
|
"""
|
||||||
return []
|
return []
|
||||||
|
|
||||||
@property
|
|
||||||
def python_spec(self):
|
|
||||||
"""Get python-venv if it exists or python otherwise."""
|
|
||||||
python, *_ = self.spec.dependencies("python-venv") or self.spec.dependencies("python")
|
|
||||||
return python
|
|
||||||
|
|
||||||
def view_file_conflicts(self, view, merge_map):
|
def view_file_conflicts(self, view, merge_map):
|
||||||
"""Report all file conflicts, excepting special cases for python.
|
"""Report all file conflicts, excepting special cases for python.
|
||||||
Specifically, this does not report errors for duplicate
|
Specifically, this does not report errors for duplicate
|
||||||
|
@ -146,8 +140,12 @@ def view_file_conflicts(self, view, merge_map):
|
||||||
def add_files_to_view(self, view, merge_map, skip_if_exists=True):
|
def add_files_to_view(self, view, merge_map, skip_if_exists=True):
|
||||||
# Patch up shebangs if the package extends Python and we put a Python interpreter in the
|
# Patch up shebangs if the package extends Python and we put a Python interpreter in the
|
||||||
# view.
|
# view.
|
||||||
python = self.python_spec
|
if not self.extendee_spec:
|
||||||
if not self.extendee_spec or python.external:
|
return super().add_files_to_view(view, merge_map, skip_if_exists)
|
||||||
|
|
||||||
|
python, *_ = self.spec.dependencies("python-venv") or self.spec.dependencies("python")
|
||||||
|
|
||||||
|
if python.external:
|
||||||
return super().add_files_to_view(view, merge_map, skip_if_exists)
|
return super().add_files_to_view(view, merge_map, skip_if_exists)
|
||||||
|
|
||||||
# We only patch shebangs in the bin directory.
|
# We only patch shebangs in the bin directory.
|
||||||
|
@ -368,6 +366,12 @@ def list_url(cls) -> Optional[str]: # type: ignore[override]
|
||||||
return f"https://pypi.org/simple/{name}/"
|
return f"https://pypi.org/simple/{name}/"
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@property
|
||||||
|
def python_spec(self):
|
||||||
|
"""Get python-venv if it exists or python otherwise."""
|
||||||
|
python, *_ = self.spec.dependencies("python-venv") or self.spec.dependencies("python")
|
||||||
|
return python
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def headers(self) -> HeaderList:
|
def headers(self) -> HeaderList:
|
||||||
"""Discover header files in platlib."""
|
"""Discover header files in platlib."""
|
||||||
|
|
Loading…
Reference in a new issue