Spec-Zone.ru › Julia 1.7

Интерактивные утилиты

Этот модуль предназначен для интерактивной работы. Он загружается автоматически в интерактивном режиме.

Base.Docs.aproposФункция

apropos([io::IO=stdout], pattern::Union{AbstractString,Regex})

Поиск доступных строк документации для записей, содержащих pattern.

Если pattern является строкой, регистр игнорируется. Результаты выводятся в io.

исходный код

InteractiveUtils.varinfoФункция

varinfo(m::Module=Main, pattern::Regex=r""; all::Bool = false, imported::Bool = false, sortby::Symbol = :name)

Возвращает таблицу Markdown, предоставляющую информацию об экспортированных глобальных переменных в модуле, необязательно ограниченную теми, которые соответствуют pattern.

Оценки потребления памяти являются приблизительным нижним пределом размера внутренней структуры объекта.

  • all : также отображает неэкспортированные объекты, определённые в модуле, устаревшие объекты и объекты, сгенерированные компилятором.
  • imported : также отображает объекты, явно импортированные из других модулей.
  • recursive : рекурсивно включает объекты в подмодулях, соблюдая те же настройки в каждом из них.
  • sortby : столбец, по которому сортируются результаты. Доступные варианты: :name (по умолчанию), :size и :summary.
исходный код

InteractiveUtils.versioninfoФункция

versioninfo(io::IO=stdout; verbose::Bool=false)

Выводит информацию о версии используемой Julia. Вывод контролируется булевыми ключевыми аргументами:

  • verbose: вывести всю дополнительную информацию

См. также: VERSION.

исходный код

InteractiveUtils.methodswithФункция

methodswith(typ[, module or function]; supertypes::Bool=false])

Возвращает массив методов с аргументом типа typ.

Необязательный второй аргумент ограничивает поиск определённым модулем или функцией (по умолчанию — все модули верхнего уровня).

Если ключевой аргумент supertypes равен true, также возвращает аргументы с родительским типом typ, исключая тип Any.

исходный код

InteractiveUtils.subtypesФункция

subtypes(T::DataType)

Возвращает список непосредственных подтипов типа данных T. Обратите внимание, что включаются все загруженные подтипы, включая те, которые не видны в текущем модуле.

См. также supertype, supertypes, methodswith.

Примеры

julia> subtypes(Integer)
3-element Vector{Any}:
 Bool
 Signed
 Unsigned
исходный код

InteractiveUtils.supertypesФункция

supertypes(T::Type)

Возвращает кортеж (T, ..., Any) типа T и всех его родительских типов, как определено последовательными вызовами функции supertype, перечисленных в порядке <: и завершённых Any.

См. также subtypes.

Примеры

julia> supertypes(Int)
(Int64, Signed, Integer, Real, Number, Any)
исходный код

InteractiveUtils.editМетод

edit(path::AbstractString, line::Integer=0)

Редактирование файла или каталога, необязательно указав номер строки для редактирования файла. Возврат к подсказке julia при выходе из редактора. Редактор можно изменить, задав JULIA_EDITOR, VISUAL или EDITOR как переменную среды.

См. также define_editor.

исходный код

InteractiveUtils.editМетод

edit(function, [types])
edit(module)

Редактирование определения функции, необязательно указав кортеж типов, чтобы указать, какой метод редактировать. Для модулей открывается основной файл исходного кода. Модуль необходимо загрузить с помощью using или import предварительно.

edit для модулей требует как минимум Julia 1.1.

Чтобы убедиться, что файл можно открыть на заданной строке, возможно, потребуется вызвать define_editor предварительно.

исходный код

InteractiveUtils.@editМакрос

@edit

Вычисляет аргументы вызова функции или макроса, определяет их типы и вызывает функцию edit для полученного выражения.

См. также: @less, @which.

исходный код

InteractiveUtils.define_editorФункция

define_editor(fn, pattern; wait=false)

Определить новый редактор, соответствующий pattern, который можно использовать для открытия файла (возможно, на заданном номере строки) с помощью fn.

Аргумент fn — функция, определяющая, как открыть файл с помощью данного редактора. Она должна принимать три аргумента, как указано ниже:

  • cmd - базовый объект команды для редактора
  • path - путь к открываемому файлу
  • line - номер строки, на которой редактор должен открыться

Редакторы, которые не могут открыть конкретную строку с помощью команды, могут проигнорировать аргумент line.

Обработчик fn должен вернуть либо соответствующий объект Cmd для открытия файла, либо nothing для указания того, что редактирование этого файла невозможно. Используйте nothing для указания того, что этот редактор не подходит для текущей среды, и следует попытаться использовать другой редактор. Можно добавить более общие крючки для редактирования, которые не требуют запуска внешних команд, поместив обработчик непосредственно в вектор EDITOR_CALLBACKS.

Аргумент pattern — строка, регулярное выражение или массив строк и регулярных выражений. Для того чтобы вызвать fn, один из шаблонов должен соответствовать значению EDITOR, VISUAL или JULIA_EDITOR.

Для строк строка должна быть равна значению basename первого слова команды редактора, с удалением расширения, если оно есть. Например, "vi" не соответствует "vim -g", но соответствует "/usr/bin/vi -m"; также соответствует vi.exe.

Если pattern является регулярным выражением, оно сопоставляется со всей командой редактора как экранированная строка оболочки.

Шаблон массива соответствует, если соответствует любой из его элементов.

Если совпадают несколько редакторов, используется тот, который был добавлен последним.

По умолчанию julia не ждет закрытия редактора, запускает его в фоновом режиме.

Однако, если редактор основан на терминале, вы, вероятно, захотите установить wait=true и julia будет ожидать закрытия редактора, прежде чем возобновить работу.

Если одна из переменных среды редактора установлена, но ни одна запись редактора ей не соответствует, вызывается запись редактора по умолчанию:

(cmd, path, line) -> `$cmd $path`

Обратите внимание, что многие редакторы уже определены. Все следующие команды должны уже работать:

  • emacs
  • emacsclient
  • vim
  • nvim
  • nano
  • micro
  • kak
  • textmate
  • mate
  • kate
  • subl
  • atom
  • notepad++
  • Visual Studio Code
  • open
  • pycharm
  • bbedit

Пример:

Следующее определяет использование терминального emacs:

define_editor(
    r"\bemacs\b.*\s(-nw|--no-window-system)\b", wait=true) do cmd, path, line
    `$cmd +$line $path`
end

define_editor была введена в Julia 1.4.

исходный код

InteractiveUtils.lessМетод

less(file::AbstractString, [line::Integer])

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

исходный код

InteractiveUtils.lessМетод

less(function, [types])

Отображение определения функции с помощью стандартного просмотрщика, необязательно указав кортеж типов для указания, какой метод отобразить.

исходный код

InteractiveUtils.@lessМакрос

@less

Оценивает аргументы вызова функции или макроса, определяет их типы и вызывает функцию less на полученном выражении.

См. также: @edit, @which, @code_lowered.

исходный код

InteractiveUtils.@whichМакрос

@which

Применяется к вызову функции или макроса, оценивает аргументы указанного вызова и возвращает объект Method для метода, который был бы вызван для этих аргументов. Применяется к переменной, возвращает модуль, в котором переменная была связана. Вызывает функцию which.

См. также: @less, @edit.

исходный код

InteractiveUtils.@functionlocМакрос

@functionloc

Применяется к вызову функции или макроса, оценивает аргументы указанного вызова и возвращает кортеж (filename,line), содержащий расположение метода, который был бы вызван для этих аргументов. Вызывает функцию functionloc.

исходный код

InteractiveUtils.@code_loweredМакрос

@code_lowered

Оценивает аргументы вызова функции или макроса, определяет их типы и вызывает code_lowered над полученным выражением.

исходный код

InteractiveUtils.@code_typedМакрос

@code_typed

Оценивает аргументы вызова функции или макроса, определяет их типы и вызывает code_typed над полученным выражением. Используйте необязательный аргумент optimize с

@code_typed optimize=true foo(x)

для управления дополнительными оптимизациями, такими как встраивание.

исходный код

InteractiveUtils.code_warntypeФункция

code_warntype([io::IO], f, types; debuginfo=:default)

Выводит пониженные и типизированные AST для методов, соответствующих данной обобщенной функции и подписи типа в io, по умолчанию в stdout. AST анотированы таким образом, чтобы выделять типы «не-листьев» (если доступен цвет, отображаются красным). Это служит предупреждением о потенциальной нестабильности типов. Не все типы «не-листьев» являются особенно проблематичными для производительности, поэтому результаты следует использовать с осторожностью. В частности, объединения, содержащие либо missing, либо nothing, отображаются желтым цветом, так как это часто является преднамеренным.

Необязательный ключевой аргумент debuginfo может быть :source или :none (по умолчанию) для указания подробности комментариев к коду.

См. @code_warntype для получения дополнительной информации.

исходный код

InteractiveUtils.@code_warntypeМакрос

@code_warntype

Оценивает аргументы вызова функции или макроса, определяет их типы и вызывает code_warntype над полученным выражением.

исходный код

InteractiveUtils.code_llvmФункция

code_llvm([io=stdout,], f, types; raw=false, dump_module=false, optimize=true, debuginfo=:default)

Выводит сгенерированные LLVM-биткоды для выполнения метода, соответствующего данной обобщенной функции и подписи типа, в io.

Если необязательный ключевой аргумент optimize не указан, код будет показан до оптимизаций LLVM. Из выводимых биткодов удаляются вся метаданные и вызовы dbg.*. Для полного IR установите ключевой аргумент raw в значение true. Для вывода всего модуля, содержащего функцию (с объявлениями), установите ключевой аргумент dump_module в значение true. Ключевой аргумент debuginfo может быть source (по умолчанию) или none, для указания подробности комментариев к коду.

исходный код

InteractiveUtils.@code_llvmМакрос

@code_llvm

Оценивает аргументы вызова функции или макроса, определяет их типы и вызывает code_llvm над полученным выражением. Установите необязательные ключевые аргументы raw, dump_module, debuginfo, optimize перед вызовом функции, например:

@code_llvm raw=true dump_module=true debuginfo=:default f(x)
@code_llvm optimize=false f(x)

optimize управляет дополнительными оптимизациями, такими как встраивание. raw отображает все метаданные и вызовы dbg.*. debuginfo может быть :source (по умолчанию) или :none, для указания подробности комментариев к коду. dump_module выводит весь модуль, содержащий функцию.

исходный код

InteractiveUtils.code_nativeФункция

code_native([io=stdout,], f, types; syntax=:att, debuginfo=:default, binary=false)

Выводит инструкции машинного кода, сгенерированные для выполнения метода, соответствующего данной обобщенной функции и подписи типа, в io.

Переключить синтаксис ассемблера с помощью символа syntax , установленного в :att для синтаксиса AT&T или :intel для синтаксиса Intel. Ключевой аргумент debuginfo может быть source (по умолчанию) или none, чтобы указать подробность комментариев к коду. Если binary равно true, то также выводятся бинарные машинные коды для каждой инструкции, предваряемые сокращенным адресом.

исходный код

InteractiveUtils.@code_nativeМакрос

@code_native

Оценивает аргументы вызова функции или макроса, определяет их типы и вызывает code_native над полученным выражением.

Установите необязательный ключевой аргумент debuginfo перед вызовом функции, например:

@code_native debuginfo=:default f(x)

debuginfo может быть :source (по умолчанию) или :none, для указания подробности комментариев к коду.

исходный код

InteractiveUtils.clipboardФункция

clipboard(x)

Отправить печатную форму x в буфер обмена операционной системы («копировать»).

исходный код
clipboard() -> AbstractString

Возвращает строку с содержимым буфера обмена операционной системы («вставить»).

исходный код

© 2009–2021 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.7.0/stdlib/InteractiveUtils/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API