--- /srv/reproducible-results/rbuild-debian/r-b-build.iZJ7Cz5z/b1/python-igraph_0.11.8+ds-1_amd64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.iZJ7Cz5z/b2/python-igraph_0.11.8+ds-1_amd64.changes ├── Files │ @@ -1,4 +1,4 @@ │ │ - 157735bed3952a9670d325f9166fb299 6070524 doc optional python-igraph-doc_0.11.8+ds-1_all.deb │ + 95a08e494fb3e14ca47d573f44cbdeff 6070440 doc optional python-igraph-doc_0.11.8+ds-1_all.deb │ e0897c4ff1da0cd1205ac8f0f5d5faa2 373196 debug optional python3-igraph-dbgsym_0.11.8+ds-1_amd64.deb │ b063e0d4927882d363fe5b0d0f9482cb 326772 python optional python3-igraph_0.11.8+ds-1_amd64.deb ├── python-igraph-doc_0.11.8+ds-1_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2024-11-10 15:46:20.000000 debian-binary │ │ --rw-r--r-- 0 0 0 13740 2024-11-10 15:46:20.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 6056592 2024-11-10 15:46:20.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 13728 2024-11-10 15:46:20.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 6056520 2024-11-10 15:46:20.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -512,15 +512,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18430 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/faq.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 31934 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/generation.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4759 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/genindex.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10616 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/index.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 25754 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/install.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1935 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/objects.inv │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5158 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/search.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 78569 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/searchindex.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 78542 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/searchindex.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15492 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/sg_execution_times.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 128509 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/tutorial.es.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 135840 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/tutorial.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/tutorials/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17208 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/tutorials/articulation_points.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 29742 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/tutorials/betweenness.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 23870 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/tutorials/bipartite_matching.html │ │ │ │ @@ -544,15 +544,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 21779 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/tutorials/simplify.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 24377 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/tutorials/spanning_trees.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 24065 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/tutorials/topological_sort.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 27331 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/tutorials/visual_style.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 23926 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/tutorials/visualize_cliques.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 24048 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/tutorials/visualize_communities.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 33649 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/visualisation.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1892118 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/igraph.pdf.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1892089 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/igraph.pdf.gz │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-10 15:46:20.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 362 2024-05-10 15:38:04.000000 ./usr/share/doc-base/python-igraph-doc.igraph │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-10 15:46:20.000000 ./usr/share/lintian/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-11-10 15:46:20.000000 ./usr/share/lintian/overrides/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 154 2024-05-10 15:38:04.000000 ./usr/share/lintian/overrides/python-igraph-doc │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/_static/css/badge_only.css -> ../../../../../sphinx_rtd_theme/static/css/badge_only.css │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2024-11-10 15:46:20.000000 ./usr/share/doc/python-igraph-doc/html/_static/css/theme.css -> ../../../../../sphinx_rtd_theme/static/css/theme.css │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/articulation_points.rst.txt │ │ │ │ @@ -108,15 +108,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 0.325 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.219 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_articulation_points.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/betweenness.rst.txt │ │ │ │ @@ -193,15 +193,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 5.223 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 3.197 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_betweenness.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/bipartite_matching.rst.txt │ │ │ │ @@ -161,22 +161,22 @@ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-script-out │ │ │ │ │ │ │ │ .. code-block:: none │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 0.346 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.206 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_bipartite_matching.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/bipartite_matching_maxflow.rst.txt │ │ │ │ @@ -176,15 +176,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 0.495 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.250 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_bipartite_matching_maxflow.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/bridges.rst.txt │ │ │ │ @@ -209,15 +209,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 1.149 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.624 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_bridges.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/cluster_contraction.rst.txt │ │ │ │ @@ -401,15 +401,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 4.537 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 2.474 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_cluster_contraction.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/complement.rst.txt │ │ │ │ @@ -173,15 +173,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 1.350 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.834 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_complement.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/configuration.rst.txt │ │ │ │ @@ -159,15 +159,15 @@ │ │ │ │ │ │ │ │ To use a consistent style between individual plots (e.g. vertex sizes, │ │ │ │ colors, layout etc.) check out :ref:`tutorials-visual-style`. │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 2.968 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 2.295 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_configuration.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/connected_components.rst.txt │ │ │ │ @@ -117,15 +117,15 @@ │ │ │ │ We use the integers from 0 to 200 instead of 0 to 255 in our vertex │ │ │ │ colors, since 255 in the :class:`igraph.drawing.colors.RainbowPalette` │ │ │ │ corresponds to looping back to red. This gives us nicely distinct hues. │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 1.894 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.940 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_connected_components.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/delaunay-triangulation.rst.txt │ │ │ │ @@ -140,15 +140,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-script-out │ │ │ │ │ │ │ │ .. code-block:: none │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. GENERATED FROM PYTHON SOURCE LINES 52-54 │ │ │ │ │ │ │ │ Finally, plotting the graph gives a good idea of what the triangulation looks │ │ │ │ like: │ │ │ │ @@ -244,15 +244,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 1.902 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.951 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_delaunay-triangulation.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/erdos_renyi.rst.txt │ │ │ │ @@ -186,15 +186,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 2.519 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 1.403 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_erdos_renyi.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/generate_dag.rst.txt │ │ │ │ @@ -147,15 +147,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 1.694 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.633 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_generate_dag.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/isomorphism.rst.txt │ │ │ │ @@ -154,15 +154,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 0.766 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.392 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_isomorphism.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/maxflow.rst.txt │ │ │ │ @@ -121,15 +121,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 0.230 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.154 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_maxflow.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/minimum_spanning_trees.rst.txt │ │ │ │ @@ -141,15 +141,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 0.946 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.550 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_minimum_spanning_trees.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/online_user_actions.rst.txt │ │ │ │ @@ -245,15 +245,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 0.960 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.646 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_online_user_actions.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/quickstart.rst.txt │ │ │ │ @@ -104,15 +104,15 @@ │ │ │ │ # Export and import a graph as a GML file. │ │ │ │ g.save("social_network.gml") │ │ │ │ g = ig.load("social_network.gml") │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 1.268 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.288 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_quickstart.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/ring_animation.rst.txt │ │ │ │ @@ -339,62 +339,62 @@ │ │ │ │ .anim-state input { │ │ │ │ margin: 0; │ │ │ │ vertical-align: middle; │ │ │ │ } │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ - │ │ │ │ + │ │ │ │
│ │ │ │ - │ │ │ │ + oninput="anim1c8dfc60720644658d40707be91410f3.set_frame(parseInt(this.value));"> │ │ │ │
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │
│ │ │ │ -
│ │ │ │ - │ │ │ │ - │ │ │ │ - Once │ │ │ │ + │ │ │ │ - │ │ │ │ - Loop │ │ │ │ + │ │ │ │ - │ │ │ │ + │ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2945,15 +2945,15 @@ │ │ │ │ example, this approach is not very efficient. Thinking of more efficient │ │ │ │ approaches, e.g. vertices with zero radius, is a useful exercise to learn │ │ │ │ the combination of igraph and matplotlib. │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 6.017 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 3.244 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_ring_animation.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/shortest_path_visualisation.rst.txt │ │ │ │ @@ -189,15 +189,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 0.309 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.160 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_shortest_path_visualisation.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/simplify.rst.txt │ │ │ │ @@ -88,15 +88,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-script-out │ │ │ │ │ │ │ │ .. code-block:: none │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. GENERATED FROM PYTHON SOURCE LINES 38-40 │ │ │ │ │ │ │ │ We can then proceed to plot both graphs to see the difference. First, let's │ │ │ │ choose a consistent visual style: │ │ │ │ @@ -161,15 +161,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 0.499 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.252 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_simplify.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/spanning_trees.rst.txt │ │ │ │ @@ -161,15 +161,15 @@ │ │ │ │ .. note:: │ │ │ │ To invert the y axis such that the root of the tree is on top of the plot, │ │ │ │ you can call `ax.invert_yaxis()` before `plt.show()`. │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 1.431 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.697 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_spanning_trees.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/topological_sort.rst.txt │ │ │ │ @@ -179,15 +179,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 0.321 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.164 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_topological_sort.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/visual_style.rst.txt │ │ │ │ @@ -212,15 +212,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 6.114 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 3.142 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_visual_style.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/visualize_cliques.rst.txt │ │ │ │ @@ -155,15 +155,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 26.302 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 14.195 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_visualize_cliques.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/_sources/tutorials/visualize_communities.rst.txt │ │ │ │ @@ -153,15 +153,15 @@ │ │ │ │ │ │ │ │ For an example on how to generate the cluster graph from a vertex cluster, │ │ │ │ check out :ref:`tutorials-cluster-graph`. │ │ │ │ │ │ │ │ │ │ │ │ .. rst-class:: sphx-glr-timing │ │ │ │ │ │ │ │ - **Total running time of the script:** (0 minutes 1.203 seconds) │ │ │ │ + **Total running time of the script:** (0 minutes 0.729 seconds) │ │ │ │ │ │ │ │ │ │ │ │ .. _sphx_glr_download_tutorials_visualize_communities.py: │ │ │ │ │ │ │ │ .. only:: html │ │ │ │ │ │ │ │ .. container:: sphx-glr-footer sphx-glr-footer-example │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/searchindex.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -458,147 +458,145 @@ │ │ │ │ │ "": [0, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19, 26, 28, 29, 30, 33, 34, 35], │ │ │ │ │ "0": [0, 3, 4, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], │ │ │ │ │ "00": 7, │ │ │ │ │ "000": 8, │ │ │ │ │ "0088ff": [8, 9], │ │ │ │ │ "01": [7, 8, 9], │ │ │ │ │ "013": 7, │ │ │ │ │ - "017": 28, │ │ │ │ │ "02": [7, 8, 9], │ │ │ │ │ "05": [8, 9], │ │ │ │ │ "052": 7, │ │ │ │ │ "058": 7, │ │ │ │ │ "067": 7, │ │ │ │ │ "073": 7, │ │ │ │ │ "079": 7, │ │ │ │ │ "08f": [8, 9], │ │ │ │ │ - "0x7f34292874d0": 12, │ │ │ │ │ - "0x7f3429394850": 30, │ │ │ │ │ - "0x7f3429397150": 19, │ │ │ │ │ - "1": [0, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], │ │ │ │ │ + "0x7f28ad7e34d0": 12, │ │ │ │ │ + "0x7f28adb3c850": 30, │ │ │ │ │ + "0x7f28adb3f150": 19, │ │ │ │ │ + "1": [0, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36], │ │ │ │ │ "10": [0, 4, 5, 7, 8, 9, 11, 13, 14, 15, 16, 26, 28], │ │ │ │ │ "100": [0, 8, 9, 15, 17, 19, 35, 36], │ │ │ │ │ "10000": 9, │ │ │ │ │ "11": [13, 14, 27, 28], │ │ │ │ │ "111223": 4, │ │ │ │ │ "112222": 4, │ │ │ │ │ - "114": 33, │ │ │ │ │ "12": [8, 9, 14, 28], │ │ │ │ │ "1205": [8, 9], │ │ │ │ │ "1252": 4, │ │ │ │ │ "126": [8, 9], │ │ │ │ │ "127": [8, 9], │ │ │ │ │ "1282": 27, │ │ │ │ │ "13": [14, 27], │ │ │ │ │ "136": 25, │ │ │ │ │ "137": 7, │ │ │ │ │ - "14": [11, 14], │ │ │ │ │ - "142": 7, │ │ │ │ │ - "149": 14, │ │ │ │ │ + "14": [11, 14, 34], │ │ │ │ │ + "142": [7, 33], │ │ │ │ │ "15": [8, 9, 15, 17, 18, 20, 21, 23, 33], │ │ │ │ │ "150": 11, │ │ │ │ │ "153": 7, │ │ │ │ │ + "154": 24, │ │ │ │ │ "16": 11, │ │ │ │ │ + "160": 29, │ │ │ │ │ "161": 7, │ │ │ │ │ + "164": 32, │ │ │ │ │ "169": 7, │ │ │ │ │ "1695": 5, │ │ │ │ │ "176": 7, │ │ │ │ │ "18": [8, 9, 20], │ │ │ │ │ "194": 7, │ │ │ │ │ + "195": 34, │ │ │ │ │ + "197": 11, │ │ │ │ │ "2": [0, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 23, 24, 26, 27, 28, 29, 30, 32, 33, 36], │ │ │ │ │ "20": [8, 9, 11, 15, 20, 25, 30, 33, 35, 36], │ │ │ │ │ "200": [17, 18], │ │ │ │ │ "2006": 5, │ │ │ │ │ "2009": [8, 9], │ │ │ │ │ "201": [7, 25], │ │ │ │ │ "2021": [8, 9], │ │ │ │ │ "2022": 3, │ │ │ │ │ - "203": 35, │ │ │ │ │ + "206": 12, │ │ │ │ │ "21": 20, │ │ │ │ │ "216": 7, │ │ │ │ │ + "219": 10, │ │ │ │ │ "22": [8, 9], │ │ │ │ │ "222": 21, │ │ │ │ │ - "223": 11, │ │ │ │ │ "23": [8, 9, 20], │ │ │ │ │ - "230": 24, │ │ │ │ │ "2386714": 9, │ │ │ │ │ + "244": 28, │ │ │ │ │ "25": [7, 8, 9, 23, 32], │ │ │ │ │ + "250": 13, │ │ │ │ │ + "252": 30, │ │ │ │ │ "255": [8, 9, 15, 18, 33], │ │ │ │ │ - "26": 34, │ │ │ │ │ - "268": 27, │ │ │ │ │ "270": [8, 9], │ │ │ │ │ "28": 20, │ │ │ │ │ "287": 7, │ │ │ │ │ + "288": 27, │ │ │ │ │ "29": [8, 9], │ │ │ │ │ + "295": 17, │ │ │ │ │ "2d": [8, 9, 19, 28, 31, 36], │ │ │ │ │ "2r09ej221sk2k5": 26, │ │ │ │ │ "3": [0, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36], │ │ │ │ │ "30": [8, 9, 10, 12, 13, 14, 19, 21, 27, 33], │ │ │ │ │ "300": [8, 9], │ │ │ │ │ - "302": 34, │ │ │ │ │ "30745059034535": 11, │ │ │ │ │ - "309": 29, │ │ │ │ │ "31": [8, 9], │ │ │ │ │ "313": 7, │ │ │ │ │ "3203ejew332323": 26, │ │ │ │ │ "320eljl3lk3239": 26, │ │ │ │ │ - "321": 32, │ │ │ │ │ - "325": 10, │ │ │ │ │ "332": 7, │ │ │ │ │ "34": [8, 9], │ │ │ │ │ - "346": 12, │ │ │ │ │ "35": 20, │ │ │ │ │ - "350": 16, │ │ │ │ │ "36": 31, │ │ │ │ │ "376": [8, 9], │ │ │ │ │ "38": 23, │ │ │ │ │ + "392": 23, │ │ │ │ │ "3d": [8, 9, 36], │ │ │ │ │ "4": [0, 4, 8, 9, 10, 12, 13, 14, 15, 19, 23, 24, 27, 29, 30, 32, 33, 34, 36], │ │ │ │ │ + "403": 20, │ │ │ │ │ "40m11919332msa": 26, │ │ │ │ │ "416": 7, │ │ │ │ │ - "431": 31, │ │ │ │ │ "44": 4, │ │ │ │ │ "47": [8, 9], │ │ │ │ │ + "474": 15, │ │ │ │ │ "477": 11, │ │ │ │ │ "494": 27, │ │ │ │ │ - "495": 13, │ │ │ │ │ - "499": 30, │ │ │ │ │ "4r4320dkqpdokk": 26, │ │ │ │ │ "5": [0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 23, 24, 25, 27, 28, 29, 31, 32, 33, 34, 36], │ │ │ │ │ "50": [8, 9, 11, 18], │ │ │ │ │ "500": 28, │ │ │ │ │ "504": 7, │ │ │ │ │ "516": [8, 9], │ │ │ │ │ "517": 6, │ │ │ │ │ - "519": 20, │ │ │ │ │ - "537": 15, │ │ │ │ │ - "6": [0, 8, 9, 10, 11, 12, 13, 14, 15, 24, 28, 29, 31, 33], │ │ │ │ │ + "550": 25, │ │ │ │ │ + "6": [0, 8, 9, 10, 11, 12, 13, 14, 15, 24, 29, 31], │ │ │ │ │ "600": [8, 9], │ │ │ │ │ + "624": 14, │ │ │ │ │ + "633": 21, │ │ │ │ │ + "646": 26, │ │ │ │ │ "65": 23, │ │ │ │ │ "666": 29, │ │ │ │ │ - "694": 21, │ │ │ │ │ + "697": 31, │ │ │ │ │ "7": [4, 8, 9, 10, 11, 12, 13, 14, 15, 18, 24, 27, 29], │ │ │ │ │ "711": 7, │ │ │ │ │ "7142cf": 27, │ │ │ │ │ + "729": 35, │ │ │ │ │ "735": 7, │ │ │ │ │ "753": 11, │ │ │ │ │ "759": 7, │ │ │ │ │ - "766": 23, │ │ │ │ │ "78": [8, 9], │ │ │ │ │ "789dsadafj32jj": 26, │ │ │ │ │ "8": [8, 9, 10, 11, 12, 13, 14, 15, 19, 24, 27, 29, 36], │ │ │ │ │ "80": 33, │ │ │ │ │ "8235063912693": 11, │ │ │ │ │ - "894": 18, │ │ │ │ │ + "834": 16, │ │ │ │ │ "9": [4, 8, 9, 13, 14, 15, 28], │ │ │ │ │ - "902": 19, │ │ │ │ │ - "946": 25, │ │ │ │ │ + "940": 18, │ │ │ │ │ + "951": 19, │ │ │ │ │ "951984126984126": 11, │ │ │ │ │ - "960": 26, │ │ │ │ │ - "968": 17, │ │ │ │ │ "970": 7, │ │ │ │ │ "A": [0, 4, 6, 8, 32, 33, 36], │ │ │ │ │ "And": 30, │ │ │ │ │ "As": [0, 6, 8, 14, 28], │ │ │ │ │ "At": 3, │ │ │ │ │ "But": 8, │ │ │ │ │ "By": 17, │ │ │ ├── ./usr/share/doc/python-igraph-doc/html/tutorials/articulation_points.html │ │ │ │ @@ -147,15 +147,15 @@ │ │ │ │ vertex_frame_width = [3 if v in articulation_points else 1 for v in g.vs], │ │ │ │ edge_width=0.8, │ │ │ │ edge_color='gray' │ │ │ │ ) │ │ │ │ plt.show() │ │ │ │ │ │ │ │ │ │ │ │ -articulation points

Total running time of the script: (0 minutes 0.325 seconds)

│ │ │ │ +articulation points

Total running time of the script: (0 minutes 0.219 seconds)

│ │ │ │ │ │ │ │ betweenness
vertices: 0.0 - 14.0
│ │ │ │  edges: 1.5 - 16.0
│ │ │ │  vertices: 0.0 - 753.8235063912693
│ │ │ │  edges: 8.951984126984126 - 477.30745059034535
│ │ │ │  
│ │ │ │
│ │ │ │ -

Total running time of the script: (0 minutes 5.223 seconds)

│ │ │ │ +

Total running time of the script: (0 minutes 3.197 seconds)

│ │ │ │ │ │ │ │ │ │ │ │ -bipartite matching
<igraph.drawing.matplotlib.graph.GraphArtist object at 0x7f34292874d0>
│ │ │ │ +bipartite matching
<igraph.drawing.matplotlib.graph.GraphArtist object at 0x7f28ad7e34d0>
│ │ │ │  
│ │ │ │
│ │ │ │ -

Total running time of the script: (0 minutes 0.346 seconds)

│ │ │ │ +

Total running time of the script: (0 minutes 0.206 seconds)

│ │ │ │
│ │ │ │
│ │ │ │ -bipartite matching maxflow

Total running time of the script: (0 minutes 0.495 seconds)

│ │ │ │ +bipartite matching maxflow

Total running time of the script: (0 minutes 0.250 seconds)

│ │ │ │ │ │ │ │ │ │ │ │ -bridges

Total running time of the script: (0 minutes 1.149 seconds)

│ │ │ │ +bridges

Total running time of the script: (0 minutes 0.624 seconds)

│ │ │ │ │ │ │ │ │ │ │ │ -cluster contraction

Total running time of the script: (0 minutes 4.537 seconds)

│ │ │ │ +cluster contraction

Total running time of the script: (0 minutes 2.474 seconds)

│ │ │ │ │ │ │ │ │ │ │ │ -Original graph, Complement graph, Union graph, Complement of union graph

Total running time of the script: (0 minutes 1.350 seconds)

│ │ │ │ +Original graph, Complement graph, Union graph, Complement of union graph

Total running time of the script: (0 minutes 0.834 seconds)

│ │ │ │ │ │ │ │
│ │ │ │

Note

│ │ │ │

To use a consistent style between individual plots (e.g. vertex sizes, │ │ │ │ colors, layout etc.) check out Visual styling.

│ │ │ │
│ │ │ │ -

Total running time of the script: (0 minutes 2.968 seconds)

│ │ │ │ +

Total running time of the script: (0 minutes 2.295 seconds)

│ │ │ │ │ │ │ │ connected components
│ │ │ │

Note

│ │ │ │

We use the integers from 0 to 200 instead of 0 to 255 in our vertex │ │ │ │ colors, since 255 in the igraph.drawing.colors.RainbowPalette │ │ │ │ corresponds to looping back to red. This gives us nicely distinct hues.

│ │ │ │
│ │ │ │ -

Total running time of the script: (0 minutes 1.894 seconds)

│ │ │ │ +

Total running time of the script: (0 minutes 0.940 seconds)

│ │ │ │ │ │ │ │

Because adjacent triangles share an edge/side, the graph now contains some │ │ │ │ edges more than once. It’s useful to simplify the graph to get rid of those │ │ │ │ multiedges, keeping each side only once:

│ │ │ │
g.simplify()
│ │ │ │  
│ │ │ │
│ │ │ │ -
<igraph.Graph object at 0x7f3429397150>
│ │ │ │ +
<igraph.Graph object at 0x7f28adb3f150>
│ │ │ │  
│ │ │ │
│ │ │ │

Finally, plotting the graph gives a good idea of what the triangulation looks │ │ │ │ like:

│ │ │ │
fig, ax = plt.subplots()
│ │ │ │  ig.plot(
│ │ │ │      g,
│ │ │ │ @@ -212,15 +212,15 @@
│ │ │ │      edge_width=0.2,
│ │ │ │      edge_color="white",
│ │ │ │  )
│ │ │ │  ax.set(xlim=(0, 1), ylim=(0, 1))
│ │ │ │  plt.show()
│ │ │ │  
│ │ │ │
│ │ │ │ -delaunay triangulation

Total running time of the script: (0 minutes 1.902 seconds)

│ │ │ │ +delaunay triangulation

Total running time of the script: (0 minutes 0.951 seconds)

│ │ │ │
│ │ │ │
│ │ │ │ -erdos renyi

Total running time of the script: (0 minutes 2.519 seconds)

│ │ │ │ +erdos renyi

Total running time of the script: (0 minutes 1.403 seconds)

│ │ │ │ │ │ │ │ │ │ │ │ -generate dag

Total running time of the script: (0 minutes 1.694 seconds)

│ │ │ │ +generate dag

Total running time of the script: (0 minutes 0.633 seconds)

│ │ │ │ │ │ │ │ │ │ │ │ -isomorphism

Total running time of the script: (0 minutes 0.766 seconds)

│ │ │ │ +isomorphism

Total running time of the script: (0 minutes 0.392 seconds)

│ │ │ │ │ │ │ │ │ │ │ │ -maxflow

Total running time of the script: (0 minutes 0.230 seconds)

│ │ │ │ +maxflow

Total running time of the script: (0 minutes 0.154 seconds)

│ │ │ │ │ │ │ │ │ │ │ │ -minimum spanning trees

Total running time of the script: (0 minutes 0.946 seconds)

│ │ │ │ +minimum spanning trees

Total running time of the script: (0 minutes 0.550 seconds)

│ │ │ │ │ │ │ │ │ │ │ │ -online user actions

Total running time of the script: (0 minutes 0.960 seconds)

│ │ │ │ +online user actions

Total running time of the script: (0 minutes 0.646 seconds)

│ │ │ │ │ │ │ │ │ │ │ │ -

Total running time of the script: (0 minutes 1.268 seconds)

│ │ │ │ +

Total running time of the script: (0 minutes 0.288 seconds)

│ │ │ │ │ │ │ │
│ │ │ │

Note

│ │ │ │

We use igraph’s Graph.subgraph() (see │ │ │ │ igraph.GraphBase.induced_subgraph()) in order to obtain a section of │ │ │ │ the ring graph at a time for each frame. While sufficient for an easy │ │ │ │ example, this approach is not very efficient. Thinking of more efficient │ │ │ │ approaches, e.g. vertices with zero radius, is a useful exercise to learn │ │ │ │ the combination of igraph and matplotlib.

│ │ │ │
│ │ │ │ -

Total running time of the script: (0 minutes 6.017 seconds)

│ │ │ │ +

Total running time of the script: (0 minutes 3.244 seconds)

│ │ │ │ │ │ │ │ │ │ │ │ -shortest path visualisation

Total running time of the script: (0 minutes 0.309 seconds)

│ │ │ │ +shortest path visualisation

Total running time of the script: (0 minutes 0.160 seconds)

│ │ │ │ │ │ │ │ -

Total running time of the script: (0 minutes 0.321 seconds)

│ │ │ │ +

Total running time of the script: (0 minutes 0.164 seconds)

│ │ │ │ │ │ │ │ │ │ │ │ -visual style

Total running time of the script: (0 minutes 6.114 seconds)

│ │ │ │ +visual style

Total running time of the script: (0 minutes 3.142 seconds)

│ │ │ │ │ │ │ │ │ │ │ │ -visualize cliques

Total running time of the script: (0 minutes 26.302 seconds)

│ │ │ │ +visualize cliques

Total running time of the script: (0 minutes 14.195 seconds)

│ │ │ │ │ │ │ │ │ │ │ │ visualize communities

For an example on how to generate the cluster graph from a vertex cluster, │ │ │ │ check out Generating Cluster Graphs.

│ │ │ │ -

Total running time of the script: (0 minutes 1.203 seconds)

│ │ │ │ +

Total running time of the script: (0 minutes 0.729 seconds)

│ │ │ │