[arch-commits] Commit in python-networkx/repos (3 files)
Eli Schwartz
eschwartz at archlinux.org
Sun Jul 8 04:28:58 UTC 2018
Date: Sunday, July 8, 2018 @ 04:28:58
Author: eschwartz
Revision: 354261
archrelease: copy trunk to community-staging-any
Added:
python-networkx/repos/community-staging-any/
python-networkx/repos/community-staging-any/0001-Fix-StopIteration-handling-which-breaks-in-python-3..patch
(from rev 354260, python-networkx/trunk/0001-Fix-StopIteration-handling-which-breaks-in-python-3..patch)
python-networkx/repos/community-staging-any/PKGBUILD
(from rev 354260, python-networkx/trunk/PKGBUILD)
-----------------------------------------------------------------+
0001-Fix-StopIteration-handling-which-breaks-in-python-3..patch | 124 ++++++++++
PKGBUILD | 68 +++++
2 files changed, 192 insertions(+)
Copied: python-networkx/repos/community-staging-any/0001-Fix-StopIteration-handling-which-breaks-in-python-3..patch (from rev 354260, python-networkx/trunk/0001-Fix-StopIteration-handling-which-breaks-in-python-3..patch)
===================================================================
--- community-staging-any/0001-Fix-StopIteration-handling-which-breaks-in-python-3..patch (rev 0)
+++ community-staging-any/0001-Fix-StopIteration-handling-which-breaks-in-python-3..patch 2018-07-08 04:28:58 UTC (rev 354261)
@@ -0,0 +1,124 @@
+From 933d3241eb23d6857716810bedfaf56123111a6a Mon Sep 17 00:00:00 2001
+From: Dan Schult <dschult at colgate.edu>
+Date: Sat, 7 Jul 2018 14:07:58 -0400
+Subject: [PATCH] Fix StopIteration handling which breaks in python 3.7
+
+See #3046
+---
+
+rebase against stable release
+
+ .../algorithms/connectivity/edge_augmentation.py | 12 +++++++++---
+ networkx/algorithms/connectivity/edge_kcomponents.py | 2 +-
+ networkx/algorithms/traversal/edgedfs.py | 2 +-
+ networkx/generators/classic.py | 2 ++
+ networkx/readwrite/sparse6.py | 10 ++++++++--
+ 5 files changed, 21 insertions(+), 7 deletions(-)
+
+diff --git a/networkx/algorithms/connectivity/edge_augmentation.py b/networkx/algorithms/connectivity/edge_augmentation.py
+index cd8c748f..21512d7c 100644
+--- a/networkx/algorithms/connectivity/edge_augmentation.py
++++ b/networkx/algorithms/connectivity/edge_augmentation.py
+@@ -813,7 +813,10 @@ def unconstrained_bridge_augmentation(G):
+ A2 = [tuple(leafs)]
+ else:
+ # Choose an arbitrary non-leaf root
+- root = next(n for n, d in T.degree() if d > 1)
++ try:
++ root = next(n for n, d in T.degree() if d > 1)
++ except StopIteration: # no nodes found with degree > 1
++ return
+ # order the leaves of C by (induced directed) preorder
+ v2 = [n for n in nx.dfs_preorder_nodes(T, root) if T.degree(n) == 1]
+ # connecting first half of the leafs in pre-order to the second
+@@ -954,7 +957,10 @@ def weighted_bridge_augmentation(G, avail, weight=None):
+ # nx.least_common_ancestor on the reversed Tree.
+
+ # Pick an arbitrary leaf from C as the root
+- root = next(n for n in C.nodes() if C.degree(n) == 1)
++ try:
++ root = next(n for n, d in C.degree() if d == 1)
++ except StopIteration: # no nodes found with degree == 1
++ return
+ # Root C into a tree TR by directing all edges away from the root
+ # Note in their paper T directs edges towards the root
+ TR = nx.dfs_tree(C, root)
+@@ -1230,7 +1236,7 @@ def greedy_k_edge_augmentation(G, k, avail=None, weight=None, seed=None):
+
+ done = is_k_edge_connected(G, k)
+ if done:
+- raise StopIteration()
++ return
+ if avail is None:
+ # all edges are available
+ avail_uv = list(complement_edges(G))
+diff --git a/networkx/algorithms/connectivity/edge_kcomponents.py b/networkx/algorithms/connectivity/edge_kcomponents.py
+index 37bf61dc..f9b4364c 100644
+--- a/networkx/algorithms/connectivity/edge_kcomponents.py
++++ b/networkx/algorithms/connectivity/edge_kcomponents.py
+@@ -573,7 +573,7 @@ def general_k_edge_subgraphs(G, k):
+ if G.number_of_nodes() < k:
+ for node in G.nodes():
+ yield G.subgraph([node]).copy()
+- raise StopIteration()
++ return
+
+ # Intermediate results
+ R0 = {G.subgraph(cc).copy() for cc in find_ccs(G)}
+diff --git a/networkx/algorithms/traversal/edgedfs.py b/networkx/algorithms/traversal/edgedfs.py
+index 5434057d..b9d442b6 100644
+--- a/networkx/algorithms/traversal/edgedfs.py
++++ b/networkx/algorithms/traversal/edgedfs.py
+@@ -152,7 +152,7 @@ def edge_dfs(G, source=None, orientation='original'):
+ """
+ nodes = list(G.nbunch_iter(source))
+ if not nodes:
+- raise StopIteration
++ return
+
+ kwds = {'data': False}
+ if G.is_multigraph():
+diff --git a/networkx/generators/classic.py b/networkx/generators/classic.py
+index 22741a37..10710db4 100644
+--- a/networkx/generators/classic.py
++++ b/networkx/generators/classic.py
+@@ -54,6 +54,8 @@ __all__ = ['balanced_tree',
+ # -------------------------------------------------------------------
+
+ def _tree_edges(n, r):
++ if n == 0:
++ return
+ # helper function for trees
+ # yields edges in rooted tree at 0 with n nodes and branching ratio r
+ nodes = iter(range(n))
+diff --git a/networkx/readwrite/sparse6.py b/networkx/readwrite/sparse6.py
+index 00ccae60..6f404ca3 100644
+--- a/networkx/readwrite/sparse6.py
++++ b/networkx/readwrite/sparse6.py
+@@ -163,7 +163,10 @@ def from_sparse6_bytes(string):
+
+ while 1:
+ if dLen < 1:
+- d = next(chunks)
++ try:
++ d = next(chunks)
++ except StopIteration:
++ return
+ dLen = 6
+ dLen -= 1
+ b = (d >> dLen) & 1 # grab top remaining bit
+@@ -171,7 +174,10 @@ def from_sparse6_bytes(string):
+ x = d & ((1 << dLen) - 1) # partially built up value of x
+ xLen = dLen # how many bits included so far in x
+ while xLen < k: # now grab full chunks until we have enough
+- d = next(chunks)
++ try:
++ d = next(chunks)
++ except StopIteration:
++ return
+ dLen = 6
+ x = (x << 6) + d
+ xLen += 6
+--
+2.18.0
+
Copied: python-networkx/repos/community-staging-any/PKGBUILD (from rev 354260, python-networkx/trunk/PKGBUILD)
===================================================================
--- community-staging-any/PKGBUILD (rev 0)
+++ community-staging-any/PKGBUILD 2018-07-08 04:28:58 UTC (rev 354261)
@@ -0,0 +1,68 @@
+# $Id$
+# Maintainer: Felix Yan <felixonmars at archlinux.org>
+# Contributor: Clément DEMOULINS <clement at archivel.fr>
+
+pkgbase=python-networkx
+pkgname=(python-networkx python2-networkx)
+_pypiname=networkx
+pkgver=2.1
+pkgrel=3
+pkgdesc='Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.'
+arch=('any')
+license=('BSD')
+url="https://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"
+ "0001-Fix-StopIteration-handling-which-breaks-in-python-3..patch")
+sha512sums=('1db1d4e6e6add25509b79b24bcdc30e934b3be714898dcad8092db56908fe40eec47952336b9cbb3662cf5026c821c50db7a2d8578a4dda93585ee0aaf8210ec'
+ 'acd4f982f0773a7eaf0c8034a512b28d367fc9aee5a2d480461451f2d76ff88af2016b2d87b5f70c46af75b9f0d2306e73ab0ffbc5584003153cfbcdc3c72380')
+
+prepare() {
+ # backport fix for python3.7 testsuite: https://github.com/networkx/networkx/issues/3046
+ patch -p1 -d ${_pypiname}-${_pypiname}-$pkgver < 0001-Fix-StopIteration-handling-which-breaks-in-python-3..patch
+ cp -a ${_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-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"
+}
More information about the arch-commits
mailing list