# Maintainer: Bruno Pagani <archange@archlinux.org>
# Maintainer: George Rawlinson <grawlinson@archlinux.org>
# Contributor: Andrzej Giniewicz <gginiu@gmail.com>

pkgname=python-blosc
pkgver=1.11.3
pkgrel=1
pkgdesc='Python wrapper for the extremely fast Blosc compression library'
arch=('x86_64' 'aarch64')
url='https://www.blosc.org/python-blosc/python-blosc.html'
license=('BSD-3-Clause')
depends=('python' 'blosc')
makedepends=(
  'git'
  'cmake'
  'ninja'
  'python-build'
  'python-installer'
  'python-setuptools'
  'python-wheel'
  'python-scikit-build'
  'python-py-cpuinfo'
)
checkdepends=('python-numpy' 'python-psutil')
optdepends=('python-numpy: for tests and benchmarks')
source=(
  "$pkgname::git+https://github.com/Blosc/python-blosc#tag=v$pkgver"
  ftbfs-numpy-buffer.patch
)
sha512sums=('af658d8684a89761bce7043ef342ac6804ffe621013ecb9b15cf223429b991c4795608e619c8efa93ad93d5e4ed29da256d43c0c8939fb36e0ffad7fde24e4b2'
            'a15195326155b4538c8b9bd75e0d996ad9311de4946a877f8eeb5a7822aacb595c8f14cf4df8488a94f94ed92cd72960b67e0d8ebd2db1ebc1ba5e82840e9c39')
b2sums=('f7223c0f784ba245367fcede92d4ecf74bd561de415c73be2fafcfb5a546438c0d2e17b671ca4b85f535b81e9a2377f27afa19a2262d9914bbc7acebac84ae64'
        '0ee4cab141924bf118512eb72ebf772173ea3175cd08dd5cabdb8ecaeb02698b0630631987896820ae67490adba31bc3ff398132de544f8fd528520a2fbb0eac')

prepare() {
  cd "$pkgname"

  patch -p1 -i "$srcdir/ftbfs-numpy-buffer.patch"
}

build() {
  cd "${pkgname}"

  # AVX2 disabled because Arch does not have x86_64_v3 yet.
  # Snappy is also disabled by default for compatability with non-C++ systems.
  export CMAKE_ARGS="\
    -DCMAKE_C_FLAGS_INIT=-DNDEBUG \
    -DCMAKE_BUILD_TYPE=None \
    -DUSE_SYSTEM_BLOSC=ON \
    -DDEACTIVATE_SNAPPY=OFF \
    -DDEACTIVATE_AVX2=ON"

  # skip unnecessary dependencies (ninja, cmake, etc)
  python -m build --wheel --no-isolation --skip-dependency-check
}

check() {
  cd "${pkgname}"

  python -m venv --system-site-packages test-env
  test-env/bin/python -m installer dist/*.whl
  test-env/bin/python -m blosc.test
}

package() {
  cd "${pkgname}"

  python -m installer --destdir="$pkgdir" dist/*.whl

  # license
  install -vDm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE.txt
}
