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_metaFunction
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_hashFunction
artifact_hash(name::String, artifacts_toml::String;
              platform::AbstractPlatform = HostPlatform())

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

Julia 1.3

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

source
Artifacts.find_artifacts_tomlFunction
find_artifacts_toml(path::String)

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

Julia 1.3

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

source
Artifacts.@artifact_strMacro
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_existsFunction
artifact_exists(hash::SHA1; honor_overrides::Bool=true)

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

Julia 1.3

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

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

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

Julia 1.3

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

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

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

source