diff --git a/pip/pyqt5/install_pyqt5.py b/pip/pyqt5/install_pyqt5.py index 110bfe561..96f3fb29a 100644 --- a/pip/pyqt5/install_pyqt5.py +++ b/pip/pyqt5/install_pyqt5.py @@ -2,9 +2,7 @@ # MIT """downloads and parses info of a pkg and generates a BUILD file for it""" -import argparse import glob -import logging import os import re import shutil @@ -12,17 +10,6 @@ import subprocess import sys from pip._internal.commands import create_command -from pip._vendor import pkg_resources - - -def _create_nspkg_init(dirpath): - """Creates an init file to enable namespacing""" - if not os.path.exists(dirpath): - # Handle missing namespace packages by ignoring them - return - nspkg_init = os.path.join(dirpath, "__init__.py") - with open(nspkg_init, "w") as nspkg: - nspkg.write("__path__ = __import__('pkgutil').extend_path(__path__, __name__)") def install_package(pkg, directory, pip_args): @@ -49,30 +36,6 @@ def install_package(pkg, directory, pip_args): cmd = create_command("install") cmd.main(pip_args) - # need dist-info directory for pkg_resources to be able to find the packages - dist_info = glob.glob(os.path.join(directory, "*.dist-info"))[0] - # fix namespace packages by adding proper __init__.py files - namespace_packages = os.path.join(dist_info, "namespace_packages.txt") - if os.path.exists(namespace_packages): - with open(namespace_packages) as nspkg: - for line in nspkg.readlines(): - namespace = line.strip().replace(".", os.sep) - if namespace: - _create_nspkg_init(os.path.join(directory, namespace)) - - # PEP 420 -- Implicit Namespace Packages - if (sys.version_info[0], sys.version_info[1]) >= (3, 3): - for dirpath, dirnames, filenames in os.walk(directory): - # we are only interested in dirs with no init file - if "__init__.py" in filenames: - dirnames[:] = [] - continue - # remove bin and dist-info dirs - for ignored in ("bin", os.path.basename(dist_info)): - if ignored in dirnames: - dirnames.remove(ignored) - _create_nspkg_init(dirpath) - def _cleanup(directory, pattern): for p in glob.glob(os.path.join(directory, pattern)): shutil.rmtree(p) @@ -149,6 +112,9 @@ def main(): merge_files(base, folder) shutil.rmtree(folder) + with open(os.path.join(base, "__init__.py"), "w") as file: + file.write("__path__ = __import__('pkgutil').extend_path(__path__, __name__)") + # add missing py.typed file with open(os.path.join(base, "py.typed"), "w") as file: pass diff --git a/pip/pyqt6/install_pyqt6.py b/pip/pyqt6/install_pyqt6.py index cb929961e..343bbc63c 100644 --- a/pip/pyqt6/install_pyqt6.py +++ b/pip/pyqt6/install_pyqt6.py @@ -2,9 +2,7 @@ # MIT """downloads and parses info of a pkg and generates a BUILD file for it""" -import argparse import glob -import logging import os import re import shutil @@ -12,18 +10,6 @@ import subprocess import sys from pip._internal.commands import create_command -from pip._vendor import pkg_resources - - -def _create_nspkg_init(dirpath): - """Creates an init file to enable namespacing""" - if not os.path.exists(dirpath): - # Handle missing namespace packages by ignoring them - return - nspkg_init = os.path.join(dirpath, "__init__.py") - with open(nspkg_init, "w") as nspkg: - nspkg.write("__path__ = __import__('pkgutil').extend_path(__path__, __name__)") - def install_package(pkg, directory, pip_args): """Downloads wheel for a package. Assumes python binary provided has @@ -49,39 +35,11 @@ def install_package(pkg, directory, pip_args): cmd = create_command("install") cmd.main(pip_args) - # need dist-info directory for pkg_resources to be able to find the packages - dist_info = glob.glob(os.path.join(directory, "*.dist-info"))[0] - # fix namespace packages by adding proper __init__.py files - namespace_packages = os.path.join(dist_info, "namespace_packages.txt") - if os.path.exists(namespace_packages): - with open(namespace_packages) as nspkg: - for line in nspkg.readlines(): - namespace = line.strip().replace(".", os.sep) - if namespace: - _create_nspkg_init(os.path.join(directory, namespace)) - - # PEP 420 -- Implicit Namespace Packages - if (sys.version_info[0], sys.version_info[1]) >= (3, 3): - for dirpath, dirnames, filenames in os.walk(directory): - # we are only interested in dirs with no init file - if "__init__.py" in filenames: - dirnames[:] = [] - continue - # remove bin and dist-info dirs - for ignored in ("bin", os.path.basename(dist_info)): - if ignored in dirnames: - dirnames.remove(ignored) - _create_nspkg_init(dirpath) - - def _cleanup(directory, pattern): for p in glob.glob(os.path.join(directory, pattern)): shutil.rmtree(p) -fix_none = re.compile(r"(\s*None) =") - - def copy_and_fix_pyi(source, dest): "Fix broken PyQt types." with open(source) as input_file: @@ -151,6 +109,9 @@ def main(): merge_files(base, folder) shutil.rmtree(folder) + with open(os.path.join(base, "__init__.py"), "w") as file: + file.write("__path__ = __import__('pkgutil').extend_path(__path__, __name__)") + # add missing py.typed file with open(os.path.join(base, "py.typed"), "w") as file: pass