parent
ad5b15b9d1
commit
c02f454592
@ -0,0 +1,23 @@
|
|||||||
|
pyOpenRPA-1.0.15.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
pyOpenRPA-1.0.15.dist-info/METADATA,sha256=OVAh2YFn_pseeM5KBSk8G19yTsO-jBMZDY8i9S8saJs,3510
|
||||||
|
pyOpenRPA-1.0.15.dist-info/RECORD,,
|
||||||
|
pyOpenRPA-1.0.15.dist-info/WHEEL,sha256=qB97nP5e4MrOsXW5bIU5cUn_KSVr10EV0l-GCHG9qNs,97
|
||||||
|
pyOpenRPA-1.0.15.dist-info/top_level.txt,sha256=RPzwQXgYBRo_m5L3ZLs6Voh8aEkMeT29Xsul1w1qE0g,10
|
||||||
|
pyOpenRPA/Clipboard.py,sha256=q76X8L21zJwcwdoJJNPeCEwAV30xS6ylHP1WwvtxoWI,722
|
||||||
|
pyOpenRPA/GUI.py,sha256=SzbCIZMAf53vEM5cwY55itseM5gcMSowF7POo2KwyeM,68726
|
||||||
|
pyOpenRPA/IntegrationOrchestrator.py,sha256=T1g1jJM7_JMTSVP50DTM5WHrMh1w8wovvcBXl1nEokU,2656
|
||||||
|
pyOpenRPA/JSONNormalize.py,sha256=aIuVzuZDazhxkCOzoOjfhHVz66mp2FWdfPv5E7KWF5Y,3890
|
||||||
|
pyOpenRPA/ProcessCommunicator.py,sha256=eT_NgoAQBUxSu9alCGxuauuussrP50HDoiBA9JcUkOc,8114
|
||||||
|
pyOpenRPA/Robot.py,sha256=a_xiI4SuSpGFAfnSrvhL8qeuFVHrBUEGOFwelRWIvTA,9407
|
||||||
|
pyOpenRPA/ValueVerify.py,sha256=ObskxU4fOMoCGw74_nzYt6-a5jjrAckb3sdBLYyhYxY,777
|
||||||
|
pyOpenRPA/Window.py,sha256=UJl-sg4RvvJ35aG9jZOzqGVwE15XK7qPHqoOBD13xFk,431
|
||||||
|
pyOpenRPA/__init__.py,sha256=wJLBEdKdtm0jeWLL-KyBrTN2vfDK75uF0qGpoGQHQgI,372
|
||||||
|
pyOpenRPA/__pycache__/Clipboard.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/GUI.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/IntegrationOrchestrator.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/JSONNormalize.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/ProcessCommunicator.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/Robot.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/ValueVerify.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/Window.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/__init__.cpython-37.pyc,,
|
@ -0,0 +1 @@
|
|||||||
|
pyOpenRPA
|
@ -1,23 +0,0 @@
|
|||||||
Metadata-Version: 2.1
|
|
||||||
Name: pyOpenRPA
|
|
||||||
Version: 1.0.7
|
|
||||||
Summary: First open source RPA platform for business
|
|
||||||
Home-page: https://gitlab.com/UnicodeLabs/OpenRPA
|
|
||||||
Author: Ivan Maslov
|
|
||||||
Author-email: Ivan.Maslov@unicodelabs.ru
|
|
||||||
License: MIT
|
|
||||||
Keywords: OpenRPA RPA Robot Automation Robotization
|
|
||||||
Platform: UNKNOWN
|
|
||||||
Classifier: Development Status :: 3 - Alpha
|
|
||||||
Classifier: License :: OSI Approved :: MIT License
|
|
||||||
Classifier: Programming Language :: Python :: 3.7
|
|
||||||
Requires-Dist: pywinauto (>=0.6.6)
|
|
||||||
Requires-Dist: WMI (>=1.4.9)
|
|
||||||
Requires-Dist: pillow (>=6.0.0)
|
|
||||||
Requires-Dist: keyboard (>=0.13.3)
|
|
||||||
Requires-Dist: pyautogui (>=0.9.44)
|
|
||||||
Requires-Dist: pywin32 (>=224)
|
|
||||||
|
|
||||||
UNKNOWN
|
|
||||||
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
|||||||
pyOpenRPA-1.0.7.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
|
||||||
pyOpenRPA-1.0.7.dist-info/METADATA,sha256=_rN4UG95FENZbFjRiTmaCf31KPJa8XKkFoFbDR3vgaI,654
|
|
||||||
pyOpenRPA-1.0.7.dist-info/RECORD,,
|
|
||||||
pyOpenRPA-1.0.7.dist-info/WHEEL,sha256=qB97nP5e4MrOsXW5bIU5cUn_KSVr10EV0l-GCHG9qNs,97
|
|
||||||
pyOpenRPA-1.0.7.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
@ -0,0 +1,15 @@
|
|||||||
|
r"""
|
||||||
|
|
||||||
|
The OpenRPA package (from UnicodeLabs)
|
||||||
|
|
||||||
|
"""
|
||||||
|
__version__ = 'v1.0.15'
|
||||||
|
__all__ = [
|
||||||
|
'GUI','Clipboard','IntegrationOrchestrator','Window', 'ProcessCommunicator'
|
||||||
|
]
|
||||||
|
__author__ = 'Ivan Maslov <ivan.maslov@unicodelabs.ru>'
|
||||||
|
from . import GUI
|
||||||
|
from . import Clipboard
|
||||||
|
from . import IntegrationOrchestrator
|
||||||
|
from . import Window
|
||||||
|
from . import ProcessCommunicator
|
@ -0,0 +1 @@
|
|||||||
|
2019-11-08 19:47:24,560 - RobotLogger - INFO - Robot/GUI: Debug mode, x32
|
@ -0,0 +1,23 @@
|
|||||||
|
pyOpenRPA-1.0.15.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||||
|
pyOpenRPA-1.0.15.dist-info/METADATA,sha256=OVAh2YFn_pseeM5KBSk8G19yTsO-jBMZDY8i9S8saJs,3510
|
||||||
|
pyOpenRPA-1.0.15.dist-info/RECORD,,
|
||||||
|
pyOpenRPA-1.0.15.dist-info/WHEEL,sha256=qB97nP5e4MrOsXW5bIU5cUn_KSVr10EV0l-GCHG9qNs,97
|
||||||
|
pyOpenRPA-1.0.15.dist-info/top_level.txt,sha256=RPzwQXgYBRo_m5L3ZLs6Voh8aEkMeT29Xsul1w1qE0g,10
|
||||||
|
pyOpenRPA/Clipboard.py,sha256=q76X8L21zJwcwdoJJNPeCEwAV30xS6ylHP1WwvtxoWI,722
|
||||||
|
pyOpenRPA/GUI.py,sha256=SzbCIZMAf53vEM5cwY55itseM5gcMSowF7POo2KwyeM,68726
|
||||||
|
pyOpenRPA/IntegrationOrchestrator.py,sha256=T1g1jJM7_JMTSVP50DTM5WHrMh1w8wovvcBXl1nEokU,2656
|
||||||
|
pyOpenRPA/JSONNormalize.py,sha256=aIuVzuZDazhxkCOzoOjfhHVz66mp2FWdfPv5E7KWF5Y,3890
|
||||||
|
pyOpenRPA/ProcessCommunicator.py,sha256=eT_NgoAQBUxSu9alCGxuauuussrP50HDoiBA9JcUkOc,8114
|
||||||
|
pyOpenRPA/Robot.py,sha256=a_xiI4SuSpGFAfnSrvhL8qeuFVHrBUEGOFwelRWIvTA,9407
|
||||||
|
pyOpenRPA/ValueVerify.py,sha256=ObskxU4fOMoCGw74_nzYt6-a5jjrAckb3sdBLYyhYxY,777
|
||||||
|
pyOpenRPA/Window.py,sha256=UJl-sg4RvvJ35aG9jZOzqGVwE15XK7qPHqoOBD13xFk,431
|
||||||
|
pyOpenRPA/__init__.py,sha256=wJLBEdKdtm0jeWLL-KyBrTN2vfDK75uF0qGpoGQHQgI,372
|
||||||
|
pyOpenRPA/__pycache__/Clipboard.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/GUI.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/IntegrationOrchestrator.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/JSONNormalize.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/ProcessCommunicator.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/Robot.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/ValueVerify.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/Window.cpython-37.pyc,,
|
||||||
|
pyOpenRPA/__pycache__/__init__.cpython-37.pyc,,
|
@ -0,0 +1 @@
|
|||||||
|
pyOpenRPA
|
@ -1,23 +0,0 @@
|
|||||||
Metadata-Version: 2.1
|
|
||||||
Name: pyOpenRPA
|
|
||||||
Version: 1.0.7
|
|
||||||
Summary: First open source RPA platform for business
|
|
||||||
Home-page: https://gitlab.com/UnicodeLabs/OpenRPA
|
|
||||||
Author: Ivan Maslov
|
|
||||||
Author-email: Ivan.Maslov@unicodelabs.ru
|
|
||||||
License: MIT
|
|
||||||
Keywords: OpenRPA RPA Robot Automation Robotization
|
|
||||||
Platform: UNKNOWN
|
|
||||||
Classifier: Development Status :: 3 - Alpha
|
|
||||||
Classifier: License :: OSI Approved :: MIT License
|
|
||||||
Classifier: Programming Language :: Python :: 3.7
|
|
||||||
Requires-Dist: pywinauto (>=0.6.6)
|
|
||||||
Requires-Dist: WMI (>=1.4.9)
|
|
||||||
Requires-Dist: pillow (>=6.0.0)
|
|
||||||
Requires-Dist: keyboard (>=0.13.3)
|
|
||||||
Requires-Dist: pyautogui (>=0.9.44)
|
|
||||||
Requires-Dist: pywin32 (>=224)
|
|
||||||
|
|
||||||
UNKNOWN
|
|
||||||
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
|||||||
pyOpenRPA-1.0.7.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
|
||||||
pyOpenRPA-1.0.7.dist-info/METADATA,sha256=_rN4UG95FENZbFjRiTmaCf31KPJa8XKkFoFbDR3vgaI,654
|
|
||||||
pyOpenRPA-1.0.7.dist-info/RECORD,,
|
|
||||||
pyOpenRPA-1.0.7.dist-info/WHEEL,sha256=qB97nP5e4MrOsXW5bIU5cUn_KSVr10EV0l-GCHG9qNs,97
|
|
||||||
pyOpenRPA-1.0.7.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
@ -0,0 +1,22 @@
|
|||||||
|
import win32clipboard
|
||||||
|
####################################
|
||||||
|
#Info: Clipboard module of the Robot app (OpenRPA - Robot)
|
||||||
|
####################################
|
||||||
|
# GUI Module - interaction with Windows clipboard
|
||||||
|
|
||||||
|
################
|
||||||
|
###ClipboardGet
|
||||||
|
################
|
||||||
|
def ClipboardGet():
|
||||||
|
win32clipboard.OpenClipboard()
|
||||||
|
lResult = win32clipboard.GetClipboardData(win32clipboard.CF_UNICODETEXT)
|
||||||
|
win32clipboard.CloseClipboard()
|
||||||
|
return lResult
|
||||||
|
################
|
||||||
|
###ClipboardSet
|
||||||
|
################
|
||||||
|
def ClipboardSet(inText):
|
||||||
|
win32clipboard.OpenClipboard()
|
||||||
|
win32clipboard.EmptyClipboard()
|
||||||
|
win32clipboard.SetClipboardData(win32clipboard.CF_UNICODETEXT,inText)
|
||||||
|
win32clipboard.CloseClipboard()
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,46 @@
|
|||||||
|
import requests
|
||||||
|
import grequests
|
||||||
|
#from requests import async
|
||||||
|
import json
|
||||||
|
###################################
|
||||||
|
##Orchestrator integration module (safe use when orchestrator is turned off)
|
||||||
|
###################################
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#Send data to orchestrator (asynchronyous)
|
||||||
|
#Example: t=IntegrationOrchestrator.DataSend(["Storage","Robot_R01"],{"RunDateTimeString":"Test1","StepCurrentName":"Test2","StepCurrentDuration":"Test333","SafeStopSignal":True},"localhost",8081)
|
||||||
|
def DataSend(inKeyList,inValue,inOrchestratorHost="localhost",inOrchestratorPort=80):
|
||||||
|
lURL = f'http://{inOrchestratorHost}:{inOrchestratorPort}/ProcessingRun'
|
||||||
|
lDataJSON = {"actionList":[{"type":"AdministrationGlobalDictSetKeyListValue","key_list":inKeyList,"value":inValue}]}
|
||||||
|
#lAsyncList = []
|
||||||
|
lResultItem = [grequests.post(lURL, json=lDataJSON)]
|
||||||
|
return grequests.map(lResultItem)
|
||||||
|
#lAsyncList.append(lResultItem)
|
||||||
|
#return async.map(lAsyncList)
|
||||||
|
################################################################################
|
||||||
|
#recieve Data from orchestrator
|
||||||
|
#t=IntegrationOrchestrator.DataRecieve(["Storage","Robot_R01"],"localhost",8081)
|
||||||
|
def DataRecieve(inKeyList,inOrchestratorHost="localhost",inOrchestratorPort=80):
|
||||||
|
lURL = f'http://{inOrchestratorHost}:{inOrchestratorPort}/ProcessingRun'
|
||||||
|
lDataJSON = {"actionList":[{"type":"AdministrationGlobalDictGetKeyListValue","key_list":inKeyList}]}
|
||||||
|
try:
|
||||||
|
lResult = requests.post(lURL, json=lDataJSON)
|
||||||
|
lResultJSON = json.loads(lResult.text)
|
||||||
|
return lResultJSON["actionListResult"][0]["value"]
|
||||||
|
except Exception:
|
||||||
|
return None
|
||||||
|
################################################################################
|
||||||
|
#Check if orchestrator has safe stop signal
|
||||||
|
#Example: IntegrationOrchestrator.SafeStopSignalIs(["Storage","Robot_R01","SafeStopSignal"],"localhost",8081)
|
||||||
|
def SafeStopSignalIs(inKeyList,inOrchestratorHost="localhost",inOrchestratorPort=80):
|
||||||
|
lResult=False
|
||||||
|
lResponse=DataRecieve(inKeyList,inOrchestratorHost,inOrchestratorPort)
|
||||||
|
if lResponse is not None:
|
||||||
|
lResult = lResponse
|
||||||
|
return lResult
|
||||||
|
################################################################################
|
||||||
|
#Reset SafeStop signal in orchestrator
|
||||||
|
#Example: t=IntegrationOrchestrator.SafeStopSignalReset(["Storage","Robot_R01","SafeStopSignal"],"localhost",8081)
|
||||||
|
def SafeStopSignalReset(inKeyList,inOrchestratorHost="localhost",inOrchestratorPort=80):
|
||||||
|
lResponse=DataSend(inKeyList,False,inOrchestratorHost,inOrchestratorPort)
|
||||||
|
return lResponse
|
@ -0,0 +1,21 @@
|
|||||||
|
#valueVerify
|
||||||
|
#inTypeClass int, str, dict, list, NoneType
|
||||||
|
def valueVerify(inValue,inTypeClass,inNotValidValue):
|
||||||
|
lResult = inNotValidValue
|
||||||
|
if inValue is not None:
|
||||||
|
if type(inValue) == inTypeClass:
|
||||||
|
lResult = inValue
|
||||||
|
#Вернуть результат
|
||||||
|
return lResult
|
||||||
|
#valueVerifyDict
|
||||||
|
def valueVerifyDict(inDict,inKey,inTypeClass,inNotValidValue):
|
||||||
|
lResult = inNotValidValue
|
||||||
|
if inKey in inDict:
|
||||||
|
lResult = valueVerify(inDict[inKey],inTypeClass,inNotValidValue)
|
||||||
|
return lResult
|
||||||
|
#valueVerifyList
|
||||||
|
def valueVerifyList(inList,inIndex,inTypeClass,inNotValidValue):
|
||||||
|
lResult = inNotValidValue
|
||||||
|
if inIndex in inList:
|
||||||
|
lResult = valueVerify(inList[inIndex],inTypeClass,inNotValidValue)
|
||||||
|
return lResult
|
@ -0,0 +1,13 @@
|
|||||||
|
import ctypes
|
||||||
|
####################################
|
||||||
|
#Info: Window module of the Robot app (OpenRPA - Robot)
|
||||||
|
####################################
|
||||||
|
# WIndow Module - Show information dialog messages to user by the modal windows
|
||||||
|
|
||||||
|
################
|
||||||
|
###DialogYesNo
|
||||||
|
################
|
||||||
|
#return 1 - Yes; 2 - No
|
||||||
|
def DialogYesNo(inTitle,inBody):
|
||||||
|
lResult = ctypes.windll.user32.MessageBoxW(0, inBody, inTitle, 1)
|
||||||
|
return lResult
|
@ -0,0 +1,15 @@
|
|||||||
|
r"""
|
||||||
|
|
||||||
|
The OpenRPA package (from UnicodeLabs)
|
||||||
|
|
||||||
|
"""
|
||||||
|
__version__ = 'v1.0.15'
|
||||||
|
__all__ = [
|
||||||
|
'GUI','Clipboard','IntegrationOrchestrator','Window', 'ProcessCommunicator'
|
||||||
|
]
|
||||||
|
__author__ = 'Ivan Maslov <ivan.maslov@unicodelabs.ru>'
|
||||||
|
from . import GUI
|
||||||
|
from . import Clipboard
|
||||||
|
from . import IntegrationOrchestrator
|
||||||
|
from . import Window
|
||||||
|
from . import ProcessCommunicator
|
@ -0,0 +1 @@
|
|||||||
|
2019-11-08 19:49:01,742 - RobotLogger - INFO - Robot/GUI: Debug mode, x64
|
@ -1,10 +1,10 @@
|
|||||||
cd %~dp0
|
cd %~dp0
|
||||||
|
RD /S /Q "build"
|
||||||
|
RD /S /Q "dist"
|
||||||
.\..\Resources\WPy64-3720\python-3.7.2.amd64\python.exe setup.py sdist bdist_wheel
|
.\..\Resources\WPy64-3720\python-3.7.2.amd64\python.exe setup.py sdist bdist_wheel
|
||||||
.\..\Resources\WPy64-3720\python-3.7.2.amd64\python.exe -m twine upload dist/*
|
.\..\Resources\WPy64-3720\python-3.7.2.amd64\python.exe -m twine upload dist/*
|
||||||
.\..\Resources\WPy64-3720\python-3.7.2.amd64\python.exe -m pip install --upgrade pyOpenRPA
|
timeout 5
|
||||||
.\..\Resources\WPy64-3720\python-3.7.2.amd64\python.exe -m pip install --upgrade pyOpenRPA
|
cd ..
|
||||||
.\..\Resources\WPy32-3720\python-3.7.2\python.exe setup.py sdist bdist_wheel
|
Resources\WPy64-3720\python-3.7.2.amd64\python.exe -m pip install --upgrade pyOpenRPA
|
||||||
.\..\Resources\WPy32-3720\python-3.7.2\python.exe -m twine upload dist/*
|
Resources\WPy32-3720\python-3.7.2\python.exe -m pip install --upgrade pyOpenRPA
|
||||||
.\..\Resources\WPy32-3720\python-3.7.2\python.exe -m pip install --upgrade pyOpenRPA
|
|
||||||
.\..\Resources\WPy32-3720\python-3.7.2\python.exe -m pip install --upgrade pyOpenRPA
|
|
||||||
pause >nul
|
pause >nul
|
@ -0,0 +1,4 @@
|
|||||||
|
cd ..
|
||||||
|
Resources\WPy64-3720\python-3.7.2.amd64\python.exe -m pip install --upgrade pyOpenRPA
|
||||||
|
Resources\WPy32-3720\python-3.7.2\python.exe -m pip install --upgrade pyOpenRPA
|
||||||
|
pause >nul
|
@ -1,17 +0,0 @@
|
|||||||
r"""
|
|
||||||
|
|
||||||
The OpenRPA package (from UnicodeLabs)
|
|
||||||
|
|
||||||
"""
|
|
||||||
import Version
|
|
||||||
__version__ = Version.Get("..")
|
|
||||||
__all__ = [
|
|
||||||
'GUI','Clipboard','IntegrationOrchestrator','Window'
|
|
||||||
]
|
|
||||||
|
|
||||||
__author__ = 'Ivan Maslov <ivan.maslov@unicodelabs.ru>'
|
|
||||||
|
|
||||||
import GUI
|
|
||||||
import Clipboard
|
|
||||||
import IntegrationOrchestrator
|
|
||||||
import Window
|
|
@ -0,0 +1,22 @@
|
|||||||
|
import win32clipboard
|
||||||
|
####################################
|
||||||
|
#Info: Clipboard module of the Robot app (OpenRPA - Robot)
|
||||||
|
####################################
|
||||||
|
# GUI Module - interaction with Windows clipboard
|
||||||
|
|
||||||
|
################
|
||||||
|
###ClipboardGet
|
||||||
|
################
|
||||||
|
def ClipboardGet():
|
||||||
|
win32clipboard.OpenClipboard()
|
||||||
|
lResult = win32clipboard.GetClipboardData(win32clipboard.CF_UNICODETEXT)
|
||||||
|
win32clipboard.CloseClipboard()
|
||||||
|
return lResult
|
||||||
|
################
|
||||||
|
###ClipboardSet
|
||||||
|
################
|
||||||
|
def ClipboardSet(inText):
|
||||||
|
win32clipboard.OpenClipboard()
|
||||||
|
win32clipboard.EmptyClipboard()
|
||||||
|
win32clipboard.SetClipboardData(win32clipboard.CF_UNICODETEXT,inText)
|
||||||
|
win32clipboard.CloseClipboard()
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,46 @@
|
|||||||
|
import requests
|
||||||
|
import grequests
|
||||||
|
#from requests import async
|
||||||
|
import json
|
||||||
|
###################################
|
||||||
|
##Orchestrator integration module (safe use when orchestrator is turned off)
|
||||||
|
###################################
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#Send data to orchestrator (asynchronyous)
|
||||||
|
#Example: t=IntegrationOrchestrator.DataSend(["Storage","Robot_R01"],{"RunDateTimeString":"Test1","StepCurrentName":"Test2","StepCurrentDuration":"Test333","SafeStopSignal":True},"localhost",8081)
|
||||||
|
def DataSend(inKeyList,inValue,inOrchestratorHost="localhost",inOrchestratorPort=80):
|
||||||
|
lURL = f'http://{inOrchestratorHost}:{inOrchestratorPort}/ProcessingRun'
|
||||||
|
lDataJSON = {"actionList":[{"type":"AdministrationGlobalDictSetKeyListValue","key_list":inKeyList,"value":inValue}]}
|
||||||
|
#lAsyncList = []
|
||||||
|
lResultItem = [grequests.post(lURL, json=lDataJSON)]
|
||||||
|
return grequests.map(lResultItem)
|
||||||
|
#lAsyncList.append(lResultItem)
|
||||||
|
#return async.map(lAsyncList)
|
||||||
|
################################################################################
|
||||||
|
#recieve Data from orchestrator
|
||||||
|
#t=IntegrationOrchestrator.DataRecieve(["Storage","Robot_R01"],"localhost",8081)
|
||||||
|
def DataRecieve(inKeyList,inOrchestratorHost="localhost",inOrchestratorPort=80):
|
||||||
|
lURL = f'http://{inOrchestratorHost}:{inOrchestratorPort}/ProcessingRun'
|
||||||
|
lDataJSON = {"actionList":[{"type":"AdministrationGlobalDictGetKeyListValue","key_list":inKeyList}]}
|
||||||
|
try:
|
||||||
|
lResult = requests.post(lURL, json=lDataJSON)
|
||||||
|
lResultJSON = json.loads(lResult.text)
|
||||||
|
return lResultJSON["actionListResult"][0]["value"]
|
||||||
|
except Exception:
|
||||||
|
return None
|
||||||
|
################################################################################
|
||||||
|
#Check if orchestrator has safe stop signal
|
||||||
|
#Example: IntegrationOrchestrator.SafeStopSignalIs(["Storage","Robot_R01","SafeStopSignal"],"localhost",8081)
|
||||||
|
def SafeStopSignalIs(inKeyList,inOrchestratorHost="localhost",inOrchestratorPort=80):
|
||||||
|
lResult=False
|
||||||
|
lResponse=DataRecieve(inKeyList,inOrchestratorHost,inOrchestratorPort)
|
||||||
|
if lResponse is not None:
|
||||||
|
lResult = lResponse
|
||||||
|
return lResult
|
||||||
|
################################################################################
|
||||||
|
#Reset SafeStop signal in orchestrator
|
||||||
|
#Example: t=IntegrationOrchestrator.SafeStopSignalReset(["Storage","Robot_R01","SafeStopSignal"],"localhost",8081)
|
||||||
|
def SafeStopSignalReset(inKeyList,inOrchestratorHost="localhost",inOrchestratorPort=80):
|
||||||
|
lResponse=DataSend(inKeyList,False,inOrchestratorHost,inOrchestratorPort)
|
||||||
|
return lResponse
|
@ -0,0 +1,21 @@
|
|||||||
|
#valueVerify
|
||||||
|
#inTypeClass int, str, dict, list, NoneType
|
||||||
|
def valueVerify(inValue,inTypeClass,inNotValidValue):
|
||||||
|
lResult = inNotValidValue
|
||||||
|
if inValue is not None:
|
||||||
|
if type(inValue) == inTypeClass:
|
||||||
|
lResult = inValue
|
||||||
|
#Вернуть результат
|
||||||
|
return lResult
|
||||||
|
#valueVerifyDict
|
||||||
|
def valueVerifyDict(inDict,inKey,inTypeClass,inNotValidValue):
|
||||||
|
lResult = inNotValidValue
|
||||||
|
if inKey in inDict:
|
||||||
|
lResult = valueVerify(inDict[inKey],inTypeClass,inNotValidValue)
|
||||||
|
return lResult
|
||||||
|
#valueVerifyList
|
||||||
|
def valueVerifyList(inList,inIndex,inTypeClass,inNotValidValue):
|
||||||
|
lResult = inNotValidValue
|
||||||
|
if inIndex in inList:
|
||||||
|
lResult = valueVerify(inList[inIndex],inTypeClass,inNotValidValue)
|
||||||
|
return lResult
|
@ -0,0 +1,13 @@
|
|||||||
|
import ctypes
|
||||||
|
####################################
|
||||||
|
#Info: Window module of the Robot app (OpenRPA - Robot)
|
||||||
|
####################################
|
||||||
|
# WIndow Module - Show information dialog messages to user by the modal windows
|
||||||
|
|
||||||
|
################
|
||||||
|
###DialogYesNo
|
||||||
|
################
|
||||||
|
#return 1 - Yes; 2 - No
|
||||||
|
def DialogYesNo(inTitle,inBody):
|
||||||
|
lResult = ctypes.windll.user32.MessageBoxW(0, inBody, inTitle, 1)
|
||||||
|
return lResult
|
@ -0,0 +1,15 @@
|
|||||||
|
r"""
|
||||||
|
|
||||||
|
The OpenRPA package (from UnicodeLabs)
|
||||||
|
|
||||||
|
"""
|
||||||
|
__version__ = 'v1.0.15'
|
||||||
|
__all__ = [
|
||||||
|
'GUI','Clipboard','IntegrationOrchestrator','Window', 'ProcessCommunicator'
|
||||||
|
]
|
||||||
|
__author__ = 'Ivan Maslov <ivan.maslov@unicodelabs.ru>'
|
||||||
|
from . import GUI
|
||||||
|
from . import Clipboard
|
||||||
|
from . import IntegrationOrchestrator
|
||||||
|
from . import Window
|
||||||
|
from . import ProcessCommunicator
|
Binary file not shown.
Binary file not shown.
@ -0,0 +1,16 @@
|
|||||||
|
setup.py
|
||||||
|
pyOpenRPA/Clipboard.py
|
||||||
|
pyOpenRPA/GUI.py
|
||||||
|
pyOpenRPA/IntegrationOrchestrator.py
|
||||||
|
pyOpenRPA/JSONNormalize.py
|
||||||
|
pyOpenRPA/ProcessCommunicator.py
|
||||||
|
pyOpenRPA/Robot.py
|
||||||
|
pyOpenRPA/ValueVerify.py
|
||||||
|
pyOpenRPA/Window.py
|
||||||
|
pyOpenRPA/__init__.py
|
||||||
|
pyOpenRPA.egg-info/PKG-INFO
|
||||||
|
pyOpenRPA.egg-info/SOURCES.txt
|
||||||
|
pyOpenRPA.egg-info/dependency_links.txt
|
||||||
|
pyOpenRPA.egg-info/not-zip-safe
|
||||||
|
pyOpenRPA.egg-info/requires.txt
|
||||||
|
pyOpenRPA.egg-info/top_level.txt
|
@ -0,0 +1,6 @@
|
|||||||
|
pywinauto>=0.6.6
|
||||||
|
WMI>=1.4.9
|
||||||
|
pillow>=6.0.0
|
||||||
|
keyboard>=0.13.3
|
||||||
|
pyautogui>=0.9.44
|
||||||
|
pywin32>=224
|
@ -0,0 +1 @@
|
|||||||
|
pyOpenRPA
|
@ -0,0 +1,22 @@
|
|||||||
|
import win32clipboard
|
||||||
|
####################################
|
||||||
|
#Info: Clipboard module of the Robot app (OpenRPA - Robot)
|
||||||
|
####################################
|
||||||
|
# GUI Module - interaction with Windows clipboard
|
||||||
|
|
||||||
|
################
|
||||||
|
###ClipboardGet
|
||||||
|
################
|
||||||
|
def ClipboardGet():
|
||||||
|
win32clipboard.OpenClipboard()
|
||||||
|
lResult = win32clipboard.GetClipboardData(win32clipboard.CF_UNICODETEXT)
|
||||||
|
win32clipboard.CloseClipboard()
|
||||||
|
return lResult
|
||||||
|
################
|
||||||
|
###ClipboardSet
|
||||||
|
################
|
||||||
|
def ClipboardSet(inText):
|
||||||
|
win32clipboard.OpenClipboard()
|
||||||
|
win32clipboard.EmptyClipboard()
|
||||||
|
win32clipboard.SetClipboardData(win32clipboard.CF_UNICODETEXT,inText)
|
||||||
|
win32clipboard.CloseClipboard()
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,46 @@
|
|||||||
|
import requests
|
||||||
|
import grequests
|
||||||
|
#from requests import async
|
||||||
|
import json
|
||||||
|
###################################
|
||||||
|
##Orchestrator integration module (safe use when orchestrator is turned off)
|
||||||
|
###################################
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
#Send data to orchestrator (asynchronyous)
|
||||||
|
#Example: t=IntegrationOrchestrator.DataSend(["Storage","Robot_R01"],{"RunDateTimeString":"Test1","StepCurrentName":"Test2","StepCurrentDuration":"Test333","SafeStopSignal":True},"localhost",8081)
|
||||||
|
def DataSend(inKeyList,inValue,inOrchestratorHost="localhost",inOrchestratorPort=80):
|
||||||
|
lURL = f'http://{inOrchestratorHost}:{inOrchestratorPort}/ProcessingRun'
|
||||||
|
lDataJSON = {"actionList":[{"type":"AdministrationGlobalDictSetKeyListValue","key_list":inKeyList,"value":inValue}]}
|
||||||
|
#lAsyncList = []
|
||||||
|
lResultItem = [grequests.post(lURL, json=lDataJSON)]
|
||||||
|
return grequests.map(lResultItem)
|
||||||
|
#lAsyncList.append(lResultItem)
|
||||||
|
#return async.map(lAsyncList)
|
||||||
|
################################################################################
|
||||||
|
#recieve Data from orchestrator
|
||||||
|
#t=IntegrationOrchestrator.DataRecieve(["Storage","Robot_R01"],"localhost",8081)
|
||||||
|
def DataRecieve(inKeyList,inOrchestratorHost="localhost",inOrchestratorPort=80):
|
||||||
|
lURL = f'http://{inOrchestratorHost}:{inOrchestratorPort}/ProcessingRun'
|
||||||
|
lDataJSON = {"actionList":[{"type":"AdministrationGlobalDictGetKeyListValue","key_list":inKeyList}]}
|
||||||
|
try:
|
||||||
|
lResult = requests.post(lURL, json=lDataJSON)
|
||||||
|
lResultJSON = json.loads(lResult.text)
|
||||||
|
return lResultJSON["actionListResult"][0]["value"]
|
||||||
|
except Exception:
|
||||||
|
return None
|
||||||
|
################################################################################
|
||||||
|
#Check if orchestrator has safe stop signal
|
||||||
|
#Example: IntegrationOrchestrator.SafeStopSignalIs(["Storage","Robot_R01","SafeStopSignal"],"localhost",8081)
|
||||||
|
def SafeStopSignalIs(inKeyList,inOrchestratorHost="localhost",inOrchestratorPort=80):
|
||||||
|
lResult=False
|
||||||
|
lResponse=DataRecieve(inKeyList,inOrchestratorHost,inOrchestratorPort)
|
||||||
|
if lResponse is not None:
|
||||||
|
lResult = lResponse
|
||||||
|
return lResult
|
||||||
|
################################################################################
|
||||||
|
#Reset SafeStop signal in orchestrator
|
||||||
|
#Example: t=IntegrationOrchestrator.SafeStopSignalReset(["Storage","Robot_R01","SafeStopSignal"],"localhost",8081)
|
||||||
|
def SafeStopSignalReset(inKeyList,inOrchestratorHost="localhost",inOrchestratorPort=80):
|
||||||
|
lResponse=DataSend(inKeyList,False,inOrchestratorHost,inOrchestratorPort)
|
||||||
|
return lResponse
|
@ -0,0 +1,21 @@
|
|||||||
|
#valueVerify
|
||||||
|
#inTypeClass int, str, dict, list, NoneType
|
||||||
|
def valueVerify(inValue,inTypeClass,inNotValidValue):
|
||||||
|
lResult = inNotValidValue
|
||||||
|
if inValue is not None:
|
||||||
|
if type(inValue) == inTypeClass:
|
||||||
|
lResult = inValue
|
||||||
|
#Вернуть результат
|
||||||
|
return lResult
|
||||||
|
#valueVerifyDict
|
||||||
|
def valueVerifyDict(inDict,inKey,inTypeClass,inNotValidValue):
|
||||||
|
lResult = inNotValidValue
|
||||||
|
if inKey in inDict:
|
||||||
|
lResult = valueVerify(inDict[inKey],inTypeClass,inNotValidValue)
|
||||||
|
return lResult
|
||||||
|
#valueVerifyList
|
||||||
|
def valueVerifyList(inList,inIndex,inTypeClass,inNotValidValue):
|
||||||
|
lResult = inNotValidValue
|
||||||
|
if inIndex in inList:
|
||||||
|
lResult = valueVerify(inList[inIndex],inTypeClass,inNotValidValue)
|
||||||
|
return lResult
|
@ -0,0 +1,13 @@
|
|||||||
|
import ctypes
|
||||||
|
####################################
|
||||||
|
#Info: Window module of the Robot app (OpenRPA - Robot)
|
||||||
|
####################################
|
||||||
|
# WIndow Module - Show information dialog messages to user by the modal windows
|
||||||
|
|
||||||
|
################
|
||||||
|
###DialogYesNo
|
||||||
|
################
|
||||||
|
#return 1 - Yes; 2 - No
|
||||||
|
def DialogYesNo(inTitle,inBody):
|
||||||
|
lResult = ctypes.windll.user32.MessageBoxW(0, inBody, inTitle, 1)
|
||||||
|
return lResult
|
@ -0,0 +1,15 @@
|
|||||||
|
r"""
|
||||||
|
|
||||||
|
The OpenRPA package (from UnicodeLabs)
|
||||||
|
|
||||||
|
"""
|
||||||
|
__version__ = 'v1.0.15'
|
||||||
|
__all__ = [
|
||||||
|
'GUI','Clipboard','IntegrationOrchestrator','Window', 'ProcessCommunicator'
|
||||||
|
]
|
||||||
|
__author__ = 'Ivan Maslov <ivan.maslov@unicodelabs.ru>'
|
||||||
|
from . import GUI
|
||||||
|
from . import Clipboard
|
||||||
|
from . import IntegrationOrchestrator
|
||||||
|
from . import Window
|
||||||
|
from . import ProcessCommunicator
|
@ -1 +0,0 @@
|
|||||||
{}
|
|
Loading…
Reference in new issue