Artifacts

Начиная с Julia 1.6, поддержка артефактов была перенесена из Pkg.jl в саму Julia. Пока здесь не будет добавлена надлежащая документация, вы можете узнать больше об артефактах в руководстве Pkg.jl по адресу https://julialang.github.io/Pkg.jl/v1/artifacts/.

Julia 1.6

API артефактов Julia требует как минимум Julia 1.6. В версиях Julia с 1.3 по 1.5 вы можете использовать Pkg.Artifacts вместо этого.

Artifacts.artifact_meta — Function
artifact_meta(name::String, artifacts_toml::String;
              platform::AbstractPlatform = HostPlatform(),
              pkg_uuid::Union{Base.UUID,Nothing}=nothing)

Получите метаданные о данном артефакте (идентифицируемом по имени), хранящемся в данном файле (Julia)Artifacts.toml. Если артефакт специфичен для платформы, используйте platform, чтобы выбрать наиболее подходящее соответствие. Если ничего не найдено, верните nothing.

Julia 1.3

Эта функция требует как минимум Julia 1.3.

source
Artifacts.artifact_hash — Function
artifact_hash(name::String, artifacts_toml::String;
              platform::AbstractPlatform = HostPlatform())

Тонкая обертка вокруг artifact_meta(), чтобы вернуть хэш указанного артефакта, сгруппированного по платформе. Возвращает nothing, если не удается найти соответствие.

Julia 1.3

Эта функция требует как минимум Julia 1.3.

source
Artifacts.find_artifacts_toml — Function
find_artifacts_toml(path::String)

Данная функция принимает путь к файлу .jl (например, тот, который возвращается __source__.file в контексте макроса) и находит (Julia)Artifacts.toml, который содержится в родительском проекте (если он существует), в противном случае возвращает nothing.

Julia 1.3

Эта функция требует как минимум Julia 1.3.

source
Artifacts.@artifact_str — Macro
macro 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.3.

Julia 1.6

Индексация с помощью косой черты требует как минимум Julia 1.6.

source
Artifacts.artifact_exists — Function
artifact_exists(hash::SHA1; honor_overrides::Bool=true)

Возвращает, существует ли данный артефакт (идентифицируемый его sha1 git tree hash) на диске. Обратите внимание, что возможно, что данный артефакт существует в нескольких местах (например, в нескольких депо).

Julia 1.3

Эта функция требует как минимум Julia 1.3.

source
Artifacts.artifact_path — Function
artifact_path(hash::SHA1; honor_overrides::Bool=true)

Данная функция возвращает путь установки артефакта (идентифицированного по SHA1 хешу дерева git). Если артефакт не существует, возвращает местоположение, куда он будет установлен.

Julia 1.3

Эта функция требует как минимум Julia 1.3.

source
Artifacts.select_downloadable_artifacts — Function
select_downloadable_artifacts(artifacts_toml::String;
                              platform = HostPlatform,
                              include_lazy = false,
                              pkg_uuid = nothing)

Возвращает словарь, где каждая запись является артефактом из данного Artifacts.toml, который должен быть загружен для запрашиваемой платформы. Ленивая артефакты включаются, если include_lazy установлено.

source