v1.0.16 #Rename GUI to UIDesktop #TODO Delete Robot.py (write 64,32 from UIDesktop)

dev-linux
Ivan Maslov 5 years ago
parent 33ccc0745f
commit 215ca959eb

@ -1,6 +1,6 @@
Metadata-Version: 2.1 Metadata-Version: 2.1
Name: pyOpenRPA Name: pyOpenRPA
Version: 1.0.15 Version: 1.0.16
Summary: First open source RPA platform for business Summary: First open source RPA platform for business
Home-page: https://gitlab.com/UnicodeLabs/OpenRPA Home-page: https://gitlab.com/UnicodeLabs/OpenRPA
Author: Ivan Maslov Author: Ivan Maslov

@ -1,23 +1,23 @@
pyOpenRPA-1.0.15.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 pyOpenRPA-1.0.16.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
pyOpenRPA-1.0.15.dist-info/METADATA,sha256=OVAh2YFn_pseeM5KBSk8G19yTsO-jBMZDY8i9S8saJs,3510 pyOpenRPA-1.0.16.dist-info/METADATA,sha256=IxqPZ8XpKYmxZBKQJFZR1j41tmovw8AqcFBpZv03ubY,3510
pyOpenRPA-1.0.15.dist-info/RECORD,, pyOpenRPA-1.0.16.dist-info/RECORD,,
pyOpenRPA-1.0.15.dist-info/WHEEL,sha256=qB97nP5e4MrOsXW5bIU5cUn_KSVr10EV0l-GCHG9qNs,97 pyOpenRPA-1.0.16.dist-info/WHEEL,sha256=qB97nP5e4MrOsXW5bIU5cUn_KSVr10EV0l-GCHG9qNs,97
pyOpenRPA-1.0.15.dist-info/top_level.txt,sha256=RPzwQXgYBRo_m5L3ZLs6Voh8aEkMeT29Xsul1w1qE0g,10 pyOpenRPA-1.0.16.dist-info/top_level.txt,sha256=RPzwQXgYBRo_m5L3ZLs6Voh8aEkMeT29Xsul1w1qE0g,10
pyOpenRPA/Clipboard.py,sha256=q76X8L21zJwcwdoJJNPeCEwAV30xS6ylHP1WwvtxoWI,722 pyOpenRPA/Clipboard.py,sha256=q76X8L21zJwcwdoJJNPeCEwAV30xS6ylHP1WwvtxoWI,722
pyOpenRPA/GUI.py,sha256=SzbCIZMAf53vEM5cwY55itseM5gcMSowF7POo2KwyeM,68726
pyOpenRPA/IntegrationOrchestrator.py,sha256=T1g1jJM7_JMTSVP50DTM5WHrMh1w8wovvcBXl1nEokU,2656 pyOpenRPA/IntegrationOrchestrator.py,sha256=T1g1jJM7_JMTSVP50DTM5WHrMh1w8wovvcBXl1nEokU,2656
pyOpenRPA/JSONNormalize.py,sha256=aIuVzuZDazhxkCOzoOjfhHVz66mp2FWdfPv5E7KWF5Y,3890 pyOpenRPA/JSONNormalize.py,sha256=aIuVzuZDazhxkCOzoOjfhHVz66mp2FWdfPv5E7KWF5Y,3890
pyOpenRPA/ProcessCommunicator.py,sha256=eT_NgoAQBUxSu9alCGxuauuussrP50HDoiBA9JcUkOc,8114 pyOpenRPA/ProcessCommunicator.py,sha256=eT_NgoAQBUxSu9alCGxuauuussrP50HDoiBA9JcUkOc,8114
pyOpenRPA/Robot.py,sha256=a_xiI4SuSpGFAfnSrvhL8qeuFVHrBUEGOFwelRWIvTA,9407 pyOpenRPA/Robot.py,sha256=41eZQMflqf7B8GnTn1mTJ_Dm8-k8CfSRFy1_He6ZLME,9471
pyOpenRPA/UIDesktop.py,sha256=AJPHt5z2W4AL9xsM1-YptCjFOUO-dj5kQVraelux_yU,68732
pyOpenRPA/ValueVerify.py,sha256=ObskxU4fOMoCGw74_nzYt6-a5jjrAckb3sdBLYyhYxY,777 pyOpenRPA/ValueVerify.py,sha256=ObskxU4fOMoCGw74_nzYt6-a5jjrAckb3sdBLYyhYxY,777
pyOpenRPA/Window.py,sha256=UJl-sg4RvvJ35aG9jZOzqGVwE15XK7qPHqoOBD13xFk,431 pyOpenRPA/Window.py,sha256=UJl-sg4RvvJ35aG9jZOzqGVwE15XK7qPHqoOBD13xFk,431
pyOpenRPA/__init__.py,sha256=wJLBEdKdtm0jeWLL-KyBrTN2vfDK75uF0qGpoGQHQgI,372 pyOpenRPA/__init__.py,sha256=BTpZhIhxiw-a5cDUoMZxNpPiTEAvRV6v09sDC0MtRVI,399
pyOpenRPA/__pycache__/Clipboard.cpython-37.pyc,, pyOpenRPA/__pycache__/Clipboard.cpython-37.pyc,,
pyOpenRPA/__pycache__/GUI.cpython-37.pyc,,
pyOpenRPA/__pycache__/IntegrationOrchestrator.cpython-37.pyc,, pyOpenRPA/__pycache__/IntegrationOrchestrator.cpython-37.pyc,,
pyOpenRPA/__pycache__/JSONNormalize.cpython-37.pyc,, pyOpenRPA/__pycache__/JSONNormalize.cpython-37.pyc,,
pyOpenRPA/__pycache__/ProcessCommunicator.cpython-37.pyc,, pyOpenRPA/__pycache__/ProcessCommunicator.cpython-37.pyc,,
pyOpenRPA/__pycache__/Robot.cpython-37.pyc,, pyOpenRPA/__pycache__/Robot.cpython-37.pyc,,
pyOpenRPA/__pycache__/UIDesktop.cpython-37.pyc,,
pyOpenRPA/__pycache__/ValueVerify.cpython-37.pyc,, pyOpenRPA/__pycache__/ValueVerify.cpython-37.pyc,,
pyOpenRPA/__pycache__/Window.cpython-37.pyc,, pyOpenRPA/__pycache__/Window.cpython-37.pyc,,
pyOpenRPA/__pycache__/__init__.cpython-37.pyc,, pyOpenRPA/__pycache__/__init__.cpython-37.pyc,,

@ -63,9 +63,9 @@ logging.basicConfig(filename="Reports\ReportRobotRun_"+datetime.datetime.now().s
#Start childprocess - GUI Module 32 bit #Start childprocess - GUI Module 32 bit
if not os.path.isfile("..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe"): if not os.path.isfile("..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe"):
shutil.copyfile('..\\Resources\\WPy32-3720\\python-3.7.2\\python.exe',"..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe") shutil.copyfile('..\\Resources\\WPy32-3720\\python-3.7.2\\python.exe',"..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe")
mProcessGUI_x32 = subprocess.Popen(['..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe','..\\Robot\\GUI.py','release'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE) mProcessGUI_x32 = subprocess.Popen(['..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe','..\\Robot\\pyOpenRPA\\UIDesktop.py','release'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
#Start childprocess - GUI Module 64 bit - uncomment after WPy64 installation #Start childprocess - GUI Module 64 bit - uncomment after WPy64 installation
ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x32,{"ModuleName":"GUI","ActivityName":"Get_OSBitnessInt","ArgumentList":[],"ArgumentDict":{}}) ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x32,{"ModuleName":"UIDesktop","ActivityName":"Get_OSBitnessInt","ArgumentList":[],"ArgumentDict":{}})
lOSBitness = ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x32)["Result"] lOSBitness = ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x32)["Result"]
lProcessBitnessStr = str(struct.calcsize("P") * 8) lProcessBitnessStr = str(struct.calcsize("P") * 8)
@ -74,15 +74,15 @@ mProcessGUI_x64= None
if lOSBitness == 64: if lOSBitness == 64:
if not os.path.isfile("..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe"): if not os.path.isfile("..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe"):
shutil.copyfile('..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\python.exe',"..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe") shutil.copyfile('..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\python.exe',"..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe")
mProcessGUI_x64 = subprocess.Popen(['..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe','..\\Robot\\GUI.py','release'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE) mProcessGUI_x64 = subprocess.Popen(['..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe','..\\Robot\\pyOpenRPA\\UIDesktop.py','release'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
#################### ####################
#Section: Activity #Section: Activity
#################### ####################
def ActivityRun(inActivitySpecificationDict): def ActivityRun(inActivitySpecificationDict):
#Выполнить отправку в модуль GUI, если ModuleName == "GUI" #Выполнить отправку в модуль UIDesktop, если ModuleName == "UIDesktop"
#pdb.set_trace() #pdb.set_trace()
if inActivitySpecificationDict["ModuleName"] == "GUI": if inActivitySpecificationDict["ModuleName"] == "UIDesktop":
if "ArgumentList" not in inActivitySpecificationDict: if "ArgumentList" not in inActivitySpecificationDict:
inActivitySpecificationDict["ArgumentList"]=[] inActivitySpecificationDict["ArgumentList"]=[]
if "ArgumentDict" not in inActivitySpecificationDict: if "ArgumentDict" not in inActivitySpecificationDict:
@ -105,7 +105,7 @@ def ActivityRun(inActivitySpecificationDict):
#Отправить запрос в дочерний процесс, который отвечает за работу с Windows окнами #Отправить запрос в дочерний процесс, который отвечает за работу с Windows окнами
#pdb.set_trace() #pdb.set_trace()
#Внимание! Проверка разрядности специально делается на процессе 64 бита, тк процесс 32 бита зависает на 35 итерации проверки #Внимание! Проверка разрядности специально делается на процессе 64 бита, тк процесс 32 бита зависает на 35 итерации проверки
ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x64,{"ModuleName":"GUI","ActivityName":"UIOSelector_Get_BitnessInt","ArgumentList":[inActivitySpecificationDict["ArgumentList"][0]],"ArgumentDict":inActivitySpecificationDict["ArgumentDict"]}) ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x64,{"ModuleName":"UIDesktop","ActivityName":"UIOSelector_Get_BitnessInt","ArgumentList":[inActivitySpecificationDict["ArgumentList"][0]],"ArgumentDict":inActivitySpecificationDict["ArgumentDict"]})
#Получить ответ от дочернего процесса #Получить ответ от дочернего процесса
lResponseObject=ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x64) lResponseObject=ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x64)
#pdb.set_trace() #pdb.set_trace()

@ -39,7 +39,7 @@ mRobotLogger.addHandler(mRobotLoggerFH)
#logging.basicConfig(filename="Reports\ReportRobotGUIRun_"+datetime.datetime.now().strftime("%Y_%m_%d")+".log", level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s") #logging.basicConfig(filename="Reports\ReportRobotGUIRun_"+datetime.datetime.now().strftime("%Y_%m_%d")+".log", level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s")
#####Внимание####### #####Внимание#######
#TODO В перспективе нужно реализовать алгоритм определения разрядности не в Robot.py, а в GUI.py, тк начинают появляться функции, на входе в которые еще неизвестна разрядность элемента + селектор может охватить сразу два элемента из 2-х разных разрядностей - обрабатываться это должно непосредственно при выполнении #TODO В перспективе нужно реализовать алгоритм определения разрядности не в Robot.py, а в UIDesktop.py, тк начинают появляться функции, на входе в которые еще неизвестна разрядность элемента + селектор может охватить сразу два элемента из 2-х разных разрядностей - обрабатываться это должно непосредственно при выполнении
#################################### ####################################
#Info: GUI module of the Robot app (OpenRPA - Robot) #Info: GUI module of the Robot app (OpenRPA - Robot)

@ -3,12 +3,12 @@ r"""
The OpenRPA package (from UnicodeLabs) The OpenRPA package (from UnicodeLabs)
""" """
__version__ = 'v1.0.15' __version__ = 'v1.0.16'
__all__ = [ __all__ = [
'GUI','Clipboard','IntegrationOrchestrator','Window', 'ProcessCommunicator' 'UIDesktop.py', 'Clipboard', 'IntegrationOrchestrator', 'Window', 'ProcessCommunicator', 'Robot'
] ]
__author__ = 'Ivan Maslov <ivan.maslov@unicodelabs.ru>' __author__ = 'Ivan Maslov <ivan.maslov@unicodelabs.ru>'
from . import GUI from . import UIDesktop
from . import Clipboard from . import Clipboard
from . import IntegrationOrchestrator from . import IntegrationOrchestrator
from . import Window from . import Window

@ -1,6 +1,6 @@
Metadata-Version: 2.1 Metadata-Version: 2.1
Name: pyOpenRPA Name: pyOpenRPA
Version: 1.0.15 Version: 1.0.16
Summary: First open source RPA platform for business Summary: First open source RPA platform for business
Home-page: https://gitlab.com/UnicodeLabs/OpenRPA Home-page: https://gitlab.com/UnicodeLabs/OpenRPA
Author: Ivan Maslov Author: Ivan Maslov

@ -1,23 +1,23 @@
pyOpenRPA-1.0.15.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 pyOpenRPA-1.0.16.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
pyOpenRPA-1.0.15.dist-info/METADATA,sha256=OVAh2YFn_pseeM5KBSk8G19yTsO-jBMZDY8i9S8saJs,3510 pyOpenRPA-1.0.16.dist-info/METADATA,sha256=IxqPZ8XpKYmxZBKQJFZR1j41tmovw8AqcFBpZv03ubY,3510
pyOpenRPA-1.0.15.dist-info/RECORD,, pyOpenRPA-1.0.16.dist-info/RECORD,,
pyOpenRPA-1.0.15.dist-info/WHEEL,sha256=qB97nP5e4MrOsXW5bIU5cUn_KSVr10EV0l-GCHG9qNs,97 pyOpenRPA-1.0.16.dist-info/WHEEL,sha256=qB97nP5e4MrOsXW5bIU5cUn_KSVr10EV0l-GCHG9qNs,97
pyOpenRPA-1.0.15.dist-info/top_level.txt,sha256=RPzwQXgYBRo_m5L3ZLs6Voh8aEkMeT29Xsul1w1qE0g,10 pyOpenRPA-1.0.16.dist-info/top_level.txt,sha256=RPzwQXgYBRo_m5L3ZLs6Voh8aEkMeT29Xsul1w1qE0g,10
pyOpenRPA/Clipboard.py,sha256=q76X8L21zJwcwdoJJNPeCEwAV30xS6ylHP1WwvtxoWI,722 pyOpenRPA/Clipboard.py,sha256=q76X8L21zJwcwdoJJNPeCEwAV30xS6ylHP1WwvtxoWI,722
pyOpenRPA/GUI.py,sha256=SzbCIZMAf53vEM5cwY55itseM5gcMSowF7POo2KwyeM,68726
pyOpenRPA/IntegrationOrchestrator.py,sha256=T1g1jJM7_JMTSVP50DTM5WHrMh1w8wovvcBXl1nEokU,2656 pyOpenRPA/IntegrationOrchestrator.py,sha256=T1g1jJM7_JMTSVP50DTM5WHrMh1w8wovvcBXl1nEokU,2656
pyOpenRPA/JSONNormalize.py,sha256=aIuVzuZDazhxkCOzoOjfhHVz66mp2FWdfPv5E7KWF5Y,3890 pyOpenRPA/JSONNormalize.py,sha256=aIuVzuZDazhxkCOzoOjfhHVz66mp2FWdfPv5E7KWF5Y,3890
pyOpenRPA/ProcessCommunicator.py,sha256=eT_NgoAQBUxSu9alCGxuauuussrP50HDoiBA9JcUkOc,8114 pyOpenRPA/ProcessCommunicator.py,sha256=eT_NgoAQBUxSu9alCGxuauuussrP50HDoiBA9JcUkOc,8114
pyOpenRPA/Robot.py,sha256=a_xiI4SuSpGFAfnSrvhL8qeuFVHrBUEGOFwelRWIvTA,9407 pyOpenRPA/Robot.py,sha256=41eZQMflqf7B8GnTn1mTJ_Dm8-k8CfSRFy1_He6ZLME,9471
pyOpenRPA/UIDesktop.py,sha256=AJPHt5z2W4AL9xsM1-YptCjFOUO-dj5kQVraelux_yU,68732
pyOpenRPA/ValueVerify.py,sha256=ObskxU4fOMoCGw74_nzYt6-a5jjrAckb3sdBLYyhYxY,777 pyOpenRPA/ValueVerify.py,sha256=ObskxU4fOMoCGw74_nzYt6-a5jjrAckb3sdBLYyhYxY,777
pyOpenRPA/Window.py,sha256=UJl-sg4RvvJ35aG9jZOzqGVwE15XK7qPHqoOBD13xFk,431 pyOpenRPA/Window.py,sha256=UJl-sg4RvvJ35aG9jZOzqGVwE15XK7qPHqoOBD13xFk,431
pyOpenRPA/__init__.py,sha256=wJLBEdKdtm0jeWLL-KyBrTN2vfDK75uF0qGpoGQHQgI,372 pyOpenRPA/__init__.py,sha256=BTpZhIhxiw-a5cDUoMZxNpPiTEAvRV6v09sDC0MtRVI,399
pyOpenRPA/__pycache__/Clipboard.cpython-37.pyc,, pyOpenRPA/__pycache__/Clipboard.cpython-37.pyc,,
pyOpenRPA/__pycache__/GUI.cpython-37.pyc,,
pyOpenRPA/__pycache__/IntegrationOrchestrator.cpython-37.pyc,, pyOpenRPA/__pycache__/IntegrationOrchestrator.cpython-37.pyc,,
pyOpenRPA/__pycache__/JSONNormalize.cpython-37.pyc,, pyOpenRPA/__pycache__/JSONNormalize.cpython-37.pyc,,
pyOpenRPA/__pycache__/ProcessCommunicator.cpython-37.pyc,, pyOpenRPA/__pycache__/ProcessCommunicator.cpython-37.pyc,,
pyOpenRPA/__pycache__/Robot.cpython-37.pyc,, pyOpenRPA/__pycache__/Robot.cpython-37.pyc,,
pyOpenRPA/__pycache__/UIDesktop.cpython-37.pyc,,
pyOpenRPA/__pycache__/ValueVerify.cpython-37.pyc,, pyOpenRPA/__pycache__/ValueVerify.cpython-37.pyc,,
pyOpenRPA/__pycache__/Window.cpython-37.pyc,, pyOpenRPA/__pycache__/Window.cpython-37.pyc,,
pyOpenRPA/__pycache__/__init__.cpython-37.pyc,, pyOpenRPA/__pycache__/__init__.cpython-37.pyc,,

@ -63,9 +63,9 @@ logging.basicConfig(filename="Reports\ReportRobotRun_"+datetime.datetime.now().s
#Start childprocess - GUI Module 32 bit #Start childprocess - GUI Module 32 bit
if not os.path.isfile("..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe"): if not os.path.isfile("..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe"):
shutil.copyfile('..\\Resources\\WPy32-3720\\python-3.7.2\\python.exe',"..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe") shutil.copyfile('..\\Resources\\WPy32-3720\\python-3.7.2\\python.exe',"..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe")
mProcessGUI_x32 = subprocess.Popen(['..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe','..\\Robot\\GUI.py','release'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE) mProcessGUI_x32 = subprocess.Popen(['..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe','..\\Robot\\pyOpenRPA\\UIDesktop.py','release'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
#Start childprocess - GUI Module 64 bit - uncomment after WPy64 installation #Start childprocess - GUI Module 64 bit - uncomment after WPy64 installation
ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x32,{"ModuleName":"GUI","ActivityName":"Get_OSBitnessInt","ArgumentList":[],"ArgumentDict":{}}) ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x32,{"ModuleName":"UIDesktop","ActivityName":"Get_OSBitnessInt","ArgumentList":[],"ArgumentDict":{}})
lOSBitness = ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x32)["Result"] lOSBitness = ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x32)["Result"]
lProcessBitnessStr = str(struct.calcsize("P") * 8) lProcessBitnessStr = str(struct.calcsize("P") * 8)
@ -74,15 +74,15 @@ mProcessGUI_x64= None
if lOSBitness == 64: if lOSBitness == 64:
if not os.path.isfile("..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe"): if not os.path.isfile("..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe"):
shutil.copyfile('..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\python.exe',"..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe") shutil.copyfile('..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\python.exe',"..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe")
mProcessGUI_x64 = subprocess.Popen(['..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe','..\\Robot\\GUI.py','release'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE) mProcessGUI_x64 = subprocess.Popen(['..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe','..\\Robot\\pyOpenRPA\\UIDesktop.py','release'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
#################### ####################
#Section: Activity #Section: Activity
#################### ####################
def ActivityRun(inActivitySpecificationDict): def ActivityRun(inActivitySpecificationDict):
#Выполнить отправку в модуль GUI, если ModuleName == "GUI" #Выполнить отправку в модуль UIDesktop, если ModuleName == "UIDesktop"
#pdb.set_trace() #pdb.set_trace()
if inActivitySpecificationDict["ModuleName"] == "GUI": if inActivitySpecificationDict["ModuleName"] == "UIDesktop":
if "ArgumentList" not in inActivitySpecificationDict: if "ArgumentList" not in inActivitySpecificationDict:
inActivitySpecificationDict["ArgumentList"]=[] inActivitySpecificationDict["ArgumentList"]=[]
if "ArgumentDict" not in inActivitySpecificationDict: if "ArgumentDict" not in inActivitySpecificationDict:
@ -105,7 +105,7 @@ def ActivityRun(inActivitySpecificationDict):
#Отправить запрос в дочерний процесс, который отвечает за работу с Windows окнами #Отправить запрос в дочерний процесс, который отвечает за работу с Windows окнами
#pdb.set_trace() #pdb.set_trace()
#Внимание! Проверка разрядности специально делается на процессе 64 бита, тк процесс 32 бита зависает на 35 итерации проверки #Внимание! Проверка разрядности специально делается на процессе 64 бита, тк процесс 32 бита зависает на 35 итерации проверки
ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x64,{"ModuleName":"GUI","ActivityName":"UIOSelector_Get_BitnessInt","ArgumentList":[inActivitySpecificationDict["ArgumentList"][0]],"ArgumentDict":inActivitySpecificationDict["ArgumentDict"]}) ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x64,{"ModuleName":"UIDesktop","ActivityName":"UIOSelector_Get_BitnessInt","ArgumentList":[inActivitySpecificationDict["ArgumentList"][0]],"ArgumentDict":inActivitySpecificationDict["ArgumentDict"]})
#Получить ответ от дочернего процесса #Получить ответ от дочернего процесса
lResponseObject=ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x64) lResponseObject=ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x64)
#pdb.set_trace() #pdb.set_trace()

@ -39,7 +39,7 @@ mRobotLogger.addHandler(mRobotLoggerFH)
#logging.basicConfig(filename="Reports\ReportRobotGUIRun_"+datetime.datetime.now().strftime("%Y_%m_%d")+".log", level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s") #logging.basicConfig(filename="Reports\ReportRobotGUIRun_"+datetime.datetime.now().strftime("%Y_%m_%d")+".log", level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s")
#####Внимание####### #####Внимание#######
#TODO В перспективе нужно реализовать алгоритм определения разрядности не в Robot.py, а в GUI.py, тк начинают появляться функции, на входе в которые еще неизвестна разрядность элемента + селектор может охватить сразу два элемента из 2-х разных разрядностей - обрабатываться это должно непосредственно при выполнении #TODO В перспективе нужно реализовать алгоритм определения разрядности не в Robot.py, а в UIDesktop.py, тк начинают появляться функции, на входе в которые еще неизвестна разрядность элемента + селектор может охватить сразу два элемента из 2-х разных разрядностей - обрабатываться это должно непосредственно при выполнении
#################################### ####################################
#Info: GUI module of the Robot app (OpenRPA - Robot) #Info: GUI module of the Robot app (OpenRPA - Robot)

@ -3,12 +3,12 @@ r"""
The OpenRPA package (from UnicodeLabs) The OpenRPA package (from UnicodeLabs)
""" """
__version__ = 'v1.0.15' __version__ = 'v1.0.16'
__all__ = [ __all__ = [
'GUI','Clipboard','IntegrationOrchestrator','Window', 'ProcessCommunicator' 'UIDesktop.py', 'Clipboard', 'IntegrationOrchestrator', 'Window', 'ProcessCommunicator', 'Robot'
] ]
__author__ = 'Ivan Maslov <ivan.maslov@unicodelabs.ru>' __author__ = 'Ivan Maslov <ivan.maslov@unicodelabs.ru>'
from . import GUI from . import UIDesktop
from . import Clipboard from . import Clipboard
from . import IntegrationOrchestrator from . import IntegrationOrchestrator
from . import Window from . import Window

@ -1,6 +1,6 @@
Metadata-Version: 2.1 Metadata-Version: 2.1
Name: pyOpenRPA Name: pyOpenRPA
Version: 1.0.15 Version: 1.0.16
Summary: First open source RPA platform for business Summary: First open source RPA platform for business
Home-page: https://gitlab.com/UnicodeLabs/OpenRPA Home-page: https://gitlab.com/UnicodeLabs/OpenRPA
Author: Ivan Maslov Author: Ivan Maslov

@ -1,10 +1,10 @@
setup.py setup.py
pyOpenRPA/Clipboard.py pyOpenRPA/Clipboard.py
pyOpenRPA/GUI.py
pyOpenRPA/IntegrationOrchestrator.py pyOpenRPA/IntegrationOrchestrator.py
pyOpenRPA/JSONNormalize.py pyOpenRPA/JSONNormalize.py
pyOpenRPA/ProcessCommunicator.py pyOpenRPA/ProcessCommunicator.py
pyOpenRPA/Robot.py pyOpenRPA/Robot.py
pyOpenRPA/UIDesktop.py
pyOpenRPA/ValueVerify.py pyOpenRPA/ValueVerify.py
pyOpenRPA/Window.py pyOpenRPA/Window.py
pyOpenRPA/__init__.py pyOpenRPA/__init__.py

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7 (Orchestrator)" project-jdk-type="Python SDK" />
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/pyOpenRPA.iml" filepath="$PROJECT_DIR$/.idea/pyOpenRPA.iml" />
</modules>
</component>
</project>

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TestRunnerService">
<option name="PROJECT_TEST_RUNNER" value="Unittests" />
</component>
</module>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="d710f475-47eb-49e0-9914-2a0070ace3db" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/GUI.py" beforeDir="false" afterPath="$PROJECT_DIR$/UIDesktop.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Robot.py" beforeDir="false" afterPath="$PROJECT_DIR$/Robot.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/__init__.py" beforeDir="false" afterPath="$PROJECT_DIR$/__init__.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../../v1.0.15" beforeDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../.." />
</component>
<component name="ProjectId" id="1TLHWXyRl8l5VGygSuF4LMPAL5y" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="PropertiesComponent">
<property name="last_opened_file_path" value="$PROJECT_DIR$/../../Studio" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="d710f475-47eb-49e0-9914-2a0070ace3db" name="Default Changelist" comment="" />
<created>1573232487805</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1573232487805</updated>
</task>
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State />
</value>
</entry>
</map>
</option>
</component>
</project>

@ -63,9 +63,9 @@ logging.basicConfig(filename="Reports\ReportRobotRun_"+datetime.datetime.now().s
#Start childprocess - GUI Module 32 bit #Start childprocess - GUI Module 32 bit
if not os.path.isfile("..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe"): if not os.path.isfile("..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe"):
shutil.copyfile('..\\Resources\\WPy32-3720\\python-3.7.2\\python.exe',"..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe") shutil.copyfile('..\\Resources\\WPy32-3720\\python-3.7.2\\python.exe',"..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe")
mProcessGUI_x32 = subprocess.Popen(['..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe','..\\Robot\\GUI.py','release'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE) mProcessGUI_x32 = subprocess.Popen(['..\\Resources\\WPy32-3720\\python-3.7.2\\OpenRPARobotGUIx32.exe','..\\Robot\\pyOpenRPA\\UIDesktop.py','release'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
#Start childprocess - GUI Module 64 bit - uncomment after WPy64 installation #Start childprocess - GUI Module 64 bit - uncomment after WPy64 installation
ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x32,{"ModuleName":"GUI","ActivityName":"Get_OSBitnessInt","ArgumentList":[],"ArgumentDict":{}}) ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x32,{"ModuleName":"UIDesktop","ActivityName":"Get_OSBitnessInt","ArgumentList":[],"ArgumentDict":{}})
lOSBitness = ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x32)["Result"] lOSBitness = ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x32)["Result"]
lProcessBitnessStr = str(struct.calcsize("P") * 8) lProcessBitnessStr = str(struct.calcsize("P") * 8)
@ -74,15 +74,15 @@ mProcessGUI_x64= None
if lOSBitness == 64: if lOSBitness == 64:
if not os.path.isfile("..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe"): if not os.path.isfile("..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe"):
shutil.copyfile('..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\python.exe',"..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe") shutil.copyfile('..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\python.exe',"..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe")
mProcessGUI_x64 = subprocess.Popen(['..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe','..\\Robot\\GUI.py','release'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE) mProcessGUI_x64 = subprocess.Popen(['..\\Resources\\WPy64-3720\\python-3.7.2.amd64\\OpenRPARobotGUIx64.exe','..\\Robot\\pyOpenRPA\\UIDesktop.py','release'],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
#################### ####################
#Section: Activity #Section: Activity
#################### ####################
def ActivityRun(inActivitySpecificationDict): def ActivityRun(inActivitySpecificationDict):
#Выполнить отправку в модуль GUI, если ModuleName == "GUI" #Выполнить отправку в модуль UIDesktop, если ModuleName == "UIDesktop"
#pdb.set_trace() #pdb.set_trace()
if inActivitySpecificationDict["ModuleName"] == "GUI": if inActivitySpecificationDict["ModuleName"] == "UIDesktop":
if "ArgumentList" not in inActivitySpecificationDict: if "ArgumentList" not in inActivitySpecificationDict:
inActivitySpecificationDict["ArgumentList"]=[] inActivitySpecificationDict["ArgumentList"]=[]
if "ArgumentDict" not in inActivitySpecificationDict: if "ArgumentDict" not in inActivitySpecificationDict:
@ -105,7 +105,7 @@ def ActivityRun(inActivitySpecificationDict):
#Отправить запрос в дочерний процесс, который отвечает за работу с Windows окнами #Отправить запрос в дочерний процесс, который отвечает за работу с Windows окнами
#pdb.set_trace() #pdb.set_trace()
#Внимание! Проверка разрядности специально делается на процессе 64 бита, тк процесс 32 бита зависает на 35 итерации проверки #Внимание! Проверка разрядности специально делается на процессе 64 бита, тк процесс 32 бита зависает на 35 итерации проверки
ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x64,{"ModuleName":"GUI","ActivityName":"UIOSelector_Get_BitnessInt","ArgumentList":[inActivitySpecificationDict["ArgumentList"][0]],"ArgumentDict":inActivitySpecificationDict["ArgumentDict"]}) ProcessCommunicator.ProcessChildSendObject(mProcessGUI_x64,{"ModuleName":"UIDesktop","ActivityName":"UIOSelector_Get_BitnessInt","ArgumentList":[inActivitySpecificationDict["ArgumentList"][0]],"ArgumentDict":inActivitySpecificationDict["ArgumentDict"]})
#Получить ответ от дочернего процесса #Получить ответ от дочернего процесса
lResponseObject=ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x64) lResponseObject=ProcessCommunicator.ProcessChildReadWaitObject(mProcessGUI_x64)
#pdb.set_trace() #pdb.set_trace()

@ -39,7 +39,7 @@ mRobotLogger.addHandler(mRobotLoggerFH)
#logging.basicConfig(filename="Reports\ReportRobotGUIRun_"+datetime.datetime.now().strftime("%Y_%m_%d")+".log", level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s") #logging.basicConfig(filename="Reports\ReportRobotGUIRun_"+datetime.datetime.now().strftime("%Y_%m_%d")+".log", level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s")
#####Внимание####### #####Внимание#######
#TODO В перспективе нужно реализовать алгоритм определения разрядности не в Robot.py, а в GUI.py, тк начинают появляться функции, на входе в которые еще неизвестна разрядность элемента + селектор может охватить сразу два элемента из 2-х разных разрядностей - обрабатываться это должно непосредственно при выполнении #TODO В перспективе нужно реализовать алгоритм определения разрядности не в Robot.py, а в UIDesktop.py, тк начинают появляться функции, на входе в которые еще неизвестна разрядность элемента + селектор может охватить сразу два элемента из 2-х разных разрядностей - обрабатываться это должно непосредственно при выполнении
#################################### ####################################
#Info: GUI module of the Robot app (OpenRPA - Robot) #Info: GUI module of the Robot app (OpenRPA - Robot)

@ -3,12 +3,12 @@ r"""
The OpenRPA package (from UnicodeLabs) The OpenRPA package (from UnicodeLabs)
""" """
__version__ = 'v1.0.15' __version__ = 'v1.0.16'
__all__ = [ __all__ = [
'GUI','Clipboard','IntegrationOrchestrator','Window', 'ProcessCommunicator' 'UIDesktop.py', 'Clipboard', 'IntegrationOrchestrator', 'Window', 'ProcessCommunicator', 'Robot'
] ]
__author__ = 'Ivan Maslov <ivan.maslov@unicodelabs.ru>' __author__ = 'Ivan Maslov <ivan.maslov@unicodelabs.ru>'
from . import GUI from . import UIDesktop
from . import Clipboard from . import Clipboard
from . import IntegrationOrchestrator from . import IntegrationOrchestrator
from . import Window from . import Window

@ -0,0 +1,3 @@
# Default ignored files
/workspace.xml

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TestRunnerService">
<option name="PROJECT_TEST_RUNNER" value="Unittests" />
</component>
</module>

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7 (Orchestrator)" project-jdk-type="Python SDK" />
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Studio.iml" filepath="$PROJECT_DIR$/.idea/Studio.iml" />
</modules>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>

@ -8,8 +8,7 @@ import os
import ProcessCommunicator import ProcessCommunicator
import sys import sys
import traceback import traceback
sys.path.append('../Robot') from pyOpenRPA import Robot
import Robot
# HTTPRequestHandler class # HTTPRequestHandler class
class testHTTPServer_RequestHandler(BaseHTTPRequestHandler): class testHTTPServer_RequestHandler(BaseHTTPRequestHandler):

Loading…
Cancel
Save