class Dvc < Formula include Language::Python::Virtualenv desc "Git for data science projects" homepage "https://dvc.org" url "https://github.com/iterative/dvc/archive/0.68.1.tar.gz" sha256 "a072ebf2151213c61ac7e580e51dc1cecefa4cd840e4f7ae1927d6710312cfe0" revision 2 bottle do cellar :any sha256 "7bcdf2e1dc1fdebde15a9b87c48aeffeffde4ecfb209df2547f6181d0b7e5687" => :catalina sha256 "dc1e2514cb9f8902b679bef4406894123bab25f0da2d13b4c00d920893bd1d35" => :mojave sha256 "24f2ca80e4bf718fb42f1ef2389b3172697be3a5f53006b303386e041245b359" => :high_sierra end depends_on "pkg-config" => :build depends_on "apache-arrow" depends_on "openssl@1.1" depends_on "python" def install venv = virtualenv_create(libexec, "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]" # 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.install "scripts/completion/dvc.bash" => "dvc" zsh_completion.install "scripts/completion/dvc.zsh" end test do system "#{bin}/dvc", "--version" end end