Engee documentation

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(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(app_path::String)

Останавливает запущенное приложение Genie.

Аргументы

app_path::String: путь до директории приложения. Может быть относительным или абсолютным.

Примеры

# Остановка приложения по абсолютному пути
engee.genie.stop("/user/app.jl")

# Остановка приложения по относительному пути
engee.genie.stop("app.jl")

engee.genie.list()

Выводит список всех запущенных приложений Genie.

Примеры

engee.genie.list()
engee.genie.eval(code::AbstractString)

Выполняет указанный код в рабочем пространстве Engee вне контекста запущенного приложения Genie. Используется для запуска отдельных выражений, отладки или динамического выполнения кода без необходимости перезапуска приложения.

Аргументы

code::AbstractString: строка с кодом на Julia, который будет выполнен в рабочем пространстве Engee.

Примеры

engee.genie.eval("x = 5")
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(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")