dev-python/networkx: Add from Gentoo

It's from Gentoo commit 2d25fad95cbaa525c8945d8e582c749d49524f49.

Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
This commit is contained in:
Krzesimir Nowak 2026-03-05 13:55:41 +01:00
parent a78d7205b8
commit ad502e0a96
6 changed files with 266 additions and 0 deletions

View File

@ -0,0 +1,5 @@
DIST networkx-3.5.tar.gz 2471065 BLAKE2B 575ac0a6e9741f0ad23396ff089cb360d43fc80f1c5a1fcb69e824c3673aba1aae5c2413020b049bcfecb68045984452eb02aefce1d523bd00d589eb26d8ae0f SHA512 9c060385913cfe67126e71eb9e53c032faa51c9609336ce78333d22e5f73078eb5b4826e0709cae0bd448fef2a5b2fb6f4c29be28c70d34a936d1cf6a00e83a1
DIST networkx-3.6.1.tar.gz 2517025 BLAKE2B 4419ae5377fa6d4c4e058e96f481207c6091edc4b2e15c5f1c96d15e1a298b54c99a3f2fc5788469269db703db75b7bcff72fdddc08835a875170fa151b7a574 SHA512 d3ccbdf15b93facf71c8f0f508b85204f77273af1180e885a2bde79631237f7f08a4521a88a52b599b179df94e2b58916cc2ee21be20d893a8d6a0f86d9a3a30
DIST networkx-3.6.1.tar.gz.provenance 9627 BLAKE2B 0a983dd076324896c372504a666dc491cdc0f84280d1d0cd7e26f46d0cd9526310caf1397e40ce547643d1e3df39a3a5144d8de45c44f4e350ad6146119fbfeb SHA512 b0be00d2310d8df60bdaa9554026a8aeb8930f90095bae8c3f5536fe7badee0002370c8ac03aea4f1e53381ab20d9faece5e74744373966cd472a5d6e64d5da8
DIST networkx-3.6.tar.gz 2511464 BLAKE2B d677f4850dc396d447d10086a8adef59c1455286702158fd5fef7417accb3529980a65ee52a935aed20723d61eee99ba88b22ab0fc45970d48f97934a99dccec SHA512 a2864f7896e3b20d2dc24744494ffa14ff5aa6ffa938c5b49937236706ec193f0777cda3cbb2993f4dbf51137a0aed8246af0c2d900385222cd32e917d6b5c64
DIST networkx-3.6.tar.gz.provenance 9491 BLAKE2B 6cb089d2da3b5313d6df63e2503202ed80a3f30a71aeb9c198da3c2b62ecb21f78c11b9e5b55750c9a85ca430c8ed3096cb59c822c07455ecacde9825228fdcf SHA512 68795022a1c9cb288ecf478c14aec713b17081b2de1056cb7278887fadbd7f66cf555e01ad838f808414a1740a083dc3f372791dde00af3a0330093019d02c6f

View File

@ -0,0 +1,53 @@
From 5487e923e39f526fe12a74d7399e5153f06698a4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Tue, 3 Jun 2025 09:54:33 +0200
Subject: [PATCH] Use type checks in `generators/lattice.py` for Py3.14 compat
Replace the `TypeError` catching in `networkx/generators/lattice.py`
with explicit type checks to make the code more reliable and fix it for
Python 3.14. Catching the exception immediately does not work
in the second instance, because the code is constructing a generator,
and apparently Python 3.14 does not evaluate the `p in periodic`
expression until the generator is actually iterated over. Given that
the function expects either an iterable or a `bool`, explicitly checking
for `bool` should both be more readable and more reliable.
The alternative would be to replace the generator with a list
comprehension that would be evaluated immediately. However,
the explicit type check seems to be a cleaner solution to the problem.
---
networkx/generators/lattice.py | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/networkx/generators/lattice.py b/networkx/generators/lattice.py
index 95e520d2c..3b0900ea1 100644
--- a/networkx/generators/lattice.py
+++ b/networkx/generators/lattice.py
@@ -67,10 +67,10 @@ def grid_2d_graph(m, n, periodic=False, create_using=None):
G.add_edges_from(((i, j), (pi, j)) for pi, i in pairwise(rows) for j in cols)
G.add_edges_from(((i, j), (i, pj)) for i in rows for pj, j in pairwise(cols))
- try:
- periodic_r, periodic_c = periodic
- except TypeError:
+ if isinstance(periodic, bool):
periodic_r = periodic_c = periodic
+ else:
+ periodic_r, periodic_c = periodic
if periodic_r and len(rows) > 2:
first = rows[0]
@@ -129,10 +129,10 @@ def grid_graph(dim, periodic=False):
if not dim:
return empty_graph(0)
- try:
- func = (cycle_graph if p else path_graph for p in periodic)
- except TypeError:
+ if isinstance(periodic, bool):
func = repeat(cycle_graph if periodic else path_graph)
+ else:
+ func = (cycle_graph if p else path_graph for p in periodic)
G = next(func)(dim[0])
for current_dim in dim[1:]:

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<longdescription lang="en">
NetworkX is a Python-based package for the creation, manipulation, and
study of the structure, dynamics, and functions of complex networks.
The structure of a graph or network is encoded in the edges (connections,
links, ties, arcs, bonds) between nodes (vertices, sites, actors). If
unqualified, by graph we mean a simple undirected graph, i.e. no
self-loops and no multiple edges are allowed. By a network we usually
mean a graph with weights (fields, properties) on nodes and/or edges.
The potential audience for NetworkX includes: mathematicians, physicists,
biologists, computer scientists, social scientists.
</longdescription>
<stabilize-allarches/>
<upstream>
<remote-id type="pypi">networkx</remote-id>
<remote-id type="github">networkx/networkx</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,64 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_FULLY_TESTED=( python3_{11..13} )
PYTHON_COMPAT=( "${PYTHON_FULLY_TESTED[@]}" python3_14 )
inherit distutils-r1 optfeature pypi virtualx
DESCRIPTION="Python tools to manipulate graphs and complex networks"
HOMEPAGE="
https://networkx.org/
https://github.com/networkx/networkx/
https://pypi.org/project/networkx/
"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 arm arm64 ~loong ~ppc64 ~riscv ~sparc x86 ~x64-macos"
BDEPEND="
test? (
>=dev-python/lxml-4.6[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
>=dev-python/matplotlib-3.8[${PYTHON_USEDEP}]
>=dev-python/numpy-1.25[${PYTHON_USEDEP}]
>=dev-python/scipy-1.11.2[${PYTHON_USEDEP}]
' "${PYTHON_FULLY_TESTED[@]}")
)
"
EPYTEST_XDIST=1
distutils_enable_tests pytest
PATCHES=(
# minimal fix for https://github.com/networkx/networkx/issues/8091
"${FILESDIR}/${P}-py314.patch"
)
src_test() {
virtx distutils-r1_src_test
}
python_test() {
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
# virtx implies nonfatal
nonfatal epytest || die
}
src_install() {
distutils-r1_src_install
# those examples use various assets and pre-compressed files
docompress -x /usr/share/doc/${PF}/examples
}
pkg_postinst() {
optfeature "recommended dependencies" "dev-python/matplotlib dev-python/numpy dev-python/pandas dev-python/scipy"
optfeature "graph drawing and graph layout algorithms" "dev-python/pygraphviz dev-python/pydot"
optfeature "YAML format reading and writing" "dev-python/pyyaml"
optfeature "shapefile format reading and writing" "sci-libs/gdal[python]"
optfeature "GraphML XML format" "dev-python/lxml"
}

View File

@ -0,0 +1,60 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYPI_VERIFY_REPO=https://github.com/networkx/networkx
PYTHON_FULLY_TESTED=( python3_{11..14} )
PYTHON_COMPAT=( "${PYTHON_FULLY_TESTED[@]}" )
inherit distutils-r1 optfeature pypi virtualx
DESCRIPTION="Python tools to manipulate graphs and complex networks"
HOMEPAGE="
https://networkx.org/
https://github.com/networkx/networkx/
https://pypi.org/project/networkx/
"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
BDEPEND="
test? (
>=dev-python/lxml-4.6[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
>=dev-python/matplotlib-3.8[${PYTHON_USEDEP}]
>=dev-python/numpy-1.25[${PYTHON_USEDEP}]
>=dev-python/scipy-1.11.2[${PYTHON_USEDEP}]
' "${PYTHON_FULLY_TESTED[@]}")
)
"
EPYTEST_PLUGINS=()
EPYTEST_XDIST=1
distutils_enable_tests pytest
src_test() {
virtx distutils-r1_src_test
}
python_test() {
# virtx implies nonfatal
nonfatal epytest || die
}
src_install() {
distutils-r1_src_install
# those examples use various assets and pre-compressed files
docompress -x /usr/share/doc/${PF}/examples
}
pkg_postinst() {
optfeature "recommended dependencies" "dev-python/matplotlib dev-python/numpy dev-python/pandas dev-python/scipy"
optfeature "graph drawing and graph layout algorithms" "dev-python/pygraphviz dev-python/pydot"
optfeature "YAML format reading and writing" "dev-python/pyyaml"
optfeature "shapefile format reading and writing" "sci-libs/gdal[python]"
optfeature "GraphML XML format" "dev-python/lxml"
}

View File

@ -0,0 +1,60 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYPI_VERIFY_REPO=https://github.com/networkx/networkx
PYTHON_FULLY_TESTED=( python3_{11..14} )
PYTHON_COMPAT=( "${PYTHON_FULLY_TESTED[@]}" )
inherit distutils-r1 optfeature pypi virtualx
DESCRIPTION="Python tools to manipulate graphs and complex networks"
HOMEPAGE="
https://networkx.org/
https://github.com/networkx/networkx/
https://pypi.org/project/networkx/
"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
BDEPEND="
test? (
>=dev-python/lxml-4.6[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
>=dev-python/matplotlib-3.8[${PYTHON_USEDEP}]
>=dev-python/numpy-1.25[${PYTHON_USEDEP}]
>=dev-python/scipy-1.11.2[${PYTHON_USEDEP}]
' "${PYTHON_FULLY_TESTED[@]}")
)
"
EPYTEST_PLUGINS=()
EPYTEST_XDIST=1
distutils_enable_tests pytest
src_test() {
virtx distutils-r1_src_test
}
python_test() {
# virtx implies nonfatal
nonfatal epytest || die
}
src_install() {
distutils-r1_src_install
# those examples use various assets and pre-compressed files
docompress -x /usr/share/doc/${PF}/examples
}
pkg_postinst() {
optfeature "recommended dependencies" "dev-python/matplotlib dev-python/numpy dev-python/pandas dev-python/scipy"
optfeature "graph drawing and graph layout algorithms" "dev-python/pygraphviz dev-python/pydot"
optfeature "YAML format reading and writing" "dev-python/pyyaml"
optfeature "shapefile format reading and writing" "sci-libs/gdal[python]"
optfeature "GraphML XML format" "dev-python/lxml"
}