Genie’s Public Software Management Methods
| An example of creating a simple application using the Genie framework is also presented in Community Engee. |
All public methods of program management are presented here. genie to work with the framework Genie. To use them in Genie applications, connect the Engee tool library using the command using Engee inside your code (app.jl).
Methods genie
#
engee.genie.start — Function
engee.genie.start(app_path::String; devel::Bool=false, log_file::String="", open_url::Bool=false)
Запускает приложение Genie по указанному пути.
После запуска функция возвращает GenieApplicationStatus, в котором доступна ссылка на приложение (также выводится в консоль в виде ... at 'https://.../genie/<AppName>/'). Ссылку можно открыть в новой вкладке/окне или скопировать для открытия вручную.
Перед использованием команды engee.genie.start убедитесь, что если приложение представляет собой директорию, то в ней есть файл с кодом приложения и расширением .jl. Также удалите файлы config и *.toml (если они присутствуют).
Аргументы
-
app_path::String: путь до директории приложения. Может быть относительным или абсолютным. -
devel::Bool=false: параметр для включения режима разработки, при котором изменения в коде применяются без перезапуска приложения. -
log_file::String="": параметр для указания пути к файлу логов. Если не задан, то логи не сохраняются отдельно. -
open_url::Bool=false: еслиtrue, то Engee автоматически откроет URL приложения в браузере (ссылка также доступна в возвращаемом статусе).
Примеры
# Запуск Genie через файл приложения app.jl, без режима разработки и сохранения логов
engee.genie.start("/user/app.jl")
# Запуск Genie через файл приложения app.jl, с режимом разработки и сохранением логов
engee.genie.start("/user/app.jl", devel=true, log_file="/user/logs.txt")
# Запуск и автоматическое открытие приложения в браузере
engee.genie.start("RadarCalculate", open_url=true)
#
engee.genie.stop — Function
engee.genie.stop(app_path::String)
Останавливает запущенное приложение Genie.
Аргументы
app_path::String: путь до директории приложения. Может быть относительным или абсолютным.
Примеры
# Остановка приложения по абсолютному пути
engee.genie.stop("/user/app.jl")
# Остановка приложения по относительному пути
engee.genie.stop("app.jl")
#
engee.genie.list — Function
engee.genie.list()
Выводит список всех запущенных приложений Genie.
Примеры
engee.genie.list()
#
engee.genie.eval — Function
engee.genie.eval(code::AbstractString)
Выполняет указанный код в рабочем пространстве Engee вне контекста запущенного приложения Genie. Используется для запуска отдельных выражений, отладки или динамического выполнения кода без необходимости перезапуска приложения.
Аргументы
code::AbstractString: строка с кодом на Julia, который будет выполнен в рабочем пространстве Engee.
Примеры
engee.genie.eval("x = 5")
#
engee.genie.recv — Function
engee.genie.recv(wsVarName::AbstractString; context::Module=GenieAPI )
Возвращает значение переменной из указанного контекста (модуля) в рабочем пространстве Engee во время выполнения приложения Genie.
По умолчанию переменная ищется в модуле GenieAPI, но при необходимости можно явно указать другой модуль через параметр context. Так, если переменная определена в другом модуле, то используется параметр context, указывающий, в каком пространстве имен ее искать.
Аргументы
-
wsVarName::AbstractString: имя переменной, значение которой нужно получить. -
context::Module=GenieAPI: модуль, в котором производится поиск переменной. Указывается явно, если переменная не принадлежит модулюGenieAPI.
Примеры
# Получение значения переменной x из модуля Main
engee.genie.recv("x", Main)
# Получение значения переменной a из модуля по умолчанию
engee.genie.recv("a")
# Получение значения переменной value из пользовательского модуля
engee.genie.recv("value"; context=MyModule)
#
engee.genie.send — Function
engee.genie.send(wsVarName::AbstractString, value::Any)
Сохраняет значение value в переменную wsVarName в рабочем пространстве Engee во время выполнения приложения на Genie.
Если переменная с таким именем ранее не существовала, то она будет создана автоматически. Функция удобна для передачи промежуточных результатов или пользовательских данных из приложения Genie в сессию Engee.
Аргументы
-
wsVarName::AbstractString: имя переменной, которой присваивается значение. -
value::Any: значение, которое будет сохранено в переменной. Может быть любого типа.
Примеры
# Присвоение переменной x значение 124
engee.genie.send("x", 124)
# Сохранение строки в переменной message
engee.genie.send("message", "Hello")