@ -1086,20 +1086,20 @@ def WebRequestParseBodyJSON(inRequest=None):
def WebRequestParsePath ( inRequest = None ) :
def WebRequestParsePath ( inRequest = None ) :
"""
"""
Parse the request - extract the url . Example : / pyOpenRPA / Debugging / DefHelper / . . .
Извлечь декодированный URL путь из HTTP запроса пользователя в формате строки .
: param inRequest : inRequest from the server . Optional if call def from request thread
: param inRequest : Экземпляр HTTP request . Опционален , если сообщение фиксируется из под потока , который был инициирован запросом пользователя
: return : Str , Example : / pyOpenRPA / Debugging / DefHelper / . . .
: return : str , пример : / pyOpenRPA / Debugging / DefHelper
"""
"""
if inRequest is None : inRequest = WebRequestGet ( )
if inRequest is None : inRequest = WebRequestGet ( )
return urllib . parse . unquote ( inRequest . path )
return urllib . parse . unquote ( inRequest . path )
def WebRequestParseFile ( inRequest = None ) :
def WebRequestParseFile ( inRequest = None ) :
"""
"""
Parse the request - extract the file ( name , body in bytes )
Извлечь файл ( наименование + содержимое в виде строки байт b ' ' ) из HTTP запроса пользователя .
: param inRequest : inRequest from the server . Optional if call def from request thread
: param inRequest : Экземпляр HTTP request . Опционален , если сообщение фиксируется из под потока , который был инициирован запросом пользователя
: return : ( FileNameStr , FileBodyBytes ) or ( None , None )
: return : Кортеж формата ( FileNameStr , FileBodyBytes ) or ( None , None ) , если файл не был обнаружен
"""
"""
if inRequest is None : inRequest = WebRequestGet ( )
if inRequest is None : inRequest = WebRequestGet ( )
lResultTurple = ( None , None )
lResultTurple = ( None , None )
@ -1123,13 +1123,12 @@ def WebRequestParseFile(inRequest=None):
def WebRequestResponseSend ( inResponeStr , inRequest = None , inContentTypeStr : str = None , inHeadersDict : dict = None ) :
def WebRequestResponseSend ( inResponeStr , inRequest = None , inContentTypeStr : str = None , inHeadersDict : dict = None ) :
"""
"""
Set response for the request
Установить ответ на HTTP запрос пользователя .
: param inResponeStr : Response string
: param inResponeStr : Тело ответа ( строка )
: param inRequest : inRequest from the server . Optional if call def from request thread
: param inRequest : Экземпляр HTTP request . Опционален , если сообщение фиксируется из под потока , который был инициирован запросом пользователя
: param inContentTypeStr : Type content - type . Example : " html/text "
: param inContentTypeStr : МИМЕ тип . Пример : " html/text "
: param inHeadersDict : Dict of the headers for the response
: param inHeadersDict : Словарь ( dict ) ключей , которые добавить в headers HTTP ответа на запрос пользователя
: return :
"""
"""
if inRequest is None : inRequest = WebRequestGet ( )
if inRequest is None : inRequest = WebRequestGet ( )
inRequest . OpenRPAResponseDict [ " Body " ] = bytes ( inResponeStr , " utf8 " )
inRequest . OpenRPAResponseDict [ " Body " ] = bytes ( inResponeStr , " utf8 " )
@ -1141,8 +1140,7 @@ def WebRequestResponseSend(inResponeStr, inRequest=None, inContentTypeStr: str =
def WebRequestGet ( ) :
def WebRequestGet ( ) :
"""
"""
Return the web request instance if current thread was created by web request from client . else return None
Вернуть экземпляр HTTP запроса , если функция вызвана в потоке , который был порожден для отработки HTTP запроса пользователя .
"""
"""
lCurrentThread = threading . current_thread ( )
lCurrentThread = threading . current_thread ( )
if hasattr ( lCurrentThread , " request " ) :
if hasattr ( lCurrentThread , " request " ) :
@ -1150,10 +1148,10 @@ def WebRequestGet():
def WebUserInfoGet ( inRequest = None ) :
def WebUserInfoGet ( inRequest = None ) :
"""
"""
Return User info about request
Информация о пользователе , который отправил HTTP запрос .
: param inRequest : inRequest from the server . Optional if call def from request thread
: param inRequest : Экземпляр HTTP request . Опционален , если сообщение фиксируется из под потока , который был инициирован запросом пользователя
: return : { " DomainUpperStr " : " ", " UserNameUpperStr " : " " }
: return : Сведения в формате { " DomainUpperStr " : " PYOPENRPA ", " UserNameUpperStr " : " IVAN.MASLOV " }
"""
"""
if inRequest is None : inRequest = WebRequestGet ( )
if inRequest is None : inRequest = WebRequestGet ( )
lDomainUpperStr = inRequest . OpenRPA [ " Domain " ] . upper ( )
lDomainUpperStr = inRequest . OpenRPA [ " Domain " ] . upper ( )
@ -1162,11 +1160,11 @@ def WebUserInfoGet(inRequest=None):
def WebUserIsSuperToken ( inRequest = None , inGSettings = None ) :
def WebUserIsSuperToken ( inRequest = None , inGSettings = None ) :
"""
"""
Return bool if request is authentificated with supetoken ( token which is never expires )
Проверить, авторизован ли HTTP запрос с помощью супер токена ( токен , который не истекает ) .
: param inRequest : inRequest from the server . Optional if call def from request thread
: param inRequest : Экземпляр HTTP request . Опционален , если сообщение фиксируется из под потока , который был инициирован запросом пользователя
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: return : bool True - is supertoken ; False - is not supertoken
: return : True - является супертокеном ; False - не является супертокеном
"""
"""
if inRequest is None : inRequest = WebRequestGet ( )
if inRequest is None : inRequest = WebRequestGet ( )
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
@ -1177,10 +1175,10 @@ def WebUserIsSuperToken(inRequest = None, inGSettings = None):
def WebUserUACHierarchyGet ( inRequest = None ) :
def WebUserUACHierarchyGet ( inRequest = None ) :
"""
"""
Return User UAC Hierarchy DICT Return { . . . }
Вернуть словарь доступа UAC в отношении пользователя , который выполнил HTTP запрос inRequest
: param inRequest : inRequest from the server . Optional if call def from request thread
: param inRequest : Экземпляр HTTP request . Опционален , если сообщение фиксируется из под потока , который был инициирован запросом пользователя
: return : UAC Dict { }
: return : UAC словарь доступа или { } , что означает полный доступ
"""
"""
if inRequest is None : inRequest = WebRequestGet ( )
if inRequest is None : inRequest = WebRequestGet ( )
return inRequest . UserRoleHierarchyGet ( )
return inRequest . UserRoleHierarchyGet ( )
@ -1200,10 +1198,10 @@ if __name__ == "pyOpenRPA.Orchestrator.__Orchestrator__" and "pyOpenRPA.Orchestr
def GSettingsGet ( inGSettings = None ) :
def GSettingsGet ( inGSettings = None ) :
"""
"""
Get the GSettings from the singleton module .
Вернуть глобальный словарь настроек Оркестратора . В о время выполнения программы глобальный словарь настроек существует в единственном экземпляре ( синглтон )
: param inGSettings : Г лобальный словарь настроек Оркестратора ( синглтон )
: param inGSettings : Дополнительный словарь настроек , который необходимо добавить в основной г лобальный словарь настроек Оркестратора ( синглтон )
: return : GSettings
: return : Глобальный словарь настроек GSettings
"""
"""
global GSettings # identify the global variable
global GSettings # identify the global variable
# Merge dictionaries if some new dictionary has come
# Merge dictionaries if some new dictionary has come
@ -1213,12 +1211,13 @@ def GSettingsGet(inGSettings=None):
def GSettingsKeyListValueSet ( inValue , inKeyList = None , inGSettings = None ) :
def GSettingsKeyListValueSet ( inValue , inKeyList = None , inGSettings = None ) :
"""
"""
Set value in GSettings by the key list
Установить значение из глобального словаря настроек Оркестратора GSettings по списку ключей .
Пример : Для того , чтобы установить значение для ключа car в словаре { " complex " : { " car " : " green " } , " simple " : " HELLO " } , необходимо передать список ключей : [ " complex " , " car " ]
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inValue :
: param inValue : Значение для установки в глобальный словарь настроек Оркестратора GSettings
: param inKeyList :
: param inKeyList : Список ключей , по адресу которого установить значение в GSettings
: return : bool
"""
"""
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
if inKeyList is None : inKeyList = [ ]
if inKeyList is None : inKeyList = [ ]
@ -1235,11 +1234,11 @@ def GSettingsKeyListValueSet(inValue, inKeyList=None, inGSettings = None):
def GSettingsKeyListValueGet ( inKeyList = None , inGSettings = None ) :
def GSettingsKeyListValueGet ( inKeyList = None , inGSettings = None ) :
"""
"""
Get the value from the GSettings by the key list
Получить значение из глобального словаря настроек Оркестратора GSettings по списку ключей .
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inKeyList :
: param inKeyList : Список ключей , по адресу которого получить значение из GSettings
: return : value any type
: return : Значение ( тип данных определяется форматом хранения в GSettings )
"""
"""
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
if inKeyList is None : inKeyList = [ ]
if inKeyList is None : inKeyList = [ ]
@ -1255,11 +1254,11 @@ def GSettingsKeyListValueGet(inKeyList=None, inGSettings = None):
def GSettingsKeyListValueAppend ( inValue , inKeyList = None , inGSettings = None ) :
def GSettingsKeyListValueAppend ( inValue , inKeyList = None , inGSettings = None ) :
"""
"""
Append value in GSettings by the key list
Применить операцию . append к обьекту , расположенному по адресу списка ключей inKeyList в глобальном словаре настроек Оркестратора GSettings . Пример : Добавить значение в конец списка ( list ) .
. . code - block : : python
. . code - block : : python
# USAGE
# ПРИМЕР
from pyOpenRPA import Orchestrator
from pyOpenRPA import Orchestrator
Orchestrator . GSettingsKeyListValueAppend (
Orchestrator . GSettingsKeyListValueAppend (
@ -1276,9 +1275,8 @@ def GSettingsKeyListValueAppend(inValue, inKeyList=None, inGSettings = None):
#}
#}
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inValue : Any value to be appended in gSettings Dict by the key list
: param inValue : Значение для установки в глобальный словарь настроек Оркестратора GSettings
: param inKeyList : List of the nested keys ( see example )
: param inKeyList : Список ключей , по адресу которого выполнить добавление в конец списка ( list )
: return : True every time
"""
"""
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
if inKeyList is None : inKeyList = [ ]
if inKeyList is None : inKeyList = [ ]
@ -1295,11 +1293,11 @@ def GSettingsKeyListValueAppend(inValue, inKeyList=None, inGSettings = None):
def GSettingsKeyListValueOperatorPlus ( inValue , inKeyList = None , inGSettings = None ) :
def GSettingsKeyListValueOperatorPlus ( inValue , inKeyList = None , inGSettings = None ) :
"""
"""
Execute plus operation between 2 lists ( 1 : inValue and 2 : gSettings by the inKeyList )
Применить оператор сложения ( + ) к обьекту , расположенному по адресу списка ключей inKeyList в глобальном словаре настроек Оркестратора GSettings . Пример : соединить 2 списка ( list ) .
. . code - block : : python
. . code - block : : python
# USAGE
# ПРИМЕР
from pyOpenRPA import Orchestrator
from pyOpenRPA import Orchestrator
Orchestrator . GSettingsKeyListValueOperatorPlus (
Orchestrator . GSettingsKeyListValueOperatorPlus (
@ -1319,9 +1317,8 @@ def GSettingsKeyListValueOperatorPlus(inValue, inKeyList=None, inGSettings = Non
#}
#}
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inValue : List with values to be merged with list in gSettings
: param inValue : Значение для установки в глобальный словарь настроек Оркестратора GSettings
: param inKeyList : List of the nested keys ( see example )
: param inKeyList : Список ключей , по адресу которого выполнить добавление в конец списка ( list )
: return : True every time
"""
"""
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
if inKeyList is None : inKeyList = [ ]
if inKeyList is None : inKeyList = [ ]
@ -1338,19 +1335,19 @@ def GSettingsKeyListValueOperatorPlus(inValue, inKeyList=None, inGSettings = Non
def StorageRobotExists ( inRobotNameStr ) :
def StorageRobotExists ( inRobotNameStr ) :
"""
"""
Check if robot storage exists
Проверить, существует ли ключ inRobotNameStr в хранилище пользовательской информации StorageDict ( GSettings > StarageDict )
: param inRobotNameStr : Robot name ( case sensitive )
: param inRobotNameStr : Наименование ( ключ ) робота . ! ВНИМАНИЕ ! Наименование чувствительно к регистру
: return : True - robot storage exist ; False - does not exist
: return : True - ключ робота присутствует в хранилище ; False - отсутствует
"""
"""
return inRobotNameStr in GSettingsGet ( ) [ " StorageDict " ]
return inRobotNameStr in GSettingsGet ( ) [ " StorageDict " ]
def StorageRobotGet ( inRobotNameStr ) :
def StorageRobotGet ( inRobotNameStr ) :
"""
"""
Get the robot storage by the robot name . If Robot storage is not exist - function will create it
Получить содержимое по ключу робота inRobotNameStr в хранилище пользовательской информации StorageDict ( GSettings > StarageDict )
: param inRobotNameStr : Robot name ( case sensitive )
: param inRobotNameStr : Наименование ( ключ ) робота . ! ВНИМАНИЕ ! Наименование чувствительно к регистру
: return : Dict
: return : Значение или структура , которая расположена по адресу ( GSettings > Starage Dict > inRobotNameStr )
"""
"""
if inRobotNameStr not in GSettingsGet ( ) [ " StorageDict " ] :
if inRobotNameStr not in GSettingsGet ( ) [ " StorageDict " ] :
GSettingsGet ( ) [ " StorageDict " ] [ inRobotNameStr ] = { }
GSettingsGet ( ) [ " StorageDict " ] [ inRobotNameStr ] = { }
@ -1358,9 +1355,9 @@ def StorageRobotGet(inRobotNameStr):
def ProcessorAliasDefCreate ( inDef , inAliasStr = None , inGSettings = None ) :
def ProcessorAliasDefCreate ( inDef , inAliasStr = None , inGSettings = None ) :
"""
"""
Create alias for def ( can be used in ActivityItem in field Def )
Создать синоним ( текстовый ключ ) для инициации выполнения функции в том случае , если запрос на выполнения пришел из вне ( передача функций невозможна ) .
! WHEN DEF ALIAS IS REQUIRED ! - Def alias is required when you try to call Python def from the Orchestrator WEB side ( because you can ' t transmit Python def object out of the Python environment)
Deprecated. See ActivityItemDefAliasCreate
Старая версия . Новую версию см . ActivityItemDefAliasCreate
. . code - block : : python
. . code - block : : python
@ -1375,18 +1372,19 @@ def ProcessorAliasDefCreate(inDef, inAliasStr=None, inGSettings = None):
inAliasStr = " TestDefAlias " )
inAliasStr = " TestDefAlias " )
# Now you can call TestDef by the alias from var lAliasStr with help of ActivityItem (key Def = lAliasStr)
# Now you can call TestDef by the alias from var lAliasStr with help of ActivityItem (key Def = lAliasStr)
: param inDef : функция Python
: param inAliasStr : Строковый ключ ( синоним ) , который можно будет использовать в Активности ( ActivityItem )
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inDef : Def
: return : Строковый ключ , который был назначен . Ключ может быть изменен , если входящий текстовый ключ был уже занят .
: param inAliasStr : String alias for associated def
: return : str Alias string ( Alias can be regenerated if previous alias was occupied )
"""
"""
return ActivityItemDefAliasCreate ( inDef = inDef , inAliasStr = inAliasStr , inGSettings = inGSettings )
return ActivityItemDefAliasCreate ( inDef = inDef , inAliasStr = inAliasStr , inGSettings = inGSettings )
def ProcessorAliasDefUpdate ( inDef , inAliasStr , inGSettings = None ) :
def ProcessorAliasDefUpdate ( inDef , inAliasStr , inGSettings = None ) :
"""
"""
Update alias for def ( can be used in ActivityItem in field Def ) .
Обновить синоним ( текстовый ключ ) для инициации выполнения функции в том случае , если запрос на выполнения пришел из вне ( передача функций невозможна ) .
! WHEN DEF ALIAS IS REQUIRED ! - Def alias is required when you try to call Python def from the Orchestrator WEB side ( because you can ' t transmit Python def object out of the Python environment)
Deprecated. See ActivityItemDefAliasUpdate
Старая версия . Новую версию см . ActivityItemDefAliasUpdate
. . code - block : : python
. . code - block : : python
@ -1402,19 +1400,19 @@ def ProcessorAliasDefUpdate(inDef, inAliasStr, inGSettings = None):
# Now you can call TestDef by the alias "TestDefAlias" with help of ActivityItem (key Def = "TestDefAlias")
# Now you can call TestDef by the alias "TestDefAlias" with help of ActivityItem (key Def = "TestDefAlias")
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inDef : Def
: param inDef : функция Python
: param inAliasStr : String alias for associated def
: param inAliasStr : Строковый ключ ( синоним ) , который можно будет использовать в Активности ( ActivityItem )
: return : str Alias string
: return : Строковый ключ , который был назначен . Ключ будет тем же , если входящий текстовый ключ был уже занят .
"""
"""
return ActivityItemDefAliasUpdate ( inDef = inDef , inAliasStr = inAliasStr , inGSettings = inGSettings )
return ActivityItemDefAliasUpdate ( inDef = inDef , inAliasStr = inAliasStr , inGSettings = inGSettings )
# ActivityItem defs
# ActivityItem defs
def ActivityItemHelperDefList ( inDefQueryStr = None ) :
def ActivityItemHelperDefList ( inDefQueryStr = None ) :
"""
"""
Create list of the available Def names in activity item . You can use query def filter via arg inDefQueryStr
Получить список синонимов ( текстовых ключей ) , доступных для использования в Активностях ( ActivityItem ) .
: param inDefStr :
: param inDefStr : Часть текстового ключ ( начало / середина / конец )
: return : [ " ActivityItemDefAliasUpdate " , " ActivityItemDefAliasCreate " , etc . . . ]
: return : Список доступных ключей в формате : [ " ActivityItemDefAliasUpdate " , " ActivityItemDefAliasCreate " , etc . . . ]
"""
"""
lResultList = [ ]
lResultList = [ ]
if inDefQueryStr is not None : # do search alg
if inDefQueryStr is not None : # do search alg
@ -1428,10 +1426,17 @@ def ActivityItemHelperDefList(inDefQueryStr=None):
def ActivityItemHelperDefAutofill ( inDef ) :
def ActivityItemHelperDefAutofill ( inDef ) :
"""
"""
Detect def by the name and prepare the activity item dict with values .
Анализ аргументов функции по синониму ( текстовому ключу ) .
: param inDef :
: param inDef : Часть текстового ключ ( начало / середина / конец )
: return :
: return : Преднастроенная структура активности ( ActivityItem )
{
" Def " : None ,
" ArgList " : [ ] ,
" ArgDict " : { } ,
" ArgGSettingsStr " : None ,
" ArgLoggerStr " : None
}
"""
"""
lResultDict = {
lResultDict = {
" Def " : None ,
" Def " : None ,
@ -1460,14 +1465,14 @@ def ActivityItemHelperDefAutofill(inDef):
def ActivityItemCreate ( inDef , inArgList = None , inArgDict = None , inArgGSettingsStr = None , inArgLoggerStr = None , inGUIDStr = None , inThreadBool = False ) :
def ActivityItemCreate ( inDef , inArgList = None , inArgDict = None , inArgGSettingsStr = None , inArgLoggerStr = None , inGUIDStr = None , inThreadBool = False ) :
"""
"""
Create activity item . Activity item can be used as list item in ProcessorActivityItemAppend or in Processor . ActivityListExecute .
Создать Активность ( ActivityItem ) . Активность можно использовать в ProcessorActivityItemAppend или в Processor . ActivityListExecute или в функциях работы с Агентами .
. . code - block : : python
. . code - block : : python
# USAGE
# ПРИМЕР
from pyOpenRPA import Orchestrator
from pyOpenRPA import Orchestrator
# EXAMPLE 1
# ВАРИАНТ 1
def TestDef ( inArg1Str , inGSettings , inLogger ) :
def TestDef ( inArg1Str , inGSettings , inLogger ) :
pass
pass
lActivityItem = Orchestrator . ActivityItemCreate (
lActivityItem = Orchestrator . ActivityItemCreate (
@ -1485,7 +1490,7 @@ def ActivityItemCreate(inDef, inArgList=None, inArgDict=None, inArgGSettingsStr=
# "ArgLogger": "inLogger"
# "ArgLogger": "inLogger"
# }
# }
# EXAMPLE 2
# ВАРИАНТ 2
def TestDef ( inArg1Str ) :
def TestDef ( inArg1Str ) :
pass
pass
Orchestrator . ActivityItemDefAliasUpdate (
Orchestrator . ActivityItemDefAliasUpdate (
@ -1507,14 +1512,23 @@ def ActivityItemCreate(inDef, inArgList=None, inArgDict=None, inArgGSettingsStr=
# "ArgLogger": None
# "ArgLogger": None
# }
# }
: param inDef : def link or def alias ( look gSettings [ " Processor " ] [ " AliasDefDict " ] )
: param inDef : Функция Python или синоним ( текстовый ключ )
: param inArgList : Args list for the Def
: param inArgList : Список ( list ) неименованных аргументов к функции
: param inArgDict : Args dict for the def
: param inArgDict : Словарь ( dict ) именованных аргументов к функции
: param inArgGSettingsStr : Name of def argument of the GSettings dict
: param inArgGSettingsStr : Текстовое наименование аргумента GSettings ( если требуется передавать )
: param inArgLoggerStr : Name of def argument of the logging object
: param inArgLoggerStr : Текстовое наименование аргумента logger ( если требуется передавать )
: param inGUIDStr : GUID which you can specify . If None the GUID will be generated
: param inGUIDStr : ГУИД идентификатор активности ( ActivityItem ) . Если ГУИД не указан , то он будет сгенерирован автоматически
: param inThreadBool : True - execute ActivityItem in new thread ; False - in processor thread
: param inThreadBool : True - выполнить ActivityItem в новом потоке ; False - выполнить последовательно в общем потоке процессорной очереди
: return : { }
: return :
lActivityItemDict = {
" Def " : inDef , # def link or def alias (look gSettings["Processor"]["AliasDefDict"])
" ArgList " : inArgList , # Args list
" ArgDict " : inArgDict , # Args dictionary
" ArgGSettings " : inArgGSettingsStr , # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
" ArgLogger " : inArgLoggerStr , # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
" GUIDStr " : inGUIDStr ,
" ThreadBool " : inThreadBool
}
"""
"""
# Work about GUID in Activity items
# Work about GUID in Activity items
if inGUIDStr is None :
if inGUIDStr is None :
@ -1535,12 +1549,11 @@ def ActivityItemCreate(inDef, inArgList=None, inArgDict=None, inArgGSettingsStr=
def ActivityItemDefAliasCreate ( inDef , inAliasStr = None , inGSettings = None ) :
def ActivityItemDefAliasCreate ( inDef , inAliasStr = None , inGSettings = None ) :
"""
"""
Create alias for def ( can be used in ActivityItem in field Def )
Создать синоним ( текстовый ключ ) для инициации выполнения функции в том случае , если запрос на выполнения пришел из вне ( передача функций невозможна ) .
! WHEN DEF ALIAS IS REQUIRED ! - Def alias is required when you try to call Python def from the Orchestrator WEB side ( because you can ' t transmit Python def object out of the Python environment)
. . code - block : : python
. . code - block : : python
# USAGE
# ПРИМЕР
from pyOpenRPA import Orchestrator
from pyOpenRPA import Orchestrator
def TestDef ( ) :
def TestDef ( ) :
@ -1551,10 +1564,10 @@ def ActivityItemDefAliasCreate(inDef, inAliasStr=None, inGSettings = None):
inAliasStr = " TestDefAlias " )
inAliasStr = " TestDefAlias " )
# Now you can call TestDef by the alias from var lAliasStr with help of ActivityItem (key Def = lAliasStr)
# Now you can call TestDef by the alias from var lAliasStr with help of ActivityItem (key Def = lAliasStr)
: param inDef : функция Python
: param inAliasStr : Строковый ключ ( синоним ) , который можно будет использовать в Активности ( ActivityItem )
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inDef : Def
: return : Строковый ключ , который был назначен . Ключ может быть изменен , если входящий текстовый ключ был уже занят .
: param inAliasStr : String alias for associated def
: return : str Alias string ( Alias can be regenerated if previous alias was occupied )
"""
"""
#TODO Pay attention - New alias can be used too - need to create more complex algorythm to create new alias!
#TODO Pay attention - New alias can be used too - need to create more complex algorythm to create new alias!
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
@ -1569,9 +1582,7 @@ def ActivityItemDefAliasCreate(inDef, inAliasStr=None, inGSettings = None):
def ActivityItemDefAliasModulesLoad ( ) :
def ActivityItemDefAliasModulesLoad ( ) :
"""
"""
Load all def from sys . modules . . . in ActivityItem def alias dict
Загрузить все функции из импортированных модулей sys . modules в ActivityItem синонимы - полезно для отладки с о стороны панели управления .
: return : None
"""
"""
lL = OrchestratorLoggerGet ( )
lL = OrchestratorLoggerGet ( )
lL . info ( f " ActivityItem aliases: start to load sys.modules " )
lL . info ( f " ActivityItem aliases: start to load sys.modules " )
@ -1589,8 +1600,7 @@ def ActivityItemDefAliasModulesLoad():
def ActivityItemDefAliasUpdate ( inDef , inAliasStr , inGSettings = None ) :
def ActivityItemDefAliasUpdate ( inDef , inAliasStr , inGSettings = None ) :
"""
"""
Update alias for def ( can be used in ActivityItem in field Def ) .
Обновить синоним ( текстовый ключ ) для инициации выполнения функции в том случае , если запрос на выполнения пришел из вне ( передача функций невозможна ) .
! WHEN DEF ALIAS IS REQUIRED ! - Def alias is required when you try to call Python def from the Orchestrator WEB side ( because you can ' t transmit Python def object out of the Python environment)
. . code - block : : python
. . code - block : : python
@ -1605,10 +1615,10 @@ def ActivityItemDefAliasUpdate(inDef, inAliasStr, inGSettings = None):
inAliasStr = " TestDefAlias " )
inAliasStr = " TestDefAlias " )
# Now you can call TestDef by the alias "TestDefAlias" with help of ActivityItem (key Def = "TestDefAlias")
# Now you can call TestDef by the alias "TestDefAlias" with help of ActivityItem (key Def = "TestDefAlias")
: param inDef : функция Python
: param inAliasStr : Строковый ключ ( синоним ) , который можно будет использовать в Активности ( ActivityItem )
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inDef : Def
: return : Строковый ключ , который был назначен . Ключ будет тем же , если входящий текстовый ключ был уже занят .
: param inAliasStr : String alias for associated def
: return : str Alias string
"""
"""
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
if callable ( inDef ) : inGSettings [ " ProcessorDict " ] [ " AliasDefDict " ] [ inAliasStr ] = inDef
if callable ( inDef ) : inGSettings [ " ProcessorDict " ] [ " AliasDefDict " ] [ inAliasStr ] = inDef
@ -1619,14 +1629,16 @@ def ActivityItemDefAliasUpdate(inDef, inAliasStr, inGSettings = None):
def ProcessorActivityItemCreate ( inDef , inArgList = None , inArgDict = None , inArgGSettingsStr = None , inArgLoggerStr = None , inGUIDStr = None , inThreadBool = False ) :
def ProcessorActivityItemCreate ( inDef , inArgList = None , inArgDict = None , inArgGSettingsStr = None , inArgLoggerStr = None , inGUIDStr = None , inThreadBool = False ) :
"""
"""
Create activity item . Activity item can be used as list item in ProcessorActivityItemAppend or in Processor . ActivityListExecute .
Создать Активность ( ActivityItem ) . Активность можно использовать в ProcessorActivityItemAppend или в Processor . ActivityListExecute или в функциях работы с Агентами .
Deprecated . See ActivityItemCreate
Старая версия . Новую версию см . в ActivityItemCreate
. . code - block : : python
. . code - block : : python
# USAGE
# ПРИМЕР
from pyOpenRPA import Orchestrator
from pyOpenRPA import Orchestrator
# EXAMPLE 1
# ВАРИАНТ 1
def TestDef ( inArg1Str , inGSettings , inLogger ) :
def TestDef ( inArg1Str , inGSettings , inLogger ) :
pass
pass
lActivityItem = Orchestrator . ProcessorActivityItemCreate (
lActivityItem = Orchestrator . ProcessorActivityItemCreate (
@ -1644,7 +1656,7 @@ def ProcessorActivityItemCreate(inDef, inArgList=None, inArgDict=None, inArgGSet
# "ArgLogger": "inLogger"
# "ArgLogger": "inLogger"
# }
# }
# EXAMPLE 2
# ВАРИАНТ 2
def TestDef ( inArg1Str ) :
def TestDef ( inArg1Str ) :
pass
pass
Orchestrator . ProcessorAliasDefUpdate (
Orchestrator . ProcessorAliasDefUpdate (
@ -1666,21 +1678,30 @@ def ProcessorActivityItemCreate(inDef, inArgList=None, inArgDict=None, inArgGSet
# "ArgLogger": None
# "ArgLogger": None
# }
# }
: param inDef : def link or def alias ( look gSettings [ " Processor " ] [ " AliasDefDict " ] )
: param inDef : Функция Python или синоним ( текстовый ключ )
: param inArgList : Args list for the Def
: param inArgList : Список ( list ) неименованных аргументов к функции
: param inArgDict : Args dict for the def
: param inArgDict : Словарь ( dict ) именованных аргументов к функции
: param inArgGSettingsStr : Name of def argument of the GSettings dict
: param inArgGSettingsStr : Текстовое наименование аргумента GSettings ( если требуется передавать )
: param inArgLoggerStr : Name of def argument of the logging object
: param inArgLoggerStr : Текстовое наименование аргумента logger ( если требуется передавать )
: param inGUIDStr : GUID which you can specify . If None the GUID will be generated
: param inGUIDStr : ГУИД идентификатор активности ( ActivityItem ) . Если ГУИД не указан , то он будет сгенерирован автоматически
: param inThreadBool : True - execute ActivityItem in new thread ; False - in processor thread
: param inThreadBool : True - выполнить ActivityItem в новом потоке ; False - выполнить последовательно в общем потоке процессорной очереди
: return : { }
: return :
lActivityItemDict = {
" Def " : inDef , # def link or def alias (look gSettings["Processor"]["AliasDefDict"])
" ArgList " : inArgList , # Args list
" ArgDict " : inArgDict , # Args dictionary
" ArgGSettings " : inArgGSettingsStr , # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
" ArgLogger " : inArgLoggerStr , # Name of GSettings attribute: str (ArgDict) or index (for ArgList)
" GUIDStr " : inGUIDStr ,
" ThreadBool " : inThreadBool
}
"""
"""
return ActivityItemCreate ( inDef = inDef , inArgList = inArgList , inArgDict = inArgDict , inArgGSettingsStr = inArgGSettingsStr , inArgLoggerStr = inArgLoggerStr ,
return ActivityItemCreate ( inDef = inDef , inArgList = inArgList , inArgDict = inArgDict , inArgGSettingsStr = inArgGSettingsStr , inArgLoggerStr = inArgLoggerStr ,
inGUIDStr = inGUIDStr , inThreadBool = inThreadBool )
inGUIDStr = inGUIDStr , inThreadBool = inThreadBool )
def ProcessorActivityItemAppend ( inGSettings = None , inDef = None , inArgList = None , inArgDict = None , inArgGSettingsStr = None , inArgLoggerStr = None , inActivityItemDict = None ) :
def ProcessorActivityItemAppend ( inGSettings = None , inDef = None , inArgList = None , inArgDict = None , inArgGSettingsStr = None , inArgLoggerStr = None , inActivityItemDict = None ) :
"""
"""
Create and add activity item in processor queue .
Добавить активность ( ActivityItem ) в процессорную очередь .
. . code - block : : python
. . code - block : : python
@ -1718,13 +1739,15 @@ def ProcessorActivityItemAppend(inGSettings = None, inDef=None, inArgList=None,
# Activity have been already append in the processor queue
# Activity have been already append in the processor queue
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inGSettings : Глобальный словарь настроек Оркестратора ( синглтон )
: param inDef : def link or def alias ( look gSettings [ " Processor " ] [ " AliasDefDict " ] )
: param inDef : Функция Python или синоним ( текстовый ключ )
: param inArgList : Args list for the Def
: param inArgList : Список ( list ) неименованных аргументов к функции
: param inArgDict : Args dict for the Def
: param inArgDict : Словарь ( dict ) именованных аргументов к функции
: param inArgGSettingsStr : Name of def argument of the GSettings dict
: param inArgGSettingsStr : Текстовое наименование аргумента GSettings ( если требуется передавать )
: param inArgLoggerStr : Name of def argument of the logging object
: param inArgLoggerStr : Текстовое наименование аргумента logger ( если требуется передавать )
: param inActivityItemDict : Fill if you already have ActivityItemDict ( don ' t fill inDef, inArgList, inArgDict, inArgGSettingsStr, inArgLoggerStr)
: param inGUIDStr : ГУИД идентификатор активности ( ActivityItem ) . Если ГУИД не указан , то он будет сгенерирован автоматически
: return ActivityItem GUIDStr
: param inThreadBool : True - выполнить ActivityItem в новом потоке ; False - выполнить последовательно в общем потоке процессорной очереди
: param inActivityItemDict : Альтернативный вариант заполнения , если уже имеется Активность ( ActivityItem ) . В таком случае не требуется заполнять аргументы inDef , inArgList , inArgDict , inArgGSettingsStr , inArgLoggerStr
: return ГУИД активности ( ActivityItem )
"""
"""
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
inGSettings = GSettingsGet ( inGSettings = inGSettings ) # Set the global settings
if inActivityItemDict is None :
if inActivityItemDict is None :