Skip to content

Commit

Permalink
strong components
Browse files Browse the repository at this point in the history
  • Loading branch information
mike dupont committed Oct 21, 2023
1 parent 1c3c6b6 commit 6a96e53
Show file tree
Hide file tree
Showing 21 changed files with 1,564 additions and 0 deletions.
127 changes: 127 additions & 0 deletions pyre/graphs/graphStrongComponent0.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
<html>
<head>
<meta charset="utf-8">

<script src="lib/bindings/utils.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/dist/vis-network.min.css" integrity="sha512-WgxfT5LWjfszlPHXRmBWHkV2eceiWTOBvrKCNbdgDYTHrT2AeLCGbF4sZlZw3UMN3WtL0tGUoIAKsu8mllg/XA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/vis-network.min.js" integrity="sha512-LnvoEWDFrqGHlHmDD2101OrLcbsfkrzoSpvtSQtxK3RMnRV0eOkhhBN2dXHKRrUU8p2DGRTk35n4O8nWSVe1mQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>


<center>
<h1></h1>
</center>

<!-- <link rel="stylesheet" href="../node_modules/vis/dist/vis.min.css" type="text/css" />
<script type="text/javascript" src="../node_modules/vis/dist/vis.js"> </script>-->
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6"
crossorigin="anonymous"
/>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf"
crossorigin="anonymous"
></script>


<center>
<h1></h1>
</center>
<style type="text/css">

#mynetwork {
width: 100%;
height: 800px;
background-color: #ffffff;
border: 1px solid lightgray;
position: relative;
float: left;
}






</style>
</head>


<body>
<div class="card" style="width: 100%">


<div id="mynetwork" class="card-body"></div>
</div>




<script type="text/javascript">

// initialize global variables.
var edges;
var nodes;
var allNodes;
var allEdges;
var nodeColors;
var originalNodes;
var network;
var container;
var options, data;
var filter = {
item : '',
property : '',
value : []
};





// This method is responsible for drawing the graph, returns the drawn network
function drawGraph() {
var container = document.getElementById('mynetwork');



// parsing and collecting nodes and edges from the python
nodes = new vis.DataSet([{"color": "#97c2fc", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_transitive_trace_frames", "label": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_transitive_trace_frames", "shape": "dot"}, {"color": "#97c2fc", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._get_or_populate_trace_frames", "label": "sapp.sapp.pipeline.model_generator.ModelGenerator._get_or_populate_trace_frames", "shape": "dot"}, {"color": "#97c2fc", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace", "label": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace", "shape": "dot"}, {"color": "#97c2fc", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame", "label": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame", "shape": "dot"}, {"color": "#97c2fc", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_annotations", "label": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_annotations", "shape": "dot"}, {"color": "#97c2fc", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_frame", "label": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_frame", "shape": "dot"}]);
edges = new vis.DataSet([{"from": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_transitive_trace_frames", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_transitive_trace_frames_to_sapp.sapp.pipeline.model_generator.ModelGenerator._get_or_populate_trace_frames", "to": "sapp.sapp.pipeline.model_generator.ModelGenerator._get_or_populate_trace_frames"}, {"from": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace_to_sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame", "to": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame"}, {"from": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace_to_sapp.sapp.pipeline.model_generator.ModelGenerator._generate_transitive_trace_frames", "to": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_transitive_trace_frames"}, {"from": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame_to_sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_annotations", "to": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_annotations"}, {"from": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_annotations", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_annotations_to_sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace", "to": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace"}, {"from": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_frame", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_frame_to_sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame", "to": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame"}, {"from": "sapp.sapp.pipeline.model_generator.ModelGenerator._get_or_populate_trace_frames", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._get_or_populate_trace_frames_to_sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_frame", "to": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_frame"}]);

nodeColors = {};
allNodes = nodes.get({ returnType: "Object" });
for (nodeId in allNodes) {
nodeColors[nodeId] = allNodes[nodeId].color;
}
allEdges = edges.get({ returnType: "Object" });
// adding nodes and edges to the graph
data = {nodes: nodes, edges: edges};

var options = {"nodes": {"font": {"size": 12, "color": "black"}, "shapeProperties": {"useBorderWithImage": true}}, "edges": {"length": 1050}, "physics": {"stabilization": {"enabled": true, "iterations": 1000}, "hierarchicalRepulsion": {"centralGravity": 0.0, "springLength": 700, "springConstant": 0.01, "nodeDistance": 750, "damping": 0.09}, "solver": "hierarchicalRepulsion", "timestep": 0.5}, "layout": {"hierarchical": {"enabled": true, "blockShifting": true, "parentCentralization": true, "sortMethod": "directed"}}};






network = new vis.Network(container, data, options);










return network;

}
drawGraph();
</script>
</body>
</html>
1 change: 1 addition & 0 deletions pyre/graphs/graphStrongComponent0.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"nodes": [{"color": "#97c2fc", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_transitive_trace_frames", "label": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_transitive_trace_frames", "shape": "dot"}, {"color": "#97c2fc", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._get_or_populate_trace_frames", "label": "sapp.sapp.pipeline.model_generator.ModelGenerator._get_or_populate_trace_frames", "shape": "dot"}, {"color": "#97c2fc", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace", "label": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace", "shape": "dot"}, {"color": "#97c2fc", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame", "label": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame", "shape": "dot"}, {"color": "#97c2fc", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_annotations", "label": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_annotations", "shape": "dot"}, {"color": "#97c2fc", "id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_frame", "label": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_frame", "shape": "dot"}], "edges": [{"id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_transitive_trace_frames_to_sapp.sapp.pipeline.model_generator.ModelGenerator._get_or_populate_trace_frames", "from": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_transitive_trace_frames", "to": "sapp.sapp.pipeline.model_generator.ModelGenerator._get_or_populate_trace_frames"}, {"id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace_to_sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame", "from": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace", "to": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame"}, {"id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace_to_sapp.sapp.pipeline.model_generator.ModelGenerator._generate_transitive_trace_frames", "from": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace", "to": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_transitive_trace_frames"}, {"id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame_to_sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_annotations", "from": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame", "to": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_annotations"}, {"id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_annotations_to_sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace", "from": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_annotations", "to": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_annotation_trace"}, {"id": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_frame_to_sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame", "from": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_frame", "to": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_raw_trace_frame"}, {"id": "sapp.sapp.pipeline.model_generator.ModelGenerator._get_or_populate_trace_frames_to_sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_frame", "from": "sapp.sapp.pipeline.model_generator.ModelGenerator._get_or_populate_trace_frames", "to": "sapp.sapp.pipeline.model_generator.ModelGenerator._generate_trace_frame"}]}
127 changes: 127 additions & 0 deletions pyre/graphs/graphStrongComponent1.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
<html>
<head>
<meta charset="utf-8">

<script src="lib/bindings/utils.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/dist/vis-network.min.css" integrity="sha512-WgxfT5LWjfszlPHXRmBWHkV2eceiWTOBvrKCNbdgDYTHrT2AeLCGbF4sZlZw3UMN3WtL0tGUoIAKsu8mllg/XA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/vis-network.min.js" integrity="sha512-LnvoEWDFrqGHlHmDD2101OrLcbsfkrzoSpvtSQtxK3RMnRV0eOkhhBN2dXHKRrUU8p2DGRTk35n4O8nWSVe1mQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>


<center>
<h1></h1>
</center>

<!-- <link rel="stylesheet" href="../node_modules/vis/dist/vis.min.css" type="text/css" />
<script type="text/javascript" src="../node_modules/vis/dist/vis.js"> </script>-->
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6"
crossorigin="anonymous"
/>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf"
crossorigin="anonymous"
></script>


<center>
<h1></h1>
</center>
<style type="text/css">

#mynetwork {
width: 100%;
height: 800px;
background-color: #ffffff;
border: 1px solid lightgray;
position: relative;
float: left;
}






</style>
</head>


<body>
<div class="card" style="width: 100%">


<div id="mynetwork" class="card-body"></div>
</div>




<script type="text/javascript">

// initialize global variables.
var edges;
var nodes;
var allNodes;
var allEdges;
var nodeColors;
var originalNodes;
var network;
var container;
var options, data;
var filter = {
item : '',
property : '',
value : []
};





// This method is responsible for drawing the graph, returns the drawn network
function drawGraph() {
var container = document.getElementById('mynetwork');



// parsing and collecting nodes and edges from the python
nodes = new vis.DataSet([{"color": "#97c2fc", "id": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive", "label": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive", "shape": "dot"}, {"color": "#97c2fc", "id": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_object", "label": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_object", "shape": "dot"}, {"color": "#97c2fc", "id": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_array", "label": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_array", "shape": "dot"}, {"color": "#97c2fc", "id": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_template", "label": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_template", "shape": "dot"}]);
edges = new vis.DataSet([{"from": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive", "id": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive_to_watchman.watchman.python.pywatchman.pybser.Bunser.unser_object", "to": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_object"}, {"from": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive", "id": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive_to_watchman.watchman.python.pywatchman.pybser.Bunser.unser_array", "to": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_array"}, {"from": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive", "id": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive_to_watchman.watchman.python.pywatchman.pybser.Bunser.unser_template", "to": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_template"}, {"from": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_template", "id": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_template_to_watchman.watchman.python.pywatchman.pybser.Bunser.unser_array", "to": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_array"}]);

nodeColors = {};
allNodes = nodes.get({ returnType: "Object" });
for (nodeId in allNodes) {
nodeColors[nodeId] = allNodes[nodeId].color;
}
allEdges = edges.get({ returnType: "Object" });
// adding nodes and edges to the graph
data = {nodes: nodes, edges: edges};

var options = {"nodes": {"font": {"size": 12, "color": "black"}, "shapeProperties": {"useBorderWithImage": true}}, "edges": {"length": 1050}, "physics": {"stabilization": {"enabled": true, "iterations": 1000}, "hierarchicalRepulsion": {"centralGravity": 0.0, "springLength": 700, "springConstant": 0.01, "nodeDistance": 750, "damping": 0.09}, "solver": "hierarchicalRepulsion", "timestep": 0.5}, "layout": {"hierarchical": {"enabled": true, "blockShifting": true, "parentCentralization": true, "sortMethod": "directed"}}};






network = new vis.Network(container, data, options);










return network;

}
drawGraph();
</script>
</body>
</html>
1 change: 1 addition & 0 deletions pyre/graphs/graphStrongComponent1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"nodes": [{"color": "#97c2fc", "id": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive", "label": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive", "shape": "dot"}, {"color": "#97c2fc", "id": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_object", "label": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_object", "shape": "dot"}, {"color": "#97c2fc", "id": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_array", "label": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_array", "shape": "dot"}, {"color": "#97c2fc", "id": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_template", "label": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_template", "shape": "dot"}], "edges": [{"id": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive_to_watchman.watchman.python.pywatchman.pybser.Bunser.unser_object", "from": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive", "to": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_object"}, {"id": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive_to_watchman.watchman.python.pywatchman.pybser.Bunser.unser_array", "from": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive", "to": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_array"}, {"id": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive_to_watchman.watchman.python.pywatchman.pybser.Bunser.unser_template", "from": "watchman.watchman.python.pywatchman.pybser.Bunser.loads_recursive", "to": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_template"}, {"id": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_template_to_watchman.watchman.python.pywatchman.pybser.Bunser.unser_array", "from": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_template", "to": "watchman.watchman.python.pywatchman.pybser.Bunser.unser_array"}]}
Loading

0 comments on commit 6a96e53

Please sign in to comment.