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
|
||||
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 -m twine upload dist/*
|
||||
.\..\Resources\WPy64-3720\python-3.7.2.amd64\python.exe -m pip install --upgrade pyOpenRPA
|
||||
.\..\Resources\WPy64-3720\python-3.7.2.amd64\python.exe -m pip install --upgrade pyOpenRPA
|
||||
.\..\Resources\WPy32-3720\python-3.7.2\python.exe setup.py sdist bdist_wheel
|
||||
.\..\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
|
||||
timeout 5
|
||||
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
|
@ -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