AnyMath 文档

精灵的公共软件管理方法

使用Genie框架创建简单应用程序的示例也在 社区AnyMath

这里介绍了所有公共的项目管理方法。 精灵 使用框架 精灵。 要在Genie应用程序中使用它们,请使用以下命令连接 AnyMath 工具库 使用AnyMath 在你的代码(应用程序。jl)。

方法 精灵

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")