p3lib 1.1.110__py2.py3-none-any.whl → 1.1.112__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/helper.py +11 -5
- p3lib/ngt.py +23 -6
- p3lib/uio.py +16 -16
- {p3lib-1.1.110.dist-info → p3lib-1.1.112.dist-info}/METADATA +1 -1
- {p3lib-1.1.110.dist-info → p3lib-1.1.112.dist-info}/RECORD +7 -7
- {p3lib-1.1.110.dist-info → p3lib-1.1.112.dist-info}/LICENSE +0 -0
- {p3lib-1.1.110.dist-info → p3lib-1.1.112.dist-info}/WHEEL +0 -0
p3lib/helper.py
CHANGED
@@ -383,7 +383,8 @@ def getAbsFile(filename):
|
|
383
383
|
1 - The startup folder
|
384
384
|
2 - An 'assets' folder in the startup folder
|
385
385
|
3 - An 'assets' folder in the startup parent folder
|
386
|
-
|
386
|
+
4 - In a site-packages folder.
|
387
|
+
5 - In an 'assets' folder in a python site-packages folder.
|
387
388
|
@param filename The name of the icon file.
|
388
389
|
@return The abs path of the file or None if not found."""
|
389
390
|
file_found = None
|
@@ -411,14 +412,19 @@ def getAbsFile(filename):
|
|
411
412
|
for path in sys.path:
|
412
413
|
if 'site-packages' in path:
|
413
414
|
site_packages_path = path
|
414
|
-
|
415
|
-
abs_filename =
|
415
|
+
abs_filename = os.path.join(site_packages_path, filename)
|
416
|
+
print(f"PJA: abs_filename={abs_filename}, FOUND={os.path.isfile(abs_filename)}")
|
416
417
|
if os.path.isfile(abs_filename):
|
417
418
|
file_found = abs_filename
|
418
|
-
break
|
419
419
|
|
420
|
-
|
420
|
+
else:
|
421
|
+
path3 = os.path.join(site_packages_path, 'assets')
|
422
|
+
abs_filename = os.path.join(path3, filename)
|
423
|
+
if os.path.isfile(abs_filename):
|
424
|
+
file_found = abs_filename
|
425
|
+
break
|
421
426
|
|
427
|
+
return file_found
|
422
428
|
|
423
429
|
PYPROJECT_FILE = "pyproject.toml"
|
424
430
|
|
p3lib/ngt.py
CHANGED
@@ -28,7 +28,8 @@ class TabbedNiceGui(object):
|
|
28
28
|
# than normal.
|
29
29
|
DESCRIP_STYLE = '<span style="font-size:1.2em;">'
|
30
30
|
ENABLE_BUTTONS = "ENABLE_BUTTONS"
|
31
|
-
|
31
|
+
NOTIFY_DIALOG_INFO = "NOTIFY_DIALOG_INFO"
|
32
|
+
NOTIFY_DIALOG_ERROR = "NOTIFY_DIALOG_ERROR"
|
32
33
|
UPDATE_SECONDS = "UPDATE_SECONDS"
|
33
34
|
INFO_MESSAGE = "INFO: "
|
34
35
|
WARN_MESSAGE = "WARN: "
|
@@ -168,11 +169,23 @@ class TabbedNiceGui(object):
|
|
168
169
|
msgDict = {TabbedNiceGui.ERROR_MESSAGE: str(msg)}
|
169
170
|
self.updateGUI(msgDict)
|
170
171
|
|
171
|
-
def infoDialog(self, msg):
|
172
|
+
def infoDialog(self, msg, addToMessageLog=True):
|
172
173
|
"""@brief Display an info level dialog.
|
173
|
-
@param msg The message dialog.
|
174
|
-
|
174
|
+
@param msg The message dialog.
|
175
|
+
@param addToMessageLog If True the message will also be added to the message log."""
|
176
|
+
msgDict = {TabbedNiceGui.NOTIFY_DIALOG_INFO: str(msg)}
|
175
177
|
self.updateGUI(msgDict)
|
178
|
+
if addToMessageLog:
|
179
|
+
self.info(msg)
|
180
|
+
|
181
|
+
def errorDialog(self, msg, addToMessageLog=True):
|
182
|
+
"""@brief Display an error level dialog.
|
183
|
+
@param msg The message dialog.
|
184
|
+
@param addToMessageLog If True the message will also be added to the message log."""
|
185
|
+
msgDict = {TabbedNiceGui.NOTIFY_DIALOG_ERROR: str(msg)}
|
186
|
+
self.updateGUI(msgDict)
|
187
|
+
if addToMessageLog:
|
188
|
+
self.error(msg)
|
176
189
|
|
177
190
|
def debug(self, msg):
|
178
191
|
"""@brief Send a debug message to be displayed in the GUI.
|
@@ -562,10 +575,14 @@ class TabbedNiceGui(object):
|
|
562
575
|
state = rxDict[TabbedNiceGui.ENABLE_BUTTONS]
|
563
576
|
self._enableAllButtons(state)
|
564
577
|
|
565
|
-
elif TabbedNiceGui.
|
566
|
-
message = rxDict[TabbedNiceGui.
|
578
|
+
elif TabbedNiceGui.NOTIFY_DIALOG_INFO in rxDict:
|
579
|
+
message = rxDict[TabbedNiceGui.NOTIFY_DIALOG_INFO]
|
567
580
|
ui.notify(message, close_button='OK', type="positive", position="center")
|
568
581
|
|
582
|
+
elif TabbedNiceGui.NOTIFY_DIALOG_ERROR in rxDict:
|
583
|
+
message = rxDict[TabbedNiceGui.NOTIFY_DIALOG_ERROR]
|
584
|
+
ui.notify(message, close_button='OK', type="negative", position="center")
|
585
|
+
|
569
586
|
else:
|
570
587
|
|
571
588
|
self._handleGUIUpdate(rxDict)
|
p3lib/uio.py
CHANGED
@@ -217,22 +217,22 @@ class UIO(object):
|
|
217
217
|
value = float(response)
|
218
218
|
else:
|
219
219
|
value = int(response, radix)
|
220
|
-
|
220
|
+
|
221
221
|
if minValue is not None and value < minValue:
|
222
222
|
self.warn(f"The minimum acceptable value is {minValue}")
|
223
|
-
|
223
|
+
|
224
224
|
if maxValue is not None and value > maxValue:
|
225
225
|
self.warn(f"The mximum acceptable value is {maxValue}")
|
226
|
-
|
226
|
+
|
227
227
|
return value
|
228
228
|
|
229
229
|
except ValueError:
|
230
230
|
if floatValue:
|
231
231
|
self.warn("%s is not a valid float value." % (response))
|
232
|
-
|
232
|
+
|
233
233
|
else:
|
234
234
|
self.warn("%s is not a valid integer value." % (response))
|
235
|
-
|
235
|
+
|
236
236
|
if allowQuit and response.lower() == 'q':
|
237
237
|
return None
|
238
238
|
|
@@ -424,7 +424,7 @@ class UIO(object):
|
|
424
424
|
#Ignore if se can't resolve address. We don't really syslog want errors to stop the user interface
|
425
425
|
except:
|
426
426
|
pass
|
427
|
-
|
427
|
+
|
428
428
|
def showTable(self, table, rowSeparatorChar = "-", colSeparatorChar = "|"):
|
429
429
|
"""@brief Show the contents of a table to the user.
|
430
430
|
@param table This must be a list. Each list element must be a table row (list).
|
@@ -435,18 +435,18 @@ class UIO(object):
|
|
435
435
|
# Check we have a table to display
|
436
436
|
if len(table) == 0:
|
437
437
|
raise Exception("No table rows to display")
|
438
|
-
|
438
|
+
|
439
439
|
# Check all rows have the same number of columns in the table
|
440
440
|
colCount = len(table[0])
|
441
441
|
for row in table:
|
442
442
|
if len(row) != colCount:
|
443
443
|
raise Exception(f"{str(row)} column count different from first row ({colCount})")
|
444
|
-
|
444
|
+
|
445
445
|
for row in table:
|
446
446
|
for col in row:
|
447
447
|
if not isinstance(col, str):
|
448
448
|
raise Exception(f"Table column is not a string: {col} in {row}")
|
449
|
-
|
449
|
+
|
450
450
|
# Get the max width for each column
|
451
451
|
for col in range(0,colCount):
|
452
452
|
maxWidth=0
|
@@ -458,10 +458,10 @@ class UIO(object):
|
|
458
458
|
tableWidth = 1
|
459
459
|
for columnWidth in columnWidths:
|
460
460
|
tableWidth += columnWidth + 3 # Space each side of the column + a column divider character
|
461
|
-
|
461
|
+
|
462
462
|
# Add the top line of the table
|
463
463
|
self.info(rowSeparatorChar*tableWidth)
|
464
|
-
|
464
|
+
|
465
465
|
# The starting row index
|
466
466
|
for rowIndex in range(0, len(table)):
|
467
467
|
rowText = colSeparatorChar
|
@@ -473,7 +473,7 @@ class UIO(object):
|
|
473
473
|
self.info(rowText)
|
474
474
|
# Add the row separator line
|
475
475
|
self.info(rowSeparatorChar*tableWidth)
|
476
|
-
|
476
|
+
|
477
477
|
class ConsoleMenu(object):
|
478
478
|
"""@brief Responsible for presenting a list of options to the user on a
|
479
479
|
console/terminal interface and allowing the user to select
|
@@ -508,10 +508,10 @@ class ConsoleMenu(object):
|
|
508
508
|
selectedMethod()
|
509
509
|
else:
|
510
510
|
selectedMethod(*args)
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
511
|
+
|
512
|
+
|
513
|
+
|
514
|
+
|
515
515
|
|
516
516
|
# -------------------------------------------------------------------
|
517
517
|
# @brief An implementation to allow syslog messages to be generated.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: p3lib
|
3
|
-
Version: 1.1.
|
3
|
+
Version: 1.1.112
|
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
|
Home-page: https://github.com/pjaos/test_equipment
|
6
6
|
License: MIT
|
@@ -7,18 +7,18 @@ p3lib/conduit.py,sha256=jPkjdtyCx2I6SFqcEo8y2g7rgnZ-jNY7oCuYIETzT5Q,6046
|
|
7
7
|
p3lib/database_if.py,sha256=XKu1w3zftGbj4Rh54wrWJnoCtqHkhCzJUPN2S70XIKg,11915
|
8
8
|
p3lib/file_io.py,sha256=A7_GKYPlmjRjq6U1YuWhmB0OhLhNm6cWQfQX8qfgYTk,5041
|
9
9
|
p3lib/gnome_desktop_app.py,sha256=zl9SKRBV8ipVg2faCs_gbAr8c42J1N_pntbFGG2BMiE,6694
|
10
|
-
p3lib/helper.py,sha256=
|
10
|
+
p3lib/helper.py,sha256=DYfGYC7hmaZZJVivgnOHQGln5tJshZfJEC0KRIda7QU,14923
|
11
11
|
p3lib/json_networking.py,sha256=6u4s1SmypjTYPnSxHP712OgQ3ZJaxOqIkgHQ1J7Qews,9738
|
12
12
|
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=
|
16
|
+
p3lib/ngt.py,sha256=hdS60qKm9x1j5XG2VOVFxO1RLe5pEcCSsaqP-TZF3Cc,40053
|
17
17
|
p3lib/pconfig.py,sha256=k1WHvmHzOfmkSbP7CrFyT1iTwn5_UROQjk6gltdh7bk,37280
|
18
18
|
p3lib/ssh.py,sha256=OyoAQ_h1L2RfkjTAChDrvLFfl4Fe_gBNdX5rvK-wKiw,42125
|
19
19
|
p3lib/table_plot.py,sha256=RPncwVlGUkkx5Fw0dHQedXo0TSPlTi__VrJBDzaMsuI,32116
|
20
|
-
p3lib/uio.py,sha256=
|
21
|
-
p3lib-1.1.
|
22
|
-
p3lib-1.1.
|
23
|
-
p3lib-1.1.
|
24
|
-
p3lib-1.1.
|
20
|
+
p3lib/uio.py,sha256=Aaxc99XiE3d2f9vLjaN-bZsckoNxay5t0ujdK6PXGrw,23265
|
21
|
+
p3lib-1.1.112.dist-info/LICENSE,sha256=igqTy5u0kVWM1n-NUZMvAlinY6lVjAXKoag0okkS8V8,1067
|
22
|
+
p3lib-1.1.112.dist-info/METADATA,sha256=phxnZrl3uvMeOuongVujRRpxU2bvvPCakw29E4_6_M4,1337
|
23
|
+
p3lib-1.1.112.dist-info/WHEEL,sha256=IrRNNNJ-uuL1ggO5qMvT1GGhQVdQU54d6ZpYqEZfEWo,92
|
24
|
+
p3lib-1.1.112.dist-info/RECORD,,
|
File without changes
|
File without changes
|