homebrew-core/Formula/dvc.rb

59 lines
2.2 KiB
Ruby

class Dvc < Formula
include Language::Python::Virtualenv
desc "Git for data science projects"
homepage "https://dvc.org"
url "https://github.com/iterative/dvc/archive/1.1.7.tar.gz"
sha256 "d38ae17fb75f8b7be62d6f67899638bdde5a17163871fba82e94e2b4ce3f4f78"
bottle do
cellar :any
sha256 "49c2319658e931d5e95e5977c33987969755e28a1c620e85bc3c6cb3542c0032" => :catalina
sha256 "6d8daeebe1d116ddadae7fb7a8f536138015290555b048eb999a25e8f30b315a" => :mojave
sha256 "eee6ea1f44d46642ddb7068b9cfce0abc1be745f3db5790a4a8fd0946e48352e" => :high_sierra
end
depends_on "pkg-config" => :build
depends_on "apache-arrow"
depends_on "openssl@1.1"
depends_on "python@3.8"
def install
venv = virtualenv_create(libexec, Formula["python@3.8"].opt_bin/"python3")
system libexec/"bin/pip", "install",
"--no-binary", ":all:",
# NOTE: we will uninstall Pillow anyway, so there is no need to build it
# from source.
"--only-binary", "Pillow",
"--ignore-installed",
# NOTE: pyarrow is already installed as a part of apache-arrow package,
# so we don't need to specify `hdfs` option.
".[gs,s3,azure,oss,ssh,gdrive]"
# NOTE: dvc depends on asciimatics, which depends on Pillow, which
# uses liblcms2.2.dylib that causes troubles on mojave. See [1]
# and [2] for more info. As a workaround, we need to simply
# uninstall Pillow.
#
# [1] https://github.com/peterbrittain/asciimatics/issues/95
# [2] https://github.com/iterative/homebrew-dvc/issues/9
system libexec/"bin/pip", "uninstall", "-y", "Pillow"
system libexec/"bin/pip", "uninstall", "-y", "dvc"
# NOTE: dvc uses this file [1] to know which package it was installed from,
# so that it is able to provide appropriate instructions for updates.
# [1] https://github.com/iterative/dvc/blob/0.68.1/dvc/utils/pkg.py
File.open("dvc/utils/build.py", "w+") { |file| file.write("PKG = \"brew\"") }
venv.pip_install_and_link buildpath
(bash_completion/"dvc").write `#{bin}/dvc completion -s bash`
(zsh_completion/"_dvc").write `#{bin}/dvc completion -s zsh`
end
test do
system "#{bin}/dvc", "version"
end
end