# $Id: PKGBUILD 119347 2014-09-21 05:17:05Z fyan $
# Maintainer: Felix Yan <felixonmars@gmail.com>
# Contributor: Clément DEMOULINS <clement@archivel.fr>

pkgbase=python-networkx
pkgname=(python-networkx python2-networkx)
_pypiname=networkx
pkgver=1.9.1
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=('e1b617da71645ecb2427f4e414e2d6e7052f25279ea04d890968d7dadf63526a6989b07759abc2bf29748c8868cdcc875b76c083c3710f8d331ceb109cdfbed5')

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"
}
