Перевод в процессе

dev-linux
Ivan Maslov 3 years ago
parent 5b6f0fa103
commit e673287735

@ -1086,20 +1086,20 @@ def WebRequestParseBodyJSON(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
:return: Str, Example: /pyOpenRPA/Debugging/DefHelper/...
:param inRequest: Экземпляр HTTP request. Опционален, если сообщение фиксируется из под потока, который был инициирован запросом пользователя
:return: str, пример: /pyOpenRPA/Debugging/DefHelper
"""
if inRequest is None: inRequest = WebRequestGet()
return urllib.parse.unquote(inRequest.path)
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
:return: (FileNameStr, FileBodyBytes) or (None, None)
:param inRequest: Экземпляр HTTP request. Опционален, если сообщение фиксируется из под потока, который был инициирован запросом пользователя
:return: Кортеж формата (FileNameStr, FileBodyBytes) or (None, None), если файл не был обнаружен
"""
if inRequest is None: inRequest = WebRequestGet()
lResultTurple=(None,None)
@ -1123,13 +1123,12 @@ def WebRequestParseFile(inRequest=None):
def WebRequestResponseSend(inResponeStr, inRequest=None, inContentTypeStr: str = None, inHeadersDict: dict = None):
"""
Set response for the request
Установить ответ на HTTP запрос пользователя.
:param inResponeStr: Response string
:param inRequest: inRequest from the server. Optional if call def from request thread
:param inContentTypeStr: Type content-type. Example: "html/text"
:param inHeadersDict: Dict of the headers for the response
:return:
:param inResponeStr: Тело ответа (строка)
:param inRequest: Экземпляр HTTP request. Опционален, если сообщение фиксируется из под потока, который был инициирован запросом пользователя
:param inContentTypeStr: МИМЕ тип. Пример: "html/text"
:param inHeadersDict: Словарь (dict) ключей, которые добавить в headers HTTP ответа на запрос пользователя
"""
if inRequest is None: inRequest = WebRequestGet()
inRequest.OpenRPAResponseDict["Body"] = bytes(inResponeStr, "utf8")
@ -1141,8 +1140,7 @@ def WebRequestResponseSend(inResponeStr, inRequest=None, inContentTypeStr: str =
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()
if hasattr(lCurrentThread, "request"):
@ -1150,10 +1148,10 @@ def WebRequestGet():
def WebUserInfoGet(inRequest=None):
"""
Return User info about request
Информация о пользователе, который отправил HTTP запрос.
:param inRequest: inRequest from the server. Optional if call def from request thread
:return: {"DomainUpperStr": "", "UserNameUpperStr": ""}
:param inRequest: Экземпляр HTTP request. Опционален, если сообщение фиксируется из под потока, который был инициирован запросом пользователя
:return: Сведения в формате {"DomainUpperStr": "PYOPENRPA", "UserNameUpperStr": "IVAN.MASLOV"}
"""
if inRequest is None: inRequest = WebRequestGet()
lDomainUpperStr = inRequest.OpenRPA["Domain"].upper()
@ -1162,11 +1160,11 @@ def WebUserInfoGet(inRequest=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: Глобальный словарь настроек Оркестратора (синглтон)
:return: bool True - is supertoken; False - is not supertoken
:return: True - является супертокеном; False - не является супертокеном
"""
if inRequest is None: inRequest = WebRequestGet()
inGSettings = GSettingsGet(inGSettings=inGSettings) # Set the global settings
@ -1177,10 +1175,10 @@ def WebUserIsSuperToken(inRequest = None, inGSettings = 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
:return: UAC Dict {}
:param inRequest: Экземпляр HTTP request. Опционален, если сообщение фиксируется из под потока, который был инициирован запросом пользователя
:return: UAC словарь доступа или {}, что означает полный доступ
"""
if inRequest is None: inRequest = WebRequestGet()
return inRequest.UserRoleHierarchyGet()
@ -1200,10 +1198,10 @@ if __name__ == "pyOpenRPA.Orchestrator.__Orchestrator__" and "pyOpenRPA.Orchestr
def GSettingsGet(inGSettings=None):
"""
Get the GSettings from the singleton module.
Вернуть глобальный словарь настроек Оркестратора. Во время выполнения программы глобальный словарь настроек существует в единственном экземпляре (синглтон)
:param inGSettings: Глобальный словарь настроек Оркестратора (синглтон)
:return: GSettings
:param inGSettings: Дополнительный словарь настроек, который необходимо добавить в основной глобальный словарь настроек Оркестратора (синглтон)
:return: Глобальный словарь настроек GSettings
"""
global GSettings # identify the global variable
# Merge dictionaries if some new dictionary has come
@ -1213,12 +1211,13 @@ def GSettingsGet(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 inValue:
:param inKeyList:
:return: bool
:param inValue: Значение для установки в глобальный словарь настроек Оркестратора GSettings
:param inKeyList: Список ключей, по адресу которого установить значение в GSettings
"""
inGSettings = GSettingsGet(inGSettings=inGSettings) # Set the global settings
if inKeyList is None: inKeyList = []
@ -1235,11 +1234,11 @@ def GSettingsKeyListValueSet(inValue, inKeyList=None, inGSettings = None):
def GSettingsKeyListValueGet(inKeyList=None, inGSettings = None):
"""
Get the value from the GSettings by the key list
Получить значение из глобального словаря настроек Оркестратора GSettings по списку ключей.
:param inGSettings: Глобальный словарь настроек Оркестратора (синглтон)
:param inKeyList:
:return: value any type
:param inKeyList: Список ключей, по адресу которого получить значение из GSettings
:return: Значение (тип данных определяется форматом хранения в GSettings)
"""
inGSettings = GSettingsGet(inGSettings=inGSettings) # Set the global settings
if inKeyList is None: inKeyList = []
@ -1255,11 +1254,11 @@ def GSettingsKeyListValueGet(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
# USAGE
# ПРИМЕР
from pyOpenRPA import Orchestrator
Orchestrator.GSettingsKeyListValueAppend(
@ -1276,9 +1275,8 @@ def GSettingsKeyListValueAppend(inValue, inKeyList=None, inGSettings = None):
#}
:param inGSettings: Глобальный словарь настроек Оркестратора (синглтон)
:param inValue: Any value to be appended in gSettings Dict by the key list
:param inKeyList: List of the nested keys (see example)
:return: True every time
:param inValue: Значение для установки в глобальный словарь настроек Оркестратора GSettings
:param inKeyList: Список ключей, по адресу которого выполнить добавление в конец списка (list)
"""
inGSettings = GSettingsGet(inGSettings=inGSettings) # Set the global settings
if inKeyList is None: inKeyList = []
@ -1295,11 +1293,11 @@ def GSettingsKeyListValueAppend(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
# USAGE
# ПРИМЕР
from pyOpenRPA import Orchestrator
Orchestrator.GSettingsKeyListValueOperatorPlus(
@ -1319,9 +1317,8 @@ def GSettingsKeyListValueOperatorPlus(inValue, inKeyList=None, inGSettings = Non
#}
:param inGSettings: Глобальный словарь настроек Оркестратора (синглтон)
:param inValue: List with values to be merged with list in gSettings
:param inKeyList: List of the nested keys (see example)
:return: True every time
:param inValue: Значение для установки в глобальный словарь настроек Оркестратора GSettings
:param inKeyList: Список ключей, по адресу которого выполнить добавление в конец списка (list)
"""
inGSettings = GSettingsGet(inGSettings=inGSettings) # Set the global settings
if inKeyList is None: inKeyList = []
@ -1338,19 +1335,19 @@ def GSettingsKeyListValueOperatorPlus(inValue, inKeyList=None, inGSettings = Non
def StorageRobotExists(inRobotNameStr):
"""
Check if robot storage exists
Проверить, существует ли ключ inRobotNameStr в хранилище пользовательской информации StorageDict (GSettings > StarageDict)
:param inRobotNameStr: Robot name (case sensitive)
:return: True - robot storage exist; False - does not exist
:param inRobotNameStr: Наименование (ключ) робота. !ВНИМАНИЕ! Наименование чувствительно к регистру
:return: True - ключ робота присутствует в хранилище; False - отсутствует
"""
return inRobotNameStr in GSettingsGet()["StorageDict"]
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)
:return: Dict
:param inRobotNameStr: Наименование (ключ) робота. !ВНИМАНИЕ! Наименование чувствительно к регистру
:return: Значение или структура, которая расположена по адресу (GSettings > StarageDict > inRobotNameStr)
"""
if inRobotNameStr not in GSettingsGet()["StorageDict"]:
GSettingsGet()["StorageDict"][inRobotNameStr]={}
@ -1358,9 +1355,9 @@ def StorageRobotGet(inRobotNameStr):
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
@ -1375,18 +1372,19 @@ def ProcessorAliasDefCreate(inDef, inAliasStr=None, inGSettings = None):
inAliasStr="TestDefAlias")
# 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 inDef: Def
:param inAliasStr: String alias for associated def
:return: str Alias string (Alias can be regenerated if previous alias was occupied)
:return: Строковый ключ, который был назначен. Ключ может быть изменен, если входящий текстовый ключ был уже занят.
"""
return ActivityItemDefAliasCreate(inDef=inDef, inAliasStr=inAliasStr, inGSettings = inGSettings)
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
@ -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")
:param inGSettings: Глобальный словарь настроек Оркестратора (синглтон)
:param inDef: Def
:param inAliasStr: String alias for associated def
:return: str Alias string
:param inDef: функция Python
:param inAliasStr: Строковый ключ (синоним), который можно будет использовать в Активности (ActivityItem)
:return: Строковый ключ, который был назначен. Ключ будет тем же, если входящий текстовый ключ был уже занят.
"""
return ActivityItemDefAliasUpdate(inDef=inDef, inAliasStr=inAliasStr, inGSettings = inGSettings)
# ActivityItem defs
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:
:return: ["ActivityItemDefAliasUpdate", "ActivityItemDefAliasCreate", etc...]
:param inDefStr: Часть текстового ключ (начало / середина / конец)
:return: Список доступных ключей в формате: ["ActivityItemDefAliasUpdate", "ActivityItemDefAliasCreate", etc...]
"""
lResultList = []
if inDefQueryStr is not None: # do search alg
@ -1428,10 +1426,17 @@ def ActivityItemHelperDefList(inDefQueryStr=None):
def ActivityItemHelperDefAutofill(inDef):
"""
Detect def by the name and prepare the activity item dict with values.
Анализ аргументов функции по синониму (текстовому ключу).
:param inDef:
:return:
:param inDef: Часть текстового ключ (начало / середина / конец)
:return: Преднастроенная структура активности (ActivityItem)
{
"Def": None,
"ArgList": [],
"ArgDict": {},
"ArgGSettingsStr": None,
"ArgLoggerStr": None
}
"""
lResultDict = {
"Def": None,
@ -1460,14 +1465,14 @@ def ActivityItemHelperDefAutofill(inDef):
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
# USAGE
# ПРИМЕР
from pyOpenRPA import Orchestrator
# EXAMPLE 1
# ВАРИАНТ 1
def TestDef(inArg1Str, inGSettings, inLogger):
pass
lActivityItem = Orchestrator.ActivityItemCreate(
@ -1485,7 +1490,7 @@ def ActivityItemCreate(inDef, inArgList=None, inArgDict=None, inArgGSettingsStr=
# "ArgLogger": "inLogger"
# }
# EXAMPLE 2
# ВАРИАНТ 2
def TestDef(inArg1Str):
pass
Orchestrator.ActivityItemDefAliasUpdate(
@ -1507,14 +1512,23 @@ def ActivityItemCreate(inDef, inArgList=None, inArgDict=None, inArgGSettingsStr=
# "ArgLogger": None
# }
:param inDef: def link or def alias (look gSettings["Processor"]["AliasDefDict"])
:param inArgList: Args list for the Def
:param inArgDict: Args dict for the def
:param inArgGSettingsStr: Name of def argument of the GSettings dict
:param inArgLoggerStr: Name of def argument of the logging object
:param inGUIDStr: GUID which you can specify. If None the GUID will be generated
:param inThreadBool: True - execute ActivityItem in new thread; False - in processor thread
:return: {}
:param inDef: Функция Python или синоним (текстовый ключ)
:param inArgList: Список (list) неименованных аргументов к функции
:param inArgDict: Словарь (dict) именованных аргументов к функции
:param inArgGSettingsStr: Текстовое наименование аргумента GSettings (если требуется передавать)
:param inArgLoggerStr: Текстовое наименование аргумента logger (если требуется передавать)
:param inGUIDStr: ГУИД идентификатор активности (ActivityItem). Если ГУИД не указан, то он будет сгенерирован автоматически
:param inThreadBool: True - выполнить ActivityItem в новом потоке; False - выполнить последовательно в общем потоке процессорной очереди
: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
if inGUIDStr is None:
@ -1535,12 +1549,11 @@ def ActivityItemCreate(inDef, inArgList=None, inArgDict=None, inArgGSettingsStr=
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
# USAGE
# ПРИМЕР
from pyOpenRPA import Orchestrator
def TestDef():
@ -1551,10 +1564,10 @@ def ActivityItemDefAliasCreate(inDef, inAliasStr=None, inGSettings = None):
inAliasStr="TestDefAlias")
# 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 inDef: Def
:param inAliasStr: String alias for associated def
:return: str Alias string (Alias can be regenerated if previous alias was occupied)
:return: Строковый ключ, который был назначен. Ключ может быть изменен, если входящий текстовый ключ был уже занят.
"""
#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
@ -1569,9 +1582,7 @@ def ActivityItemDefAliasCreate(inDef, inAliasStr=None, inGSettings = None):
def ActivityItemDefAliasModulesLoad():
"""
Load all def from sys.modules... in ActivityItem def alias dict
:return: None
Загрузить все функции из импортированных модулей sys.modules в ActivityItem синонимы - полезно для отладки со стороны панели управления.
"""
lL = OrchestratorLoggerGet()
lL.info(f"ActivityItem aliases: start to load sys.modules")
@ -1589,9 +1600,8 @@ def ActivityItemDefAliasModulesLoad():
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
# USAGE
@ -1605,10 +1615,10 @@ def ActivityItemDefAliasUpdate(inDef, inAliasStr, inGSettings = None):
inAliasStr="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 inDef: Def
:param inAliasStr: String alias for associated def
:return: str Alias string
:return: Строковый ключ, который был назначен. Ключ будет тем же, если входящий текстовый ключ был уже занят.
"""
inGSettings = GSettingsGet(inGSettings=inGSettings) # Set the global settings
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):
"""
Create activity item. Activity item can be used as list item in ProcessorActivityItemAppend or in Processor.ActivityListExecute.
Deprecated. See ActivityItemCreate
Создать Активность (ActivityItem). Активность можно использовать в ProcessorActivityItemAppend или в Processor.ActivityListExecute или в функциях работы с Агентами.
Старая версия. Новую версию см. в ActivityItemCreate
.. code-block:: python
# USAGE
# ПРИМЕР
from pyOpenRPA import Orchestrator
# EXAMPLE 1
# ВАРИАНТ 1
def TestDef(inArg1Str, inGSettings, inLogger):
pass
lActivityItem = Orchestrator.ProcessorActivityItemCreate(
@ -1644,7 +1656,7 @@ def ProcessorActivityItemCreate(inDef, inArgList=None, inArgDict=None, inArgGSet
# "ArgLogger": "inLogger"
# }
# EXAMPLE 2
# ВАРИАНТ 2
def TestDef(inArg1Str):
pass
Orchestrator.ProcessorAliasDefUpdate(
@ -1666,22 +1678,31 @@ def ProcessorActivityItemCreate(inDef, inArgList=None, inArgDict=None, inArgGSet
# "ArgLogger": None
# }
:param inDef: def link or def alias (look gSettings["Processor"]["AliasDefDict"])
:param inArgList: Args list for the Def
:param inArgDict: Args dict for the def
:param inArgGSettingsStr: Name of def argument of the GSettings dict
:param inArgLoggerStr: Name of def argument of the logging object
:param inGUIDStr: GUID which you can specify. If None the GUID will be generated
:param inThreadBool: True - execute ActivityItem in new thread; False - in processor thread
:return: {}
:param inDef: Функция Python или синоним (текстовый ключ)
:param inArgList: Список (list) неименованных аргументов к функции
:param inArgDict: Словарь (dict) именованных аргументов к функции
:param inArgGSettingsStr: Текстовое наименование аргумента GSettings (если требуется передавать)
:param inArgLoggerStr: Текстовое наименование аргумента logger (если требуется передавать)
:param inGUIDStr: ГУИД идентификатор активности (ActivityItem). Если ГУИД не указан, то он будет сгенерирован автоматически
:param inThreadBool: True - выполнить ActivityItem в новом потоке; False - выполнить последовательно в общем потоке процессорной очереди
: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,
inGUIDStr=inGUIDStr, inThreadBool=inThreadBool)
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
# USAGE
@ -1718,13 +1739,15 @@ def ProcessorActivityItemAppend(inGSettings = None, inDef=None, inArgList=None,
# Activity have been already append in the processor queue
:param inGSettings: Глобальный словарь настроек Оркестратора (синглтон)
:param inDef: def link or def alias (look gSettings["Processor"]["AliasDefDict"])
:param inArgList: Args list for the Def
:param inArgDict: Args dict for the Def
:param inArgGSettingsStr: Name of def argument of the GSettings dict
:param inArgLoggerStr: Name of def argument of the logging object
:param inActivityItemDict: Fill if you already have ActivityItemDict (don't fill inDef, inArgList, inArgDict, inArgGSettingsStr, inArgLoggerStr)
:return ActivityItem GUIDStr
:param inDef: Функция Python или синоним (текстовый ключ)
:param inArgList: Список (list) неименованных аргументов к функции
:param inArgDict: Словарь (dict) именованных аргументов к функции
:param inArgGSettingsStr: Текстовое наименование аргумента GSettings (если требуется передавать)
:param inArgLoggerStr: Текстовое наименование аргумента logger (если требуется передавать)
:param inGUIDStr: ГУИД идентификатор активности (ActivityItem). Если ГУИД не указан, то он будет сгенерирован автоматически
:param inThreadBool: True - выполнить ActivityItem в новом потоке; False - выполнить последовательно в общем потоке процессорной очереди
:param inActivityItemDict: Альтернативный вариант заполнения, если уже имеется Активность (ActivityItem). В таком случае не требуется заполнять аргументы inDef, inArgList, inArgDict, inArgGSettingsStr, inArgLoggerStr
:return ГУИД активности (ActivityItem)
"""
inGSettings = GSettingsGet(inGSettings=inGSettings) # Set the global settings
if inActivityItemDict is None:

Loading…
Cancel
Save