From 7b9ac8eee0a4d5a4aabbf036bf798fcfc29e587c Mon Sep 17 00:00:00 2001 From: "Barry-Thomas-Paul: Moss" Date: Tue, 31 Oct 2023 19:28:22 -0400 Subject: [PATCH] working with flatpak --- extension/ZAZPip_v0.10.2.oxt | Bin 81553 -> 81244 bytes source/pip_runner.py | 4 - source/pythonpath/easymacro.py | 23 ++- source/pythonpath/install_flatpak.py | 149 +++++++++++++++++++- source/pythonpath/install_pip_from_wheel.py | 141 ------------------ source/pythonpath/main.py | 29 +++- 6 files changed, 185 insertions(+), 161 deletions(-) delete mode 100644 source/pythonpath/install_pip_from_wheel.py diff --git a/extension/ZAZPip_v0.10.2.oxt b/extension/ZAZPip_v0.10.2.oxt index 2c373983fb62663a5d99b7aca2577fc2fd798794..6332e55aebf8b0a697fb62463ef25e22cffafa13 100644 GIT binary patch delta 47077 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 ke-DyiU_}4z@jt3a89)ZY02*W}Fet<8 delta 47314 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

&JE88=rrKcD^h>-Wwm^nIA0`raXu|sK_KF zu38pie}9N!YApvH-F=+=61V9;U>4{XKWH#AAg_I#Vyav)&+j!ryr8U(GJ4ONFfS%f zjuOF7E}Lr%uFBY%1*m!(ND{xJ`fYCb;Tw*Ilp8#+?+4_Z6mAK^V($-3mXy%nS=Ao3 zFspjuoxYvp7=`s+^?H9FHE6*%9XN|S`e^KkSdTs6Pl8e20Yq#3IsI?>5_)uTj zq5q_9-aWbF;E9r)EdSVBy}x!~z2&-7mSRtEJvnWg{kWZ1Ba5`1 zX7=Ft85X~JxzyNFwwc~MLnQ=WvapZlDWc@ovnC*GGiBT5s4*4iA1O+4kaH|qJn4$( ze}ibTie`95|1~<6 z4WW$3J=c;h3$Ub|qe80O5r0?3jZ;wmq^G*@>GDG9!|c^^8M?9pcNM9rz_UtJe^&5x zDZe9vLx2B*9{v?4lWXPuju!3usYL$Eu3zZaNqjFIrO+3j|0VYwc3EHU-=Pzssc*>B zzz7K5rm93zBYp_UlckR={m&|V^!#ZmugfPo2lc4*XDTt)?<%agej_N3@_P!Q3AGON z?F{|8$EQEuX|GT;t8bIqn<+|ce;9#O5~a$yDx8k6jy#F5iNxQzAOxik-W4$A8iM#p zcI3wjw&wa0zJRSNnxR$OK%;bxSQSJY7hYib)k1#pBdE@aT$Z#hpwfu<+zn@9^IY?# zU%>VR1B5#MG`jp~Qo7QXub-yez3k&80ono_g%rqh-wj^mN4caQvT3T zL(L&T+iz0p@WNkGJr!#Xf6sYz^RBK&3!S_I_mq6^wV3x5$a-w)4{=tBmRd&(+TX*Y z2}g^w#k71FQesj5y_>F}x5XBqA|t(--@tdP8QvhT2k;vCQaPwv z`-+bkezMpKR7!SC&yJ@f+E7^Ehv{^zM0W;p6yj^bJ4v94&H{Ae?SE(qpS@noq6aGaThfz7RFkylt7Kt8C_pmcDhjcLPs~d+JQ8 z8@E%pWdwCsM2~L+M(dh$H1%W9+m|!YNJW3%*t>f~*CGY`0mGYNw15kYB2a^HlOtGf zao=9v3MAFZTJku`f5z9NNg2)FV3VQ)RXJPz&{h_5%)cWJmxfC^&f7SUE3wh5PWmEhdDHM&i ziog-oEFDu*w!%OpeDkuro;6UlKDAN@c6@WrIvc}t%t|5Xh!yj+v!*3;XJR%fO1o$J zFe%BDH`AV}b(aEb$JV`F|73m9*Y~V>W7Q7Ja8Z3uIT-}WLD`T&kUgZ{b{Wo7Wpmhc zuou)#BB(Lze>73?V`6p5i!51O=@fnzszk+Fl^x5&#U1>S9xn5JJ_)?}1@Y#3PE2gqDtg)VxU()^McCe{4m1>VnIL#J<$N6A2e_HRLFSj?ny!KoBB_9z30}3PO zLDvIAYP_4W>wtk5Zkkcl$cgK=i0L)e+l_s|L*f$H@QK=8^ckF_g8BwsQ_7qgERER= z1xytR9LUjnPA1PbcUjstoh-byo>FVadtJvO2*~*CpTq#L~0O$tOR(4F_fFZmzw0xB3Wq6k)tC#HJdK1)Km%_>&T*z z_Q_B5yP#k3hyG#$ugxkdmQda>&NjEQSD@8we{PLm)jK;M;Q|Y-&Fp$d7$A1=I(_Lj z_M);AX}!-)jKlAKJ2 zVs9fk?f-aMk7G#sXe|;9a6a4b)#E`)wwgumH4?YnD~*Rstz4XDxQ0kY?qrZh2h}pe ze=vA2Fk?M`X`O#art&@d+gjV!kqrD(P0P!s5rqz9NkVG~_MiZ6nSibmVpk%@!K}kh zrOz$fjmH=PP!$Q9OU9Va(x_mJO(;1Ih6;4)7EL=I#>Ku4rSM;{8eqwgKP;?hqEPCz zB2BYNvWRBZ{pe_46RzO7i!8*89Avpkf2RYqf%-YggBQWDzjJiBI~?uy-ZeD?Fz@zG z`=g`1ywjTEe1dqsZ|Sa_YTvfzv0t8ZVvgeK9ed9nZ%0A7BpUU7$Y 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 diff --git a/source/pip_runner.py b/source/pip_runner.py index 36ee398..f23a058 100644 --- a/source/pip_runner.py +++ b/source/pip_runner.py @@ -18,7 +18,6 @@ if TYPE_CHECKING: implementation_name = "net.elmau.zaz.pip.PipRunner" implementation_services = ("com.sun.star.task.Job",) - # endregion Constants @@ -51,10 +50,7 @@ class PipRunner(unohelper.Base, XJob): # region Implementation g_TypeTable = {} -# python loader looks for a static g_ImplementationHelper variable g_ImplementationHelper = unohelper.ImplementationHelper() -# add the FormatFactory class to the implementation container, -# which the loader uses to register/instantiate the component. g_ImplementationHelper.addImplementation(PipRunner, implementation_name, implementation_services) # endregion Implementation \ No newline at end of file diff --git a/source/pythonpath/easymacro.py b/source/pythonpath/easymacro.py index 5dc49b3..9b115a4 100644 --- a/source/pythonpath/easymacro.py +++ b/source/pythonpath/easymacro.py @@ -596,13 +596,24 @@ def call_macro(args, in_thread=False): result = _call_macro(args) return result - +def get_env(): + """ + Gets Environment used for subprocess. + """ + my_env = os.environ.copy() + py_path = "" + p_sep = ";" if IS_WIN else ":" + for d in sys.path: + py_path = py_path + d + p_sep + my_env["PYTHONPATH"] = py_path + return my_env + def run(command, capture=False, split=True): if not split: - return subprocess.check_output(command, shell=True).decode() + return subprocess.check_output(command, shell=True, env=get_env()).decode() cmd = shlex.split(command) - result = subprocess.run(cmd, capture_output=capture, text=True, shell=IS_WIN) + result = subprocess.run(cmd, capture_output=capture, text=True, shell=IS_WIN, env=get_env()) if capture: result = result.stdout else: @@ -613,7 +624,7 @@ def run(command, capture=False, split=True): def popen(command): try: proc = subprocess.Popen(shlex.split(command), shell=IS_WIN, - stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + stdout=subprocess.PIPE, stderr=subprocess.STDOUT, env=get_env()) for line in proc.stdout: yield line.decode().rstrip() except Exception as e: @@ -6320,7 +6331,7 @@ class Paths(object): if IS_WIN: os.startfile(path) else: - pid = subprocess.Popen(['xdg-open', path]).pid + pid = subprocess.Popen(['xdg-open', path, ], env=get_env()).pid return @classmethod @@ -6904,7 +6915,7 @@ class LOServer(object): for i in range(3): self._server = subprocess.Popen(self.CMD, - stdout=subprocess.PIPE, stderr=subprocess.PIPE) + stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=get_env()) time.sleep(3) if self.is_running: break diff --git a/source/pythonpath/install_flatpak.py b/source/pythonpath/install_flatpak.py index cd310fa..5f98199 100644 --- a/source/pythonpath/install_flatpak.py +++ b/source/pythonpath/install_flatpak.py @@ -2,11 +2,148 @@ from __future__ import annotations from typing import cast import os import sys +import tempfile import subprocess from pathlib import Path from typing import Any, List, Dict import easymacro as app -from install_pip_from_wheel import InstallPipFromWheel +from contextlib import contextmanager +import uno + + +@contextmanager +def change_dir(directory): + """ + A context manager that changes the current working directory to the specified directory + temporarily and then changes it back when the context is exited. + """ + current_dir = os.getcwd() + os.chdir(directory) + try: + yield + finally: + os.chdir(current_dir) + + +class InstallPipFromWheel: + """Download and install PIP from wheel url""" + + def __init__(self, pip_wheel_url: str, lo_identifier: str) -> None: + self._pip_url = pip_wheel_url + self._lo_identifier = lo_identifier + + def install(self, dst: str | Path = "") -> None: + """ + Install pip from wheel file. + + Downloads the pip wheel file from the url provided in the config file and unzips it to the destination directory. + + Args: + dst (str | Path, Optional): The destination directory where the pip wheel file will be installed. If not provided, the ``pythonpath`` location will be used. + + Returns: + None: + + Raises: + None: + """ + if not self._pip_url: + app.error("PIP installation has failed - No wheel url") + return + + if not dst: + root_pth = Path(app.Paths.from_id(self._lo_identifier)) + dst = root_pth / "pythonpath" + + with tempfile.TemporaryDirectory() as temp_dir: + # temp_dir = tempfile.gettempdir() + path_pip = Path(temp_dir) + + filename = path_pip / "pip-wheel.whl" + + data, _, err = app.url_open(self._pip_url, verify=False) + if err: + app.error("Unable to download PIP installation wheel file") + return + filename.write_bytes(data) + + if filename.exists(): + app.info("PIP wheel file has been saved") + else: + app.error("PIP wheel file has not been saved") + return + + try: + self._unzip_wheel(filename=filename, dst=dst) + except Exception: + return + # now that pip has been installed from wheel force a reinstall to ensure it is the latest version + self._force_install_pip() + + def _unzip_wheel(self, filename: Path, dst: str | Path) -> None: + """Unzip the downloaded wheel file""" + if isinstance(dst, str): + dst = Path(dst) + try: + # app.zip.unzip(source=str(filename), target=str(dst)) + self.unzip_file(zip_file=filename, dest_dir=dst) + if dst.exists(): + app.debug(f"PIP wheel file has been unzipped to {dst}") + else: + app.error("PIP wheel file has not been unzipped") + raise Exception("PIP wheel file has not been unzipped") + except Exception as err: + app.error(f"Unable to unzip wheel file: {err}", exc_info=True) + raise + + def _force_install_pip(self) -> None: + """Now that pip has been installed, force reinstall it to ensure it is the latest version""" + cmd = [app.paths.python, "-m", "pip", "install", "--upgrade", "pip"] + app.popen(command=" ".join(cmd)) + + def unzip_file(self, zip_file: str | Path, dest_dir: str | Path = "") -> None: + """ + Unzip the given zip file to the specified destination directory. + + Args: + zip_file (str | Path): The zip file to unzip. + dest_dir (str | Path, optional): The destination directory to unzip to. + + Returns: + None: + """ + from zipfile import ZipFile + + zip_file_path = Path(zip_file) if isinstance(zip_file, str) else zip_file + if not zip_file_path.is_file(): + raise ValueError(f"Expected file, got '{zip_file_path}'") + if not zip_file_path.is_absolute(): + zip_file_path = zip_file_path.absolute() + if not zip_file_path.exists(): + raise FileNotFoundError(f"File '{zip_file_path}' not found") + + if isinstance(dest_dir, str): + dest_dir = zip_file_path.parent if dest_dir == "" else Path(dest_dir) + else: + dest_dir = dest_dir.absolute() + + if not dest_dir.is_dir(): + raise ValueError(f"Expected folder, got '{dest_dir}'") + if not dest_dir.exists(): + try: + dest_dir.mkdir(parents=True) + except Exception as e: + raise FileNotFoundError( + f"Folder '{dest_dir}' not found, unable to create folder." + ) from e + if not dest_dir.exists(): + raise FileNotFoundError(f"Folder '{dest_dir}' not found") + + with change_dir(dest_dir): + with ZipFile(zip_file_path) as f: + f.extractall(dest_dir) + # with change_dir(dest_dir): + # shutil.unpack_archive(zip_file_path, dest_dir) class FlatpakInstaller: @@ -53,7 +190,9 @@ class FlatpakInstaller: def _install_wheel(self) -> bool: result = False - installer = InstallPipFromWheel(pip_wheel_url=self._pip_url, lo_identifier=self._lo_identifier) + installer = InstallPipFromWheel( + pip_wheel_url=self._pip_url, lo_identifier=self._lo_identifier + ) try: installer.install(self._site_packages) if self._site_packages not in sys.path: @@ -64,12 +203,12 @@ class FlatpakInstaller: return result return result - def is_pip_installed(self) -> bool: """Check if PIP is installed.""" # cmd = self._cmd_pip("--version") # cmd = '"{}" -m pip -V'.format(self.path_python) cmd = [str(self.path_python), "-m", "pip", "-V"] - result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=self._get_env()) + result = subprocess.run( + cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=self._get_env() + ) return result.returncode == 0 - diff --git a/source/pythonpath/install_pip_from_wheel.py b/source/pythonpath/install_pip_from_wheel.py deleted file mode 100644 index 3f9950b..0000000 --- a/source/pythonpath/install_pip_from_wheel.py +++ /dev/null @@ -1,141 +0,0 @@ -from __future__ import annotations -import os -from typing import Any -import tempfile -from pathlib import Path -import easymacro as app -from contextlib import contextmanager -import uno - - -@contextmanager -def change_dir(directory): - """ - A context manager that changes the current working directory to the specified directory - temporarily and then changes it back when the context is exited. - """ - current_dir = os.getcwd() - os.chdir(directory) - try: - yield - finally: - os.chdir(current_dir) - - -class InstallPipFromWheel: - """Download and install PIP from wheel url""" - - def __init__(self, pip_wheel_url: str, lo_identifier: str) -> None: - self._pip_url = pip_wheel_url - self._lo_identifier = lo_identifier - - def install(self, dst: str | Path = "") -> None: - """ - Install pip from wheel file. - - Downloads the pip wheel file from the url provided in the config file and unzips it to the destination directory. - - Args: - dst (str | Path, Optional): The destination directory where the pip wheel file will be installed. If not provided, the ``pythonpath`` location will be used. - - Returns: - None: - - Raises: - None: - """ - if not self._pip_url: - app.error("PIP installation has failed - No wheel url") - return - - if not dst: - root_pth = Path(app.Paths.from_id(self._lo_identifier)) - dst = root_pth / "pythonpath" - - with tempfile.TemporaryDirectory() as temp_dir: - # temp_dir = tempfile.gettempdir() - path_pip = Path(temp_dir) - - filename = path_pip / "pip-wheel.whl" - - data, _, err = app.url_open(self._pip_url, verify=False) - if err: - app.error("Unable to download PIP installation wheel file") - return - filename.write_bytes(data) - - if filename.exists(): - app.info("PIP wheel file has been saved") - else: - app.error("PIP wheel file has not been saved") - return - - try: - self._unzip_wheel(filename=filename, dst=dst) - except Exception: - return - # now that pip has been installed from wheel force a reinstall to ensure it is the latest version - self._force_install_pip() - - def _unzip_wheel(self, filename: Path, dst: str | Path) -> None: - """Unzip the downloaded wheel file""" - if isinstance(dst, str): - dst = Path(dst) - try: - # app.zip.unzip(source=str(filename), target=str(dst)) - self.unzip_file(zip_file=filename, dest_dir=dst) - if dst.exists(): - app.debug(f"PIP wheel file has been unzipped to {dst}") - else: - app.error("PIP wheel file has not been unzipped") - raise Exception("PIP wheel file has not been unzipped") - except Exception as err: - app.error(f"Unable to unzip wheel file: {err}", exc_info=True) - raise - - def _force_install_pip(self) -> None: - """Now that pip has been installed, force reinstall it to ensure it is the latest version""" - cmd = [app.paths.python, "-m", "pip", "install", "--upgrade", "pip"] - app.popen(command=" ".join(cmd)) - - def unzip_file(self, zip_file: str | Path, dest_dir: str | Path = "") -> None: - """ - Unzip the given zip file to the specified destination directory. - - Args: - zip_file (str | Path): The zip file to unzip. - dest_dir (str | Path, optional): The destination directory to unzip to. - - Returns: - None: - """ - from zipfile import ZipFile - - zip_file_path = Path(zip_file) if isinstance(zip_file, str) else zip_file - if not zip_file_path.is_file(): - raise ValueError(f"Expected file, got '{zip_file_path}'") - if not zip_file_path.is_absolute(): - zip_file_path = zip_file_path.absolute() - if not zip_file_path.exists(): - raise FileNotFoundError(f"File '{zip_file_path}' not found") - - if isinstance(dest_dir, str): - dest_dir = zip_file_path.parent if dest_dir == "" else Path(dest_dir) - else: - dest_dir = dest_dir.absolute() - - if not dest_dir.is_dir(): - raise ValueError(f"Expected folder, got '{dest_dir}'") - if not dest_dir.exists(): - try: - dest_dir.mkdir(parents=True) - except Exception as e: - raise FileNotFoundError(f"Folder '{dest_dir}' not found, unable to create folder.") from e - if not dest_dir.exists(): - raise FileNotFoundError(f"Folder '{dest_dir}' not found") - - with change_dir(dest_dir): - with ZipFile(zip_file_path) as f: - f.extractall(dest_dir) - # with change_dir(dest_dir): - # shutil.unpack_archive(zip_file_path, dest_dir) diff --git a/source/pythonpath/main.py b/source/pythonpath/main.py index bd66353..e0c47ce 100644 --- a/source/pythonpath/main.py +++ b/source/pythonpath/main.py @@ -120,7 +120,7 @@ class Controllers(object): self.d.lbl_pip.value = label self.d.cmd_install_pip.visible = False self.d.cmd_admin_pip.visible = True - msg = _('PIP was installed sucessfully') + msg = _('PIP was installed successfully') app.msgbox(msg) else: msg = _('PIP installation has failed, see log') @@ -131,9 +131,25 @@ class Controllers(object): return def _install_pip_flatpak(self) -> None: - from install_flatpak import FlatpakInstaller - installer = FlatpakInstaller(pip_wheel_url=URL_PIP_WHEEL, lo_identifier=ID_EXTENSION) - installer.install_pip() + try: + from install_flatpak import FlatpakInstaller + installer = FlatpakInstaller(pip_wheel_url=URL_PIP_WHEEL, lo_identifier=ID_EXTENSION) + installer.install_pip() + msg = _('PIP was installed successfully') + # app.msgbox(msg) + cmd = self._cmd_pip('-V') + label = app.run(cmd, True) + if label: + self.d.lbl_pip.value = label + self.d.cmd_install_pip.visible = False + self.d.cmd_admin_pip.visible = True + msg = _('PIP was installed successfully') + app.msgbox(msg) + else: + msg = _('PIP installation has failed, see log') + app.warning(msg) + except Exception as e: + app.errorbox(e) @app.run_in_thread def _install_pip(self): @@ -244,7 +260,10 @@ class Controllers(object): self.d.lst_log.visible = True line = '' - cmd = ' install --upgrade --user' + if self.is_flatpak: + cmd = f' install --upgrade --target={app.get_flatpak_site_packages_dir()}' + else: + cmd = ' install --upgrade --user' if value: name = value.split(' ')[0].strip() cmd = self._cmd_pip(f'{cmd} {name}')