GNU bug report logs - #61888
[PATCH] guix: add edgelist graph-backend.

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: guix-patches; Reported by: kyle <kyle@HIDDEN>; Keywords: patch; merged with #61527; dated Wed, 1 Mar 2023 03:49:02 UTC; Maintainer for guix-patches is guix-patches@HIDDEN.
Merged 61527 61888. Request was from Liliana Marie Prikler <liliana.prikler@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 1 Mar 2023 03:48:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Feb 28 22:48:48 2023
Received: from localhost ([127.0.0.1]:52337 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1pXDSR-0006Zc-SE
	for submit <at> debbugs.gnu.org; Tue, 28 Feb 2023 22:48:48 -0500
Received: from lists.gnu.org ([209.51.188.17]:41574)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <kyle@HIDDEN>) id 1pXDSP-0006ZT-6W
 for submit <at> debbugs.gnu.org; Tue, 28 Feb 2023 22:48:45 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <kyle@HIDDEN>) id 1pXDSP-0007OU-05
 for guix-patches@HIDDEN; Tue, 28 Feb 2023 22:48:45 -0500
Received: from mout02.posteo.de ([185.67.36.66])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <kyle@HIDDEN>) id 1pXDSM-00071b-Ij
 for guix-patches@HIDDEN; Tue, 28 Feb 2023 22:48:44 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 43E92240122
 for <guix-patches@HIDDEN>; Wed,  1 Mar 2023 04:48:39 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1677642519; bh=fdGlvXiPuH8tU1+mBcLEDS91AtGZ4WFR7NM964lrbHw=;
 h=From:To:Cc:Subject:Date:From;
 b=DLOTYjcBbMGlLeGcOrdSyhkzJsqMvOH6y5P2cdRFFU+dsffMQptjNvukhxKDoTrkO
 rHI8SwJ8wqOtGDaPj9k6uX5Re+5XTtHhNxKz1ow8K79NkioRjceZ+wrRNse64RpqLB
 3J31hKGOQLRVDchmHllYOrpfzFWTsFOgZHmle/eiKNus8kaGGt5x+VvzDsh4lDds8Y
 4dzs2wpOgCZrfq52c0gtNg1/cHGKIsmAtWypzIjgjT1z63kIVgTzlYVGbz5XVA0UR4
 OoqJpG71U2RQ10WwjUlR77QZa4X8f5Ex0lPvpojCgfjZRPqDNl6bHgMXZzYOMAHC0/
 91zN6UTy7K/gw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4PRKw54313z6tmB;
 Wed,  1 Mar 2023 04:48:37 +0100 (CET)
From: kyle <kyle@HIDDEN>
To: guix-patches@HIDDEN
Subject: [PATCH] guix: add edgelist graph-backend.
Date: Wed, 01 Mar 2023 03:48:35 +0000
Message-Id: <0019ab80bbec15bbd5ae52e18d9a3dd6fd708a78.1677642438.git.kyle@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Received-SPF: pass client-ip=185.67.36.66; envelope-from=kyle@HIDDEN;
 helo=mout02.posteo.de
X-Spam_score_int: -43
X-Spam_score: -4.4
X-Spam_bar: ----
X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: submit
Cc: Kyle Andrews <kyle@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

From: Kyle Andrews <kyle@HIDDEN>

* guix/graph.scm: Add csv backend.
---
 doc/guix.texi  | 14 ++++++++------
 guix/graph.scm | 21 ++++++++++++++++++++-
 2 files changed, 28 insertions(+), 7 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 27a0c62532..09d6be4edb 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -14844,16 +14844,18 @@ Invoking guix graph
 Packages and their dependencies form a @dfn{graph}, specifically a
 directed acyclic graph (DAG).  It can quickly become difficult to have a
 mental model of the package DAG, so the @command{guix graph} command
-provides a visual representation of the DAG@.  By default,
-@command{guix graph} emits a DAG representation in the input format of
+provides a visual representation of the DAG@.  By default, @command{guix
+graph} emits a DAG representation in the input format of
 @uref{https://www.graphviz.org/, Graphviz}, so its output can be passed
 directly to the @command{dot} command of Graphviz.  It can also emit an
 HTML page with embedded JavaScript code to display a ``chord diagram''
 in a Web browser, using the @uref{https://d3js.org/, d3.js} library, or
 emit Cypher queries to construct a graph in a graph database supporting
-the @uref{https://www.opencypher.org/, openCypher} query language.  With
-@option{--path}, it simply displays the shortest path between two
-packages.  The general syntax is:
+the @uref{https://www.opencypher.org/, openCypher} query language.  It
+can also emit a CSV table with the raw data required to reconstruct the
+graph using generic network analysis software like
+@uref{https://igraph.org/, igraph}. With @option{--path}, it simply
+displays the shortest path between two packages.  The general syntax is:
 
 @example
 guix graph @var{options} @var{package}@dots{}
@@ -15061,7 +15063,7 @@ Invoking guix graph
 @item --list-backends
 List the supported graph backends.
 
-Currently, the available backends are Graphviz and d3.js.
+Currently, the available backends are Graphviz, Cypher, d3.js, and csv.
 
 @item --path
 Display the shortest path between two nodes of the type specified by
diff --git a/guix/graph.scm b/guix/graph.scm
index 41219ab67d..6a3f802da9 100644
--- a/guix/graph.scm
+++ b/guix/graph.scm
@@ -255,6 +255,24 @@ (define %graphviz-backend
                  emit-prologue emit-epilogue
                  emit-node emit-edge))
 
+(define (emit-csv-prologue name port)
+  (display "table, from, to\n" port))
+
+(define (emit-csv-epilogue port)
+  (display "" port))
+
+(define (emit-csv-node id label port)
+  (format port "package, ~a, ~a\n" label id))
+
+(define (emit-csv-edge id1 id2 port)
+  (format port "depends, ~a, ~a\n" id1 id2))
+
+(define %csv-backend
+  (graph-backend "csv"
+                 "Generate graph in CSV format"
+                 emit-csv-prologue emit-csv-epilogue
+                 emit-csv-node emit-csv-edge))
+
 
 ;;;
 ;;; d3js export.
@@ -338,7 +356,8 @@ (define %cypher-backend
 (define %graph-backends
   (list %graphviz-backend
         %d3js-backend
-        %cypher-backend))
+        %cypher-backend
+        %csv-backend))
 
 (define (lookup-backend name)
   "Return the graph backend called NAME.  Raise an error if it is not found."
-- 
2.37.2





Acknowledgement sent to kyle <kyle@HIDDEN>:
New bug report received and forwarded. Copy sent to guix-patches@HIDDEN. Full text available.
Report forwarded to guix-patches@HIDDEN:
bug#61888; Package guix-patches. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Wed, 1 Mar 2023 09:45:01 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.