# $Id: PKGBUILD 138048 2015-08-07 07:12:19Z fyan $
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Clément DEMOULINS <clement@archivel.fr>

pkgbase=python-networkx
pkgname=(python-networkx python2-networkx)
_pypiname=networkx
pkgver=1.10
pkgrel=1
pkgdesc='Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.'
arch=('any')
license=('BSD')
url="http://networkx.github.io"
makedepends=('python-setuptools' 'python2-setuptools' 'python-decorator' 'python2-decorator')
checkdepends=('python-nose' 'python2-nose')
source=("https://github.com/networkx/networkx/archive/${_pypiname}-${pkgver}.tar.gz")
sha512sums=('6ca16e45e107634e2eb8b8e698191ae2e777ef9dff854e85e7d144599e8ec5bbe74e4fe626f14ec06603d7d4d008a6b75ec7f59d4c7fc205bbf0cb12104437fc')

prepare() {
  cp -r ${_pypiname}-${_pypiname}-$pkgver{,-py2}
}

build() {
  cd "$srcdir/${_pypiname}-${_pypiname}-$pkgver"
  python3 setup.py build

  cd "$srcdir/${_pypiname}-${_pypiname}-$pkgver-py2"
  python2 setup.py build
}

check() {
  cd "$srcdir/${_pypiname}-${_pypiname}-$pkgver"
  python3 setup.py nosetests #|| true  # Tests fail randomly

  cd "$srcdir/${_pypiname}-${_pypiname}-$pkgver-py2"
  python2 setup.py nosetests
}

package_python-networkx() {
  depends=('python-decorator')
  optdepends=('python-numpy: Provides sparse matrix representation of graphs and many numerical scientific tools.'
              'python-scipy: Provides flexible drawing of graphs.'
              'python-pyparsing: Required for pydot, GML file reading.'
              'python-yaml: Required for YAML format reading and writing.')

  cd "$srcdir/${_pypiname}-${_pypiname}-$pkgver"
  python3 setup.py install --root="$pkgdir" --optimize=1
  install -D -m 644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE.txt"
  mv "$pkgdir/usr/share/doc/${_pypiname}-$pkgver" "$pkgdir/usr/share/doc/$pkgname"
}

package_python2-networkx() {
  depends=('python2-decorator')
  optdepends=('python2-numpy: Provides sparse matrix representation of graphs and many numerical scientific tools.'
              'python2-scipy: Provides flexible drawing of graphs.'
              'python2-pygraphviz: Provides graph drawing and graph layout algorithms.'
              'python2-pydot: Provides graph drawing and graph layout algorithms.'
              'python2-pyparsing: Required for pydot, GML file reading.'
              'python2-yaml: Required for YAML format reading and writing.')

  cd "$srcdir/${_pypiname}-${_pypiname}-$pkgver-py2"
  python2 setup.py install --root="$pkgdir" --optimize=1
  install -D -m 644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE.txt"
  mv "$pkgdir/usr/share/doc/${_pypiname}-$pkgver" "$pkgdir/usr/share/doc/$pkgname"
}
