From fdf1aaf92854b1753e3789f6046e9245d5efe969 Mon Sep 17 00:00:00 2001
From: Hamish Graham <hgraham@hpc-201-11-01-a.cr.cnaf.infn.it>
Date: Wed, 15 Sep 2021 10:44:39 +0200
Subject: [PATCH] moved monitoring_sim and pandas_skeleton to tree_maker foler

---
 examples/hamish_example/monitoring_sim.py  | 109 ---------------------
 examples/hamish_example/pandas_skeleton.py | 104 --------------------
 2 files changed, 213 deletions(-)
 delete mode 100644 examples/hamish_example/monitoring_sim.py
 delete mode 100644 examples/hamish_example/pandas_skeleton.py

diff --git a/examples/hamish_example/monitoring_sim.py b/examples/hamish_example/monitoring_sim.py
deleted file mode 100644
index 50a387a..0000000
--- a/examples/hamish_example/monitoring_sim.py
+++ /dev/null
@@ -1,109 +0,0 @@
-import pandas_skeleton as ps
-import tree_maker as tm
-from pandas import DataFrame
-
-from bokeh.layouts import column
-from bokeh.models import ColumnDataSource, Slider, WheelZoomTool, BoxZoomTool, Button, PanTool
-from bokeh.plotting import figure
-from bokeh.themes import Theme
-from bokeh.io import show, output_notebook
-from bokeh.models import Select
-
-def bkapp(doc, root, last_key, my_dict):
-    """
-    This creates an interactive plot showing a tree of jobs in a 'flower' shape.
-    """
-    global my_df
-    global source
-    global this_df
-    global my_df_plot
-    
-    try:
-        ps.create_tree(root)
-    except:
-        raise Exception('Sorry, I need a root of a tree!')
-        
-    x_values, y_values, path = ps.create_xypath(root)
-    my_colors = ps.create_color(root)
-    angles = ps.create_tree_cartesian(root)
-    
-    my_df = ps.create_df(root, path, x_values, y_values, my_colors)
-    
-    del my_df['handle']
-    
-    my_df_plot = my_df
-    
-    this_df = my_df.copy()
-    
-    final_status = my_dict['status'][-1]
-    
-    def callback(attr, _, index_list):
-        global my_df
-        global my_df_selected
-        global my_df_plot
-        source.data = ColumnDataSource.from_df(my_df_plot)
-        my_df_selected = my_df_plot.loc[index_list]
-
-    def initialise():
-        global my_df_plot
-        global my_df
-        my_df_plot = ps.update_color(this_df, my_dict, my_df)
-        my_df = ps.update_color(this_df, my_dict, my_df)
-    
-    def my_function(this_df, my_dict):
-        return my_dict['color'][my_dict['status'].index(this_df['status'])]
-    
-    def update_color():
-        global my_df_plot
-        global my_df
-        ps.update_status(root)
-        this_df['status'] = ps.create_status(root)
-        this_df['color'] = this_df.apply(lambda x: my_function(x, my_dict), axis=1)
-        my_df = this_df
-        my_df_plot = this_df
-
-    def update_color2():
-        global my_df_plot
-        global my_df
-        ps.update_status(root)
-        this_df['status'] = ps.create_status(root)
-        this_df['color'] = this_df.apply(lambda x: my_function(x, my_dict), axis=1)
-        my_df = this_df
-        my_df_plot = this_df
-        source.data = ColumnDataSource.from_df(my_df_plot)
-
-    update_color()
-    
-    source = ColumnDataSource(data=my_df_plot)
-    
-    TOOLTIPS = [
-    ('index', "@index"),
-    ('status', "@status"),
-    ('path', "@path")
-]
-    plot = figure(plot_width=400, plot_height=400, tools="lasso_select", title="Select Here", tooltips = TOOLTIPS)
-    plot.circle('x', 'y', source=source, alpha=0.6, size = 15, line_color="black", color = 'color')
-    plot.add_tools(BoxZoomTool(), WheelZoomTool(), PanTool())
-
-    source.selected.on_change('indices', callback)
-    
-    select = Select(title="Option:", value="plot", options=["full_df", f"{last_key}", f"not {last_key}"])
-
-    def callback1(attr, old, new):
-        global my_df_plot
-        if new == "full_df":
-            my_df_plot = my_df.copy()
-        if new == f"{last_key}":
-            my_df_plot = my_df[my_df.status == last_key].copy()
-        if new == f"not {last_key}":
-            my_df_plot = my_df[my_df.status != last_key].copy()
-        my_df_plot.reset_index(drop=True, inplace=True)
-        source.data = ColumnDataSource.from_df(my_df_plot)
-
-    select.on_change('value', callback1)
-    
-    button = Button(label="Update", button_type="success")
-
-    button.on_click(update_color2)
-
-    doc.add_root(column(plot, button, select))
\ No newline at end of file
diff --git a/examples/hamish_example/pandas_skeleton.py b/examples/hamish_example/pandas_skeleton.py
deleted file mode 100644
index 4626973..0000000
--- a/examples/hamish_example/pandas_skeleton.py
+++ /dev/null
@@ -1,104 +0,0 @@
-import tree_maker as tm
-import numpy as np
-import math
-import random
-from anytree import AnyNode, RenderTree
-import numpy as np
-import json
-import pandas as pd
-
-def create_tree(node):
-    """
-    Creates a tree with the shape of a 'flower'. The nodes that have attributes; x, y, ragius, short_path, angle, min_angle, max_angle and color.
-    """
-    if node.is_leaf:
-        pass
-    else:
-        if node.is_root:
-            node.x = 0
-            node.y = 0
-            node.radius = 0
-            #node.min_x = -2
-            #node.max_x = 2
-            node.short_path =  '/'.join(node.path.split('/')[-3:])
-            node.angle = 2 * math.pi
-            node.min_angle = 0
-            node.max_angle = 2 * math.pi
-            node.color = 'black'
-        for my_child, my_angle in zip(node.children, np.linspace(node.min_angle, node.max_angle, len(node.children))):
-            #my_child.min_x = xx - (node.max_x - node.min_x)/len(node.children)/2
-            #my_child.max_x = xx + (node.max_x - node.min_x)/len(node.children)/2
-            my_child.color = "black"
-            my_child.short_path =  '/'.join(my_child.path.split('/')[-3:])
-            my_child.angle = my_angle
-            my_child.min_angle = my_angle - (node.max_angle - node.min_angle)/len(node.children)/2
-            my_child.max_angle = my_angle + (node.max_angle - node.min_angle)/len(node.children)/2
-            my_child.radius = node.radius + 1
-            my_child.x = my_child.radius * math.cos(my_angle)
-            my_child.y = my_child.radius * math.sin(my_angle)
-            create_tree(my_child)
-            
-            
-def create_xypath(node):
-    """
-    Creates a list for x_values and y_values for the nodes of a tree.
-    """
-    x_values = [node.x]
-    y_values = [node.y]
-    path = [node.short_path]
-    for descendant in node.descendants:
-        x_values.append(descendant.x) 
-        y_values.append(descendant.y)
-        path.append(descendant.short_path)
-    return x_values, y_values, path
-
-def create_color(node):
-    """
-    Adds colors of nodes to an array.
-    """
-    my_colors = [node.color]
-    for descendant in node.descendants:
-        my_colors.append(descendant.color)
-    return my_colors
-
-def create_tree_cartesian(node):
-    """
-    Adds the angle attribute to an array.
-    """
-    angles = [node.angle]
-    for descendant in node.descendants:
-        angles.append(node.angle)
-    return angles
-
-def get_status(handle):
-    """
-    Returns last key, the status of the job, from 'log_file'. Incase of an empty log_file, 'None' is returned.
-    """
-    keys = list(tm.from_json(handle.log_file))
-    if len(keys) > 0:
-        return keys[-1]
-    else:
-        return None
-    
-def create_df(node, path, x_values, y_values, my_colors):
-    """
-    Creating a dataframe and its attributes. Here its attributes are; node, path, x_values, y_values and my_colors.
-    """
-    my_df = pd.DataFrame([node]+list(node.descendants), columns=['handle']).copy()
-    my_df['name'] = my_df['handle'].apply(lambda x:x.name)
-    my_df['path'] = path
-    my_df['x'] = x_values # to check the order
-    my_df['y'] = y_values # to check the order
-    my_df['status'] = my_df['handle'].apply(get_status)
-    my_df['color'] = my_colors
-    return my_df
-
-def update(my_df, last_key, my_color):
-    """
-    Filtering through the dataframe using the 'last_key'. The color that is connected to this 'last_key', can also be chosen.
-    """
-    new_df1 = my_df[(my_df.status == last_key)].copy()
-    new_df1['color'] = my_color
-    new_df2 = my_df[(my_df.status != last_key)].copy()
-    my_df = pd.concat([new_df1, new_df2]).sort_index()
-    return my_df
\ No newline at end of file
-- 
GitLab