p3lib 1.1.119__py2.py3-none-any.whl → 1.1.121__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
p3lib/ngt.py CHANGED
@@ -274,6 +274,9 @@ class TabbedNiceGui(object):
274
274
  def setLogFile(self, logFile):
275
275
  pass
276
276
 
277
+ def storeToDebugLog(self, msg):
278
+ pass
279
+
277
280
  # End ------------------------------
278
281
 
279
282
  def _saveLogMsg(self, msg):
@@ -863,7 +866,7 @@ class local_file_picker(ui.dialog):
863
866
  if platform.system() == 'Windows' and directory and len(directory) >= 2:
864
867
  if directory[0].isalpha() and directory[1] == ':':
865
868
  self._selected_drive = directory[:2]
866
- directory = directory[2:] + "\\\\"
869
+ directory = directory[2:]
867
870
 
868
871
  self.path = Path(directory).expanduser()
869
872
  if upper_limit is None:
p3lib/windows_app.py ADDED
@@ -0,0 +1,83 @@
1
+ import sys
2
+ import os
3
+ from p3lib.helper import getAbsFile
4
+
5
+
6
+ class WindowsApp():
7
+ """@brief Responsible for adding and removing Windows app shortcuts to the desktop for launching applications on a Windows system."""
8
+
9
+ def __init__(self, uio=None):
10
+ self._uio = uio
11
+
12
+ def info(self, msg):
13
+ """@brief Show an info level message to the user.
14
+ @param msg The msessage text."""
15
+ if self._uio:
16
+ self._uio.info(msg)
17
+
18
+ def _get_startup_file(self):
19
+ """@return Get the abs name of the program first started."""
20
+ return os.path.abspath(sys.argv[0])
21
+
22
+ def _get_app_name(self):
23
+ """@return The name of the running program without the .py extension."""
24
+ app_name = self._get_startup_file()
25
+ app_name = os.path.basename(app_name)
26
+ return app_name.replace(".py", "")
27
+
28
+ def _get_shortcut_folder(self):
29
+ temp_dir = os.path.join(os.getenv("TEMP"), "my_temp_shortcuts")
30
+ os.makedirs(temp_dir, exist_ok=True)
31
+ return temp_dir
32
+
33
+ def _get_shortcut(self):
34
+ package_name = self._get_app_name()
35
+ desktop = os.path.join(os.getenv("USERPROFILE"), "Desktop")
36
+ shortcut_path = os.path.join(desktop, f"{package_name}.lnk")
37
+ return shortcut_path
38
+
39
+ def create(self, icon_filename=None):
40
+ """@brief Create a start menu item to launch a program.
41
+ @param package_name The name of the package.
42
+ @param icon_filename The name of the icon file."""
43
+ from win32com.client import Dispatch
44
+ package_name = self._get_app_name()
45
+ exe_name = f"{package_name}.exe"
46
+
47
+ # Locate the pipx-installed executable
48
+ pipx_venv_path = os.path.expanduser(f"~\\.local\\bin\\{exe_name}")
49
+ if not os.path.isfile(pipx_venv_path):
50
+ raise Exception(f"{pipx_venv_path} file not found.")
51
+
52
+ icon_path = None
53
+ if icon_filename:
54
+ icon_path = getAbsFile(icon_filename)
55
+ if icon_path:
56
+ if os.path.isfile(icon_path):
57
+ self.info(f"{icon_path} icon file found.")
58
+ else:
59
+ raise Exception(f"{icon_path} file not found.")
60
+
61
+ shortcut_path = self._get_shortcut()
62
+
63
+ # Create the shortcut
64
+ shell = Dispatch("WScript.Shell")
65
+ shortcut = shell.CreateShortcut(shortcut_path)
66
+ shortcut.TargetPath = pipx_venv_path # Path to your executable or script
67
+ shortcut.WorkingDirectory = os.path.dirname(pipx_venv_path)
68
+ shortcut.IconLocation = icon_path # Optional: Set an icon
69
+ shortcut.Save()
70
+
71
+ if not os.path.isfile(shortcut_path):
72
+ raise Exception(f"{shortcut_path} shortcut file missing after creation.")
73
+
74
+ self.info(f"{shortcut_path} shortcut created.")
75
+
76
+ def delete(self):
77
+ shortcut_path = self._get_shortcut()
78
+
79
+ if os.path.exists(shortcut_path):
80
+ os.remove(shortcut_path)
81
+ self.info(f"Removed '{shortcut_path}' shortcut.")
82
+ else:
83
+ raise Exception(f"{shortcut_path} file not found.")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: p3lib
3
- Version: 1.1.119
3
+ Version: 1.1.121
4
4
  Summary: A group of python modules for networking, plotting data, config storage, automating boot scripts, ssh access and user input output.
5
5
  License: MIT
6
6
  Author: Paul Austen
@@ -13,12 +13,13 @@ p3lib/login.html,sha256=DADTJGuvWQ-LTO4X6SaFdqK7JMW03DAa3lRieGD0d6g,2748
13
13
  p3lib/mqtt_rpc.py,sha256=6LmFA1kR4HSJs9eWbOJORRHNY01L_lHWjvtE2fmY8P8,10511
14
14
  p3lib/netif.py,sha256=3QV5OGdHhELIf4MBj6mx5MNCtVeZ7JXoNEkeu4KzCaE,9796
15
15
  p3lib/netplotly.py,sha256=PMDx-w1jtRVW6Od5u_kuKbBxNpTS_Y88mMF60puMxLM,9363
16
- p3lib/ngt.py,sha256=YQdAr8mvBka6QS9ZeG_WWh9rmtF7Tg8VXBpjYqp6eK0,43349
16
+ p3lib/ngt.py,sha256=v1VZXN3qylLuGe53EkK25sn3esX96dq8jlLOfhQN6Zk,43390
17
17
  p3lib/pconfig.py,sha256=wGC6UJAIBksRjwKTfaw3Y6vAMkgey0QC2nhkCtqj1MQ,37738
18
18
  p3lib/ssh.py,sha256=OyoAQ_h1L2RfkjTAChDrvLFfl4Fe_gBNdX5rvK-wKiw,42125
19
19
  p3lib/table_plot.py,sha256=RPncwVlGUkkx5Fw0dHQedXo0TSPlTi__VrJBDzaMsuI,32116
20
20
  p3lib/uio.py,sha256=Aaxc99XiE3d2f9vLjaN-bZsckoNxay5t0ujdK6PXGrw,23265
21
- p3lib-1.1.119.dist-info/LICENSE,sha256=igqTy5u0kVWM1n-NUZMvAlinY6lVjAXKoag0okkS8V8,1067
22
- p3lib-1.1.119.dist-info/METADATA,sha256=hkGUXMo9YNIYxrwSPzmJ4XScwP0mypGXUdHafjsjAVg,1382
23
- p3lib-1.1.119.dist-info/WHEEL,sha256=5druYqcII7zHXzX7qmN0TH895Jg3yuTtfjMgJIVBrKE,92
24
- p3lib-1.1.119.dist-info/RECORD,,
21
+ p3lib/windows_app.py,sha256=cSkGDIakamxylhOYk0BHjjUQwBBhOq7sij4a7xs9v44,3057
22
+ p3lib-1.1.121.dist-info/LICENSE,sha256=igqTy5u0kVWM1n-NUZMvAlinY6lVjAXKoag0okkS8V8,1067
23
+ p3lib-1.1.121.dist-info/METADATA,sha256=AjqxekZBuCKiGmHk1RKLjJSREv-01agXV6R7XqcU2GE,1382
24
+ p3lib-1.1.121.dist-info/WHEEL,sha256=5druYqcII7zHXzX7qmN0TH895Jg3yuTtfjMgJIVBrKE,92
25
+ p3lib-1.1.121.dist-info/RECORD,,