Artifacts
Начиная с Julia 1.6, поддержка артефактов была перенесена из Pkg.jl
в саму Julia. Пока здесь не будет добавлена надлежащая документация, вы можете узнать больше об артефактах в руководстве Pkg.jl
по адресу https://julialang.github.io/Pkg.jl/v1/artifacts/.
API артефактов Julia требует как минимум Julia 1.6. В версиях Julia с 1.3 по 1.5 вы можете использовать Pkg.Artifacts
вместо этого.
Artifacts.artifact_meta
— Functionartifact_meta(name::String, artifacts_toml::String;
platform::AbstractPlatform = HostPlatform(),
pkg_uuid::Union{Base.UUID,Nothing}=nothing)
Получите метаданные о данном артефакте (идентифицируемом по имени), хранящемся в данном файле (Julia)Artifacts.toml
. Если артефакт специфичен для платформы, используйте platform
, чтобы выбрать наиболее подходящее соответствие. Если ничего не найдено, верните nothing
.
Эта функция требует как минимум Julia 1.3.
Artifacts.artifact_hash
— Functionartifact_hash(name::String, artifacts_toml::String;
platform::AbstractPlatform = HostPlatform())
Тонкая обертка вокруг artifact_meta()
, чтобы вернуть хэш указанного артефакта, сгруппированного по платформе. Возвращает nothing
, если не удается найти соответствие.
Эта функция требует как минимум Julia 1.3.
Artifacts.find_artifacts_toml
— Functionfind_artifacts_toml(path::String)
Данная функция принимает путь к файлу .jl
(например, тот, который возвращается __source__.file
в контексте макроса) и находит (Julia)Artifacts.toml
, который содержится в родительском проекте (если он существует), в противном случае возвращает nothing
.
Эта функция требует как минимум Julia 1.3.
Artifacts.@artifact_str
— Macromacro artifact_str(name)
Возвращает путь на диске к артефакту. Автоматически ищет артефакт по имени в файле (Julia)Artifacts.toml
проекта. Вызывает ошибку, если запрашиваемый артефакт отсутствует. Если запущен в REPL, ищет файл toml, начиная с текущего каталога, см. find_artifacts_toml()
для получения дополнительной информации.
Если артефакт помечен как "ленивый" и пакет имеет определение using LazyArtifacts
, артефакт будет загружен по запросу с помощью Pkg
в первый раз, когда этот макрос попытается вычислить путь. Файлы будут оставлены установленными локально для последующего использования.
Если name
содержит прямую или обратную косую черту, все элементы после первой косой черты будут рассматриваться как имена путей, индексирующие артефакт, что позволяет легко получить доступ к одному файлу/каталогу внутри артефакта. Пример:
ffmpeg_path = @artifact"FFMPEG/bin/ffmpeg"
Этот макрос требует как минимум Julia 1.3.
Индексация с помощью косой черты требует как минимум Julia 1.6.
Artifacts.artifact_exists
— Functionartifact_exists(hash::SHA1; honor_overrides::Bool=true)
Возвращает, существует ли данный артефакт (идентифицируемый его sha1 git tree hash) на диске. Обратите внимание, что возможно, что данный артефакт существует в нескольких местах (например, в нескольких депо).
Эта функция требует как минимум Julia 1.3.
Artifacts.artifact_path
— Functionartifact_path(hash::SHA1; honor_overrides::Bool=true)
Данная функция возвращает путь установки артефакта (идентифицированного по SHA1 хешу дерева git). Если артефакт не существует, возвращает местоположение, куда он будет установлен.
Эта функция требует как минимум Julia 1.3.
Artifacts.select_downloadable_artifacts
— Functionselect_downloadable_artifacts(artifacts_toml::String;
platform = HostPlatform,
include_lazy = false,
pkg_uuid = nothing)
Возвращает словарь, где каждая запись является артефактом из данного Artifacts.toml
, который должен быть загружен для запрашиваемой платформы. Ленивая артефакты включаются, если include_lazy
установлено.