Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[email protected]_py310.rb version formula for freecad #489

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
128 changes: 128 additions & 0 deletions Formula/[email protected]_py310.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
class NumpyAT1264Py310 < Formula
include Language::Python::Virtualenv
desc "Package for scientific computing with Python"
homepage "https://www.numpy.org/"
license "BSD-3-Clause"
head "https://github.com/numpy/numpy.git", branch: "main"

stable do
url "https://files.pythonhosted.org/packages/65/6e/09db70a523a96d25e115e71cc56a6f9031e7b8cd166c1ac8438307c14058/numpy-1.26.4.tar.gz"
sha256 "2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010"

depends_on "python-setuptools" => :build
end

keg_only :versioned_formula

depends_on "gcc" => :build # for gfortran
depends_on "libcython" => :build
depends_on "meson" => :build
depends_on "ninja" => :build
depends_on "[email protected]" => [:build, :test]
depends_on "openblas" if OS.linux?

# NOTE: `brew update-python-resources` check for outdated py resources
fails_with gcc: "5"

resource "meson-python" do
url "https://files.pythonhosted.org/packages/a2/3b/276b596824a0820987fdcc7721618453b4f9a8305fe20b611a00ac3f948e/meson_python-0.15.0.tar.gz"
sha256 "fddb73eecd49e89c1c41c87937cd89c2d0b65a1c63ba28238681d4bd9484d26f"
end

resource "tomli" do
url "https://files.pythonhosted.org/packages/c0/3f/d7af728f075fb08564c5949a9c95e44352e23dee646869fa104a3b2060a3/tomli-2.0.1.tar.gz"
sha256 "de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"
end

resource "packaging" do
url "https://files.pythonhosted.org/packages/ee/b5/b43a27ac7472e1818c4bafd44430e69605baefe1f34440593e0332ec8b4d/packaging-24.0.tar.gz"
sha256 "eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"
end

resource "pyproject-metadata" do
url "https://files.pythonhosted.org/packages/38/af/b0e6a9eba989870fd26e10889446d1bec2e6d5be0a1bae2dc4dcda9ce199/pyproject-metadata-0.7.1.tar.gz"
sha256 "0a94f18b108b9b21f3a26a3d541f056c34edcb17dc872a144a15618fed7aef67"
end

resource "cython" do
url "https://files.pythonhosted.org/packages/0e/17/c5b026cea7a634ee3b8950a7be16aaa49deeb3b9824ba5e81c13ac26f3c4/Cython-3.0.9.tar.gz"
sha256 "a2d354f059d1f055d34cfaa62c5b68bc78ac2ceab6407148d47fb508cf3ba4f3"
end

def python3
"python3.10"
end

def install
virtualenv_install_with_resources using: "[email protected]"

# Prepend the installation path of mesonpy to PYTHONPATH
ENV.prepend_path "PYTHONPATH", libexec/"lib/python3.10/site-packages"
ENV.prepend_path "PATH", Formula["libcython"].opt_libexec/"bin"

# NOTE: https://stackoverflow.com/a/69869531/708807
if OS.mac?
config = <<~EOS
[accelerate]
libraries = Accelerate, vecLib
EOS

Pathname("site.cfg").write config
end

site_packages = Language::Python.site_packages(python3)
ENV.prepend_path "PYTHONPATH", Formula["libcython"].opt_libexec/site_packages

if OS.mac?
ENV["NPY_LAPACK_ORDER"] = "accelerate"
system python3, "setup.py", "build"
# system python3, "setup.py", "--help-commands"
# system python3, "setup.py", "install", "--help"
system python3, "setup.py", "install",
"--prefix=#{prefix}", \
"--install-lib=#{lib}/python3.10/site-packages", \
"--install-scripts=#{prefix}"
else
system python3, "-m", "pip", "install", *std_pip_args, ".",
"-Csetup-args=-Dblas=openblas",
"-Csetup-args=-Dlapack=openblas"
end
end

def post_install
# explicitly set python version
python_version = "3.10"

# Unlink the existing .pth file to avoid reinstall issues
pth_file = lib/"python#{python_version}/numpy.pth"
pth_file.unlink if pth_file.exist?

ohai "Creating .pth file for [email protected]_py310 module"
# write the .pth file to the parent dir of site-packages
(lib/"python#{python_version}/numpy.pth").write <<~EOS
import site; site.addsitedir('#{lib}/python#{python_version}/site-packages/')
EOS
end

def caveats
<<~EOS
1. this is a versioned formula specifically setup to work with
the homebrew-freecad tap.

2. to use the numpy python module the fc_bundle needs to be installed

3. on macos this python module is built against the apple accelerate.framework
EOS
end

test do
ENV.append_path "PYTHONPATH", Formula["[email protected]_py310"].opt_prefix/Language::Python.site_packages(python3)

system Formula["[email protected]"].opt_bin/"python3.10", "-c", <<~EOS
import numpy as np
t = np.ones((3,3), int)
assert t.sum() == 9
assert np.dot(t, t).sum() == 27
EOS
end
end
3 changes: 0 additions & 3 deletions audit_exceptions/python_versions_allowlist.json

This file was deleted.

Loading