Публичные методы программного управления Genie
| Пример создания простого приложения с помощью фреймворка Genie также представлен в Сообществе Engee. |
Здесь представлены все публичные методы программного управления genie для работы с фреймворком Genie. Для их использования в приложениях Genie, подключите библиотеку инструментов Engee с помощью команды using Engee внутри вашего кода (app.jl).
Методы genie
#
engee.genie.eval — Method
engee.genie.eval(code::AbstractString)
Выполняет указанный код в рабочем пространстве Engee вне контекста запущенного приложения Genie. Используется для запуска отдельных выражений, отладки или динамического выполнения кода без необходимости перезапуска приложения.
Аргументы
code::AbstractString: строка с кодом на Julia, который будет выполнен в рабочем пространстве Engee.
Примеры
engee.genie.eval("x = 5")
#
engee.genie.include — Method
include([mapexpr::Function,] path::AbstractString)
Evaluate the contents of the input source file in the global scope of the containing module. Every Module (except those defined with baremodule) has a private 1-argument definition of include, which evaluates the file in that module, for use inside that module. Returns the result of the last evaluated expression of the input file. During including, a task-local include path is set to the directory containing the file. Nested calls to include will search relative to that path. This function is typically used to load source interactively, or to combine files in packages that are broken into multiple source files. The argument path is normalized using normpath which will resolve relative path tokens such as .. and convert / to the appropriate path separator.
The optional first argument mapexpr can be used to transform the included code before it is evaluated: for each parsed expression expr in path, the include function actually evaluates mapexpr(expr). If it is omitted, mapexpr defaults to identity.
Use Base.include to evaluate a file into another module.
|
Julia’s syntax lowering recognizes an explicit call to a literal |
|
Совместимость: Julia 1.5
Julia 1.5 is required for passing the |
#
engee.genie.list — Method
engee.genie.list()
Выводит список всех запущенных приложений Genie.
Примеры
engee.genie.list()
#
engee.genie.recv — Method
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 — Method
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")
#
engee.genie.start — Method
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 — Method
engee.genie.stop(app_path::String)
Останавливает запущенное приложение Genie.
Аргументы
app_path::String: путь до директории приложения. Может быть относительным или абсолютным.
Примеры
# Остановка приложения по абсолютному пути
engee.genie.stop("/user/app.jl")
# Остановка приложения по относительному пути
engee.genie.stop("app.jl")