Updated Bridge app

This commit is contained in:
Kevin Santo Cappuccio 2023-07-20 08:24:03 -07:00
parent b85d89da62
commit 54185e26a0
11 changed files with 642 additions and 387 deletions

View File

@ -0,0 +1,5 @@
fuck https://wokwi.com/projects/369614891595393025
fuck2 https://wokwi.com/projects/367384677537829889
fuck3 https://wokwi.com/projects/369024970682423297
LEDarray https://wokwi.com/projects/370450364106546177

View File

@ -5,10 +5,10 @@ import requests
import json
import serial
import time
import runpy
import subprocess
import sys
import codecs
import os
#import pyduinocli
#from watchedserial import WatchedReaderThread
@ -16,7 +16,6 @@ import codecs
import serial.tools.list_ports
debug = False
@ -31,24 +30,49 @@ stringified = 0
lastDiagram = 1
menuEntered = 0
portName = ' '
def openSerial():
global portName
global ser
serialconnected = 0
portSelected = 0
print("\n\r")
while portSelected == False:
autodetected = -1
ports = serial.tools.list_ports.comports()
i = 0
for port, desc, hwid in ports:
i = i + 1
print("{}: {} [{}]".format(i, port, desc))
if desc == "Jumperless":
autodetected = i
selection = -1
if autodetected != -1:
selection = autodetected
print("\n\n\rAutodetected Jumperless at", end=" ")
print(ports[int(selection) - 1].device)
portName = ports[int(selection) - 1].device
portSelected = True
serialconnected = 1
else:
selection = input(
"\n\n\rSelect the port connected to your Jumperless ('r' to rescan)\n\n\r")
selection = input ("\n\n\rSelect the port connected to your Jumperless ('r' to rescan)\n\n\r")
#selection = "3"
if selection.isdigit() == True and int(selection) <= i:
portName = ports[int(selection) - 1].device
portSelected = True
print(ports[int(selection) - 1].device)
serialconnected = 1
#print(0 in ports)
@ -56,6 +80,9 @@ while portSelected == False:
ser = serial.Serial(portName, 115200, timeout=None)
openSerial()
justChecked = 0
reading = 0
@ -72,10 +99,8 @@ def check_presence(correct_port, interval=.15):
if (reading == 0):
portFound = 0
for port in serial.tools.list_ports.comports():
if portName in port.device:
@ -84,8 +109,6 @@ def check_presence(correct_port, interval=.15):
#print (portFound)
if portFound >= 1:
try:
ser = serial.Serial(portName, 115200, timeout=None)
@ -96,7 +119,6 @@ def check_presence(correct_port, interval=.15):
except:
continue
else:
justreconnected = 1
justChecked = 0
@ -104,49 +126,283 @@ def check_presence(correct_port, interval=.15):
ser.close()
time.sleep(interval)
import threading
port_controller = threading.Thread(target=check_presence, args=(portName, .15,), daemon=True)
port_controller = threading.Thread(
target=check_presence, args=(portName, .15,), daemon=True)
# port_controller.daemon(True)
port_controller.start()
# 555 project
# https://wokwi.com/projects/369024970682423297
# the website URL
#url_link = "https://wokwi.com/projects/369024970682423297"
url_link = input('\n\n\rPaste the link to you Wokwi project here:\n\n\r')
url_link = 0
while True:
def openProject():
global url_link
url_entered = 0
url_selected = 0
entryType = -1 # 0 for index, 1 for name, 2 for link
checkurl = ' '
while (url_selected == 0):
print('\n\n\rChoose from saved projects or paste the link to you Wokwi project:\n\n\r')
try:
checkurl = requests.get(url_link)
if (checkurl.status_code == requests.codes.ok):
break
else:
url_link = input('\n\n\rBad link\n\n\rPaste the link to you Wokwi project here:\n\n\r')
continue
f = open("savedWokwiProjects.txt", "r")
except:
url_link = input('\n\n\rBad link\n\n\rPaste the link to you Wokwi project here:\n\n\r')
f = open("savedWokwiProjects.txt", "x")
f = open("savedWokwiProjects.txt", "r")
index = 0
lines = f.readlines()
for line in lines:
if (line != '\n'):
index += 1
print(index, end="\t")
print(line)
linkInput = input('\n\n\r')
if (linkInput.startswith("http") == True):
entryType = 2
elif (linkInput.isdigit() == True) and (int(linkInput) <= len(lines)):
otherIndex = 0
for idx in lines:
if (idx != '\n'):
otherIndex += 1
if (otherIndex == int(linkInput)):
idx = idx.rsplit('\t\t')
idxLink = idx[1].rstrip('\n')
#print("\n\n\rRunning project ", end='')
#print(idx[0])
entryType = 2
linkInput = idxLink.rstrip('\n')
break
else:
for name in lines:
if name != '\n':
name = name.rsplit('\t\t')
nameText = name[0]
#print (nameText)
if (nameText == linkInput):
entryType = 2
linkInput = name[1].rstrip('\n')
break
checkurl = ' '
url_link = linkInput
# print("\n\n\r linkInput = ", end='')
# print(linkInput)
# print("\n\n\r url_link = ", end='')
# print(url_link)
#checkurl = requests.get(url_link)
#print(checkurl.status_code)
try:
checkurl = requests.get(url_link)
#print(checkurl.status_code)
if (checkurl.status_code == requests.codes.ok):
url_selected = 1
# break
else:
print("\n\n\rBad Link")
url_link = 0
linkInput = 0
#url_link = input('\n\n\rBad link\n\n\rPaste the link to you Wokwi project here:\n\n\r')
continue
except:
print("\n\n\rBad Link!!!")
url_link = 0
#url_link = input('\n\n\rBad link\n\n\rPaste the link to you Wokwi project here:\n\n\r')
continue
matchFound = 0
line = 0
index = 0
for line in lines:
if (line != '\n'):
line = line.rsplit('\t\t')
name = line[0]
line = line[1]
line = line.rstrip('\n')
index += 1
if line == linkInput:
#print ( "Match Found at index ", end = '')
matchFound = index
print("\n\n\rRunning project ", end='')
print(name)
#print (matchFound)
#print (line)
break
#index += 1
#print(index, end="\t")
# print(line)
if matchFound == 0:
name = input("\n\n\rEnter a name for this new project\n\n\r")
f.close()
f = open("savedWokwiProjects.txt", "a")
f.write(name)
f.write('\t\t')
f.write(linkInput)
f.write("\n\r")
url_link = linkInput
f.close()
openProject()
print("\n\n\rSave your Wokwi project to update the Jumperless\n\n\rEnter 'menu' for Bridge App menu\n\n\r")
def bridgeMenu():
global menuEntered
global ser
while(menuEntered == 1):
print("\t\t\tBridge App Menu\n\n\r")
print("\t\td = Delete Saved Projects\n\r")
print("\t\tr = Restart Bridge App\n\r")
print("\t\ts = Restart Serial\n\r")
print("\t\tl = Load Project\n\r")
print("\t\tj = Go Back To Jumperless\n\r")
menuSelection = input("\n\n\r")
if (menuSelection == 's'):
ser.close()
openSerial()
#time.sleep(1)
menuEntered = 0
time.sleep(.5)
ser.write(b'm')
break
if (menuSelection == 'l'):
openProject()
#time.sleep(1)
menuEntered = 0
time.sleep(.75)
ser.write(b'm')
break
if (menuSelection == 'r'):
ser.close()
openSerial()
openProject()
#time.sleep(1)
menuEntered = 0
time.sleep(.5)
ser.write(b'm')
break
if(menuSelection == 'j'):
menuEntered = 0
time.sleep(.5)
ser.write(b'm')
break
while (menuSelection == 'd'):
print('\n\n\rEnter the index of the project you\'d like to delete:\n\n\rr = Return To Menu\ta = Delete All\n\n\r')
try:
f = open("savedWokwiProjects.txt", "r")
except:
f = open("savedWokwiProjects.txt", "x")
f = open("savedWokwiProjects.txt", "r")
index = 0
lines = f.readlines()
for line in lines:
if (line != '\n'):
index += 1
print(index, end="\t")
print(line)
linkInput = input('\n\n\r')
if (linkInput == 'a'):
f.close()
f = open("savedWokwiProjects.txt", "w")
f.close()
if (linkInput.isdigit() == True) and (int(linkInput) <= index):
otherIndex = 0
realIndex = 0
for idx in lines:
if (idx != '\n'):
otherIndex += 1
if (otherIndex == int(linkInput)):
print(idx)
del lines[realIndex]
#del lines[idx+1]
idx = idx.rsplit('\t\t')
idxLink = idx[1].rstrip('\n')
print("\n\n\rDeleting project ", end='')
print(idx[0])
break
realIndex += 1
f.close()
f = open("savedWokwiProjects.txt", "w")
for line in lines:
f.write(line)
f.close()
f = open("savedWokwiProjects.txt", "r")
print (f.read())
f.close()
#menuEntered = 0
else:
break
print("\n\n\rSave your Wokwi project to update the Jumperless\n\n\r")
@ -156,16 +412,19 @@ def serialTermIn():
global ser
global justChecked
global reading
readLength = 0
global menuEntered
while True:
readLength = 0
while menuEntered == 0:
try:
if (ser.in_waiting > 0):
#justChecked = 0
reading = 1
inputBuffer = b' '
waiting = ser.in_waiting
while True:
@ -183,9 +442,9 @@ def serialTermIn():
inputBuffer = str(inputBuffer)
inputBuffer.encode()
decoded_string = codecs.escape_decode(bytes(inputBuffer, "utf-8"))[0].decode("utf-8")
decoded_string = codecs.escape_decode(
bytes(inputBuffer, "utf-8"))[0].decode("utf-8")
decoded_string = decoded_string.lstrip("b' ")
decoded_string = decoded_string.rstrip("'")
@ -196,7 +455,6 @@ def serialTermIn():
#justChecked = 0
reading = 0
except:
portNotFound = 1
print("Disconnected")
@ -210,8 +468,6 @@ def serialTermIn():
portFound = 1
#print (port.device)
if portFound >= 1:
ser = serial.Serial(portName, 115200, timeout=None)
justChecked = 1
@ -220,8 +476,6 @@ def serialTermIn():
justChecked = 0
portNotFound = 0
else:
justreconnected = 1
justChecked = 0
@ -232,7 +486,6 @@ def serialTermIn():
time.sleep(.1)
port_controller = threading.Thread(target=serialTermIn, daemon=True)
# port_controller.daemon(True)
port_controller.start()
@ -243,12 +496,20 @@ def serialTermOut():
global ser
global justChecked
global justreconnected
global menuEntered
resetEntered = 0
while True:
resetEntered = 0
while (menuEntered == 0):
outputBuffer = input()
if (outputBuffer == 'menu') or (outputBuffer == 'Menu'):
print("Menu Entered")
menuEntered = 1
continue
if outputBuffer == b'r':
resetEntered = 1
@ -266,7 +527,6 @@ def serialTermOut():
except:
portNotFound = 1
while (portNotFound == 1):
portFound = 0
@ -277,18 +537,15 @@ def serialTermOut():
portFound = 1
#print (port.device)
if portFound >= 1:
ser = serial.Serial(portName, 115200, timeout= None)
ser = serial.Serial(
portName, 115200, timeout=None)
justChecked = 1
serialconnected = 1
time.sleep(0.05)
justChecked = 0
portNotFound = 0
else:
justreconnected = 1
justChecked = 0
@ -300,15 +557,14 @@ def serialTermOut():
print(outputBuffer.encode('ascii'))
ser.write(outputBuffer.encode('ascii'))
if (resetEntered == 1):
time.sleep(.5)
print("reset")
justreconnected = 1
# time.sleep(.5)
port_controller = threading.Thread(target=serialTermOut, daemon=True)
port_controller.start()
@ -317,6 +573,8 @@ time.sleep(.75)
while True:
if (menuEntered == 1):
bridgeMenu()
# while portIsUsable(portName) == True:
# print('fuck')
@ -333,39 +591,36 @@ while True:
else:
justreconnected = 0
if (serialconnected == 1):
result = requests.get(url_link).text
doc = BeautifulSoup(result, "html.parser")
s = doc.find('script', type='application/json').get_text()
stringex = str(s)
d = json.loads(stringex)
librariesExist = 0
c = d['props']['pageProps']['p']['files'][0]['content']
try:
l = d['props']['pageProps']['p']['files'][2]['content']
libraries = str(l)
librariesExist = 1
except:
pass
d = d['props']['pageProps']['p']['files'][1]['content']
f = json.loads(d)
# cf = json.loads(c)
diagram = str(d)
sketch = str(c)
libraries = str(l)
if debug == True:
print("\n\n\rdiagram.json\n\r")
@ -377,28 +632,18 @@ while True:
print("\n\n\rlibraries.txt\n\r")
print(libraries)
# if (justreconnected == 1):
#print (lastDiagram)
# time.sleep(1.8)
if (lastDiagram != diagram):
justreconnected = 0
length = len(f["connections"])
p = "{\n"
for i in range(length):
conn1 = str(f["connections"][i][0])
@ -408,6 +653,15 @@ while True:
elif conn1.startswith('pot2:SIG'):
conn1 = "107"
if conn1.startswith('logic1:'):
if conn1.endswith('0'):
conn1 = "110"
elif conn1.endswith('1'):
conn1 = "111"
elif conn1.endswith('2'):
conn1 = "112"
elif conn1.endswith('3'):
conn1 = "113"
if conn1.startswith("bb1:") == True:
periodIndex = conn1.find('.')
@ -430,7 +684,6 @@ while True:
elif conn1.startswith('b') == True:
conn1 = "103"
if conn1.startswith("nano:") == True:
periodIndex = conn1.find('.')
conn1 = conn1[5:len(conn1)]
@ -448,7 +701,6 @@ while True:
elif conn1 == "5V":
conn1 = "105"
elif conn1.startswith("A") == True:
conn1 = conn1[1:(len(conn1))]
conn1 = int(conn1)
@ -459,7 +711,6 @@ while True:
conn1 = conn1 + 70
conn1 = str(conn1)
conn2 = str(f["connections"][i][1])
if conn2.startswith('pot1:SIG'):
@ -467,6 +718,15 @@ while True:
elif conn2.startswith('pot2:SIG'):
conn2 = "107"
if conn2.startswith('logic1:'):
if conn2.endswith('0'):
conn2 = "110"
elif conn2.endswith('1'):
conn2 = "111"
elif conn2.endswith('2'):
conn2 = "112"
elif conn2.endswith('3'):
conn2 = "113"
if conn2.startswith("bb1:") == True:
periodIndex = conn2.find('.')
@ -489,7 +749,6 @@ while True:
elif conn2.startswith('b') == True:
conn2 = "103"
if conn2.startswith("nano:") == True:
periodIndex = conn2.find('.')
conn2 = conn2[5:len(conn2)]
@ -518,14 +777,11 @@ while True:
conn2 = conn2 + 70
conn2 = str(conn2)
if conn1.isdigit() == True and conn2.isdigit() == True:
p = (p + conn1 + '-')
p = (p + conn2 + ',\n')
p = (p + "}\n{\n}")
lastDiagram = diagram
@ -533,7 +789,7 @@ while True:
try:
ser.write('f'.encode())
time.sleep(0.05)
time.sleep(0.4)
ser.write(p.encode())
@ -551,5 +807,3 @@ while True:
else:
time.sleep(.5)

View File

@ -410,11 +410,14 @@
('multiprocessing.popen_spawn_win32',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/multiprocessing/popen_spawn_win32.py',
'PYMODULE'),
('subprocess',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/subprocess.py',
'PYMODULE'),
('multiprocessing.spawn',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/multiprocessing/spawn.py',
'PYMODULE'),
('multiprocessing',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/multiprocessing/__init__.py',
('runpy',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/runpy.py',
'PYMODULE'),
('pkgutil',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/pkgutil.py',
@ -422,8 +425,11 @@
('zipimport',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/zipimport.py',
'PYMODULE'),
('tracemalloc',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/tracemalloc.py',
('multiprocessing',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/multiprocessing/__init__.py',
'PYMODULE'),
('_py_abc',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/_py_abc.py',
'PYMODULE'),
('getpass',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/getpass.py',
@ -446,12 +452,12 @@
('http.cookiejar',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/cookiejar.py',
'PYMODULE'),
('tracemalloc',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/tracemalloc.py',
'PYMODULE'),
('stringprep',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/stringprep.py',
'PYMODULE'),
('_py_abc',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/_py_abc.py',
'PYMODULE'),
('threading',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/threading.py',
'PYMODULE'),
@ -491,12 +497,6 @@
('__future__',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/__future__.py',
'PYMODULE'),
('subprocess',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/subprocess.py',
'PYMODULE'),
('runpy',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/runpy.py',
'PYMODULE'),
('serial',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/serial/__init__.py',
'PYMODULE'),
@ -1286,6 +1286,9 @@
('lib-dynload/_queue.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_queue.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/fcntl.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/fcntl.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/_scproxy.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_scproxy.cpython-311-darwin.so',
'EXTENSION'),
@ -1295,9 +1298,6 @@
('lib-dynload/unicodedata.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/unicodedata.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/_heapq.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_heapq.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/_multibytecodec.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_multibytecodec.cpython-311-darwin.so',
'EXTENSION'),
@ -1319,8 +1319,8 @@
('lib-dynload/_codecs_hk.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_codecs_hk.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/fcntl.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/fcntl.cpython-311-darwin.so',
('lib-dynload/_heapq.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_heapq.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/_json.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_json.cpython-311-darwin.so',
@ -1372,37 +1372,37 @@
[('base_library.zip',
'/Users/kevinsanto/JumperlessWokwiBridge/build/jumperlesswokwibridge/base_library.zip',
'DATA'),
('lxml/isoschematron/resources/rng/iso-schematron.rng',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/rng/iso-schematron.rng',
'DATA'),
('certifi/py.typed',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/certifi/py.typed',
'DATA'),
('lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt',
'DATA'),
('lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl',
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl',
('lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl',
('lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl',
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt',
'DATA'),
('lxml/isoschematron/resources/rng/iso-schematron.rng',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/rng/iso-schematron.rng',
'DATA'),
('certifi/cacert.pem',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/certifi/cacert.pem',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl',
'DATA'),
('certifi/py.typed',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/certifi/py.typed',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl',
'DATA')],
[])

View File

@ -155,6 +155,9 @@
('lib-dynload/_queue.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_queue.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/fcntl.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/fcntl.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/_scproxy.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_scproxy.cpython-311-darwin.so',
'EXTENSION'),
@ -164,9 +167,6 @@
('lib-dynload/unicodedata.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/unicodedata.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/_heapq.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_heapq.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/_multibytecodec.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_multibytecodec.cpython-311-darwin.so',
'EXTENSION'),
@ -188,8 +188,8 @@
('lib-dynload/_codecs_hk.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_codecs_hk.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/fcntl.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/fcntl.cpython-311-darwin.so',
('lib-dynload/_heapq.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_heapq.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/_json.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_json.cpython-311-darwin.so',
@ -239,43 +239,43 @@
('base_library.zip',
'/Users/kevinsanto/JumperlessWokwiBridge/build/jumperlesswokwibridge/base_library.zip',
'DATA'),
('lxml/isoschematron/resources/rng/iso-schematron.rng',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/rng/iso-schematron.rng',
'DATA'),
('certifi/py.typed',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/certifi/py.typed',
'DATA'),
('lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt',
'DATA'),
('lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl',
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl',
('lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl',
('lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl',
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt',
'DATA'),
('lxml/isoschematron/resources/rng/iso-schematron.rng',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/rng/iso-schematron.rng',
'DATA'),
('certifi/cacert.pem',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/certifi/cacert.pem',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl',
'DATA'),
('certifi/py.typed',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/certifi/py.typed',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl',
'DATA')],
[],
False,
False,
1688585184,
1689550942,
[('runw',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/PyInstaller/bootloader/Darwin-64bit/runw',
'EXECUTABLE')])

View File

@ -148,6 +148,9 @@
('lib-dynload/_queue.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_queue.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/fcntl.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/fcntl.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/_scproxy.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_scproxy.cpython-311-darwin.so',
'EXTENSION'),
@ -157,9 +160,6 @@
('lib-dynload/unicodedata.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/unicodedata.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/_heapq.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_heapq.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/_multibytecodec.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_multibytecodec.cpython-311-darwin.so',
'EXTENSION'),
@ -181,8 +181,8 @@
('lib-dynload/_codecs_hk.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_codecs_hk.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/fcntl.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/fcntl.cpython-311-darwin.so',
('lib-dynload/_heapq.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_heapq.cpython-311-darwin.so',
'EXTENSION'),
('lib-dynload/_json.cpython-311-darwin.so',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload/_json.cpython-311-darwin.so',
@ -232,38 +232,38 @@
('base_library.zip',
'/Users/kevinsanto/JumperlessWokwiBridge/build/jumperlesswokwibridge/base_library.zip',
'DATA'),
('lxml/isoschematron/resources/rng/iso-schematron.rng',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/rng/iso-schematron.rng',
'DATA'),
('certifi/py.typed',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/certifi/py.typed',
'DATA'),
('lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt',
'DATA'),
('lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl',
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl',
('lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl',
('lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl',
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt',
'DATA'),
('lxml/isoschematron/resources/rng/iso-schematron.rng',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/rng/iso-schematron.rng',
'DATA'),
('certifi/cacert.pem',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/certifi/cacert.pem',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl',
'DATA'),
('certifi/py.typed',
'/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/certifi/py.typed',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl',
'DATA'),
('lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl',
'/Users/kevinsanto/Library/Python/3.11/lib/python/site-packages/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl',
'DATA')],
False,
False,

View File

@ -16,10 +16,10 @@ IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for
missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional), zipimport (top-level)
excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional), zipimport (top-level)
missing module named org - imported by pickle (optional)
missing module named 'org.python' - imported by pickle (optional), xml.sax (delayed, conditional)
missing module named winreg - imported by importlib._bootstrap_external (conditional), mimetypes (optional), urllib.request (delayed, conditional, optional), requests.utils (delayed, conditional, optional), platform (delayed, optional)
missing module named nt - imported by shutil (conditional), importlib._bootstrap_external (conditional), ntpath (optional), os (delayed, conditional, optional), ctypes (delayed, conditional)
missing module named 'org.python' - imported by copy (optional), xml.sax (delayed, conditional)
missing module named nt - imported by os (delayed, conditional, optional), ntpath (optional), shutil (conditional), importlib._bootstrap_external (conditional), ctypes (delayed, conditional)
missing module named org - imported by copy (optional)
missing module named 'java.lang' - imported by platform (delayed, optional), xml.sax._exceptions (conditional)
missing module named _winapi - imported by encodings (delayed, conditional, optional), ntpath (optional), subprocess (conditional), mimetypes (optional), multiprocessing.connection (optional), multiprocessing.spawn (delayed, conditional), multiprocessing.reduction (conditional), multiprocessing.shared_memory (conditional), multiprocessing.heap (conditional), multiprocessing.popen_spawn_win32 (top-level), asyncio.windows_events (top-level), asyncio.windows_utils (top-level)
missing module named multiprocessing.BufferTooShort - imported by multiprocessing (top-level), multiprocessing.connection (top-level)

View File

@ -174,14 +174,12 @@ imports:
&#8226; <a href="#re._parser">re._parser</a>
&#8226; <a href="#reprlib">reprlib</a>
&#8226; <a href="#requests">requests</a>
&#8226; <a href="#runpy">runpy</a>
&#8226; <a href="#serial">serial</a>
&#8226; <a href="#serial.tools.list_ports">serial.tools.list_ports</a>
&#8226; <a href="#sre_compile">sre_compile</a>
&#8226; <a href="#sre_constants">sre_constants</a>
&#8226; <a href="#sre_parse">sre_parse</a>
&#8226; <a href="#stat">stat</a>
&#8226; <a href="#subprocess">subprocess</a>
&#8226; <a href="#sys">sys</a>
&#8226; <a href="#threading">threading</a>
&#8226; <a href="#time">time</a>
@ -337,7 +335,7 @@ imported by:
<a target="code" href="" type="text/plain"><tt>'org.python'</tt></a>
<span class="moduletype">MissingModule</span> <div class="import">
imported by:
<a href="#copy">copy</a>
<a href="#pickle">pickle</a>
&#8226; <a href="#xml.sax">xml.sax</a>
</div>
@ -4724,8 +4722,8 @@ imported by:
<a target="code" href="/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/copy.py" type="text/plain"><tt>copy</tt></a>
<span class="moduletype">SourceModule</span> <div class="import">
imports:
<a href="#'org.python'">'org.python'</a>
&#8226; <a href="#copyreg">copyreg</a>
<a href="#copyreg">copyreg</a>
&#8226; <a href="#org">org</a>
&#8226; <a href="#types">types</a>
&#8226; <a href="#weakref">weakref</a>
@ -11388,7 +11386,7 @@ imported by:
<a target="code" href="" type="text/plain"><tt>org</tt></a>
<span class="moduletype">MissingModule</span> <div class="import">
imported by:
<a href="#pickle">pickle</a>
<a href="#copy">copy</a>
</div>
@ -11608,14 +11606,14 @@ imported by:
<a target="code" href="/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/pickle.py" type="text/plain"><tt>pickle</tt></a>
<span class="moduletype">SourceModule</span> <div class="import">
imports:
<a href="#_compat_pickle">_compat_pickle</a>
<a href="#'org.python'">'org.python'</a>
&#8226; <a href="#_compat_pickle">_compat_pickle</a>
&#8226; <a href="#_pickle">_pickle</a>
&#8226; <a href="#codecs">codecs</a>
&#8226; <a href="#copyreg">copyreg</a>
&#8226; <a href="#functools">functools</a>
&#8226; <a href="#io">io</a>
&#8226; <a href="#itertools">itertools</a>
&#8226; <a href="#org">org</a>
&#8226; <a href="#pprint">pprint</a>
&#8226; <a href="#re">re</a>
&#8226; <a href="#struct">struct</a>
@ -12766,8 +12764,7 @@ imports:
</div>
<div class="import">
imported by:
<a href="#jumperlesswokwibridge.py">jumperlesswokwibridge.py</a>
&#8226; <a href="#multiprocessing.spawn">multiprocessing.spawn</a>
<a href="#multiprocessing.spawn">multiprocessing.spawn</a>
&#8226; <a href="#pdb">pdb</a>
</div>
@ -13772,7 +13769,6 @@ imported by:
&#8226; <a href="#asyncio.unix_events">asyncio.unix_events</a>
&#8226; <a href="#asyncio.windows_utils">asyncio.windows_utils</a>
&#8226; <a href="#http.server">http.server</a>
&#8226; <a href="#jumperlesswokwibridge.py">jumperlesswokwibridge.py</a>
&#8226; <a href="#multiprocessing.util">multiprocessing.util</a>
&#8226; <a href="#os">os</a>
&#8226; <a href="#platform">platform</a>