summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Holmes <mike.holmes@linaro.org>2020-08-14 12:02:30 +0100
committerMike Holmes <mike.holmes@linaro.org>2020-08-14 12:02:30 +0100
commit0742edd1b16460b9a2c2280f9e71ea1505f3c1b3 (patch)
treec42a6dd33dd723bd63465a904d98ff2895ca1ec3
parent2e0fcfdee23d84408c0b868f0b3904105ddb3976 (diff)
include lists
-rw-r--r--project_dependance.py105
1 files changed, 87 insertions, 18 deletions
diff --git a/project_dependance.py b/project_dependance.py
index a8afe48..4bb19a1 100644
--- a/project_dependance.py
+++ b/project_dependance.py
@@ -22,7 +22,9 @@ parser.add_argument("--department_group", default=False, action='store_true', he
parser.add_argument("--all_projects", default=False, action='store_true', help="list all projects")
parser.add_argument("--verbose", default=False, action='store_true', help="verbose")
parser.add_argument("--filter_list", default=[], nargs='+', help="filter out a node name, such as team, project or member")
-parser.add_argument("--include_list", default=[], nargs='+', help="filter out a node name, such as team, project or member")
+parser.add_argument("--include_company_list", default=[], nargs='+', help="filter out a node name, such as team, project or member")
+parser.add_argument("--include_project_list", default=[], nargs='+', help="filter out a node name, such as team, project or member")
+parser.add_argument("--include_team_list", default=[], nargs='+', help="filter out a node name, such as team, project or member")
parser.add_argument("--center_on", help="center on a specific node which can be a company, team or project")
args = parser.parse_args()
@@ -70,6 +72,59 @@ def filter_node(data, filter_list):
return(data)
+def include_company_node(data, include_list):
+ if (args.verbose == 1):
+ print (data)
+ print("")
+ print ("including ",include_list)
+
+ if include_list:
+ if 'Assignee Company' in data.columns:
+ data_filter = data['Assignee Company'].isin(include_list)
+ data = data[data_filter]
+
+ if (args.verbose == 1):
+ print (data)
+ print("")
+
+ return(data)
+
+def include_project_node(data, include_list):
+ if (args.verbose == 1):
+ print (data)
+ print("")
+ print ("including ",include_list)
+
+ if include_list:
+ if 'Project' in data.columns:
+ data_filter = data['Project'].isin(include_list)
+ data = data[data_filter]
+ if 'project' in data.columns:
+ data_filter = data['project'].isin(include_list)
+ data = data[data_filter]
+
+ if (args.verbose == 1):
+ print (data)
+ print("")
+
+ return(data)
+
+def include_team_node(data, include_list):
+ if (args.verbose == 1):
+ print (data)
+ print("")
+ print ("including ",include_list)
+
+ if include_list:
+ if 'Assignee Team' in data.columns:
+ data_filter = data['Assignee Team'].isin(include_list)
+ data = data[data_filter]
+
+ if (args.verbose == 1):
+ print (data)
+ print("")
+
+ return(data)
#Read all the data
@@ -77,37 +132,52 @@ def filter_node(data, filter_list):
#Assignee Team | Project | Count Unique assignee
url="https://docs.google.com/spreadsheets/d/e/2PACX-1vSGKF1LA9ONNq1S3ZTb-7hk-kJ7XlXdVQKDFmFJbTpLa0u_cVqTTjHkA8TdxougbN_DvmdiVbsZJ9UY/pub?gid=954864288&single=true&output=csv"
team_project = pd.read_csv(url)
+team_project = filter_node(team_project, args.filter_list)
+team_project = include_project_node(team_project, args.include_project_list)
#Engineers in JIRA - Governing Entitiy
#Governing Entity | project
url = 'https://docs.google.com/spreadsheets/d/e/2PACX-1vSGKF1LA9ONNq1S3ZTb-7hk-kJ7XlXdVQKDFmFJbTpLa0u_cVqTTjHkA8TdxougbN_DvmdiVbsZJ9UY/pub?gid=1685920531&single=true&output=csv'
governing_project = pd.read_csv(url)
+governing_project = filter_node(governing_project, args.filter_list)
+governing_project = include_project_node(governing_project, args.include_project_list)
#Engineers in JIRA - OCE Department _ Team JIRA
#department | team | type
url ="https://docs.google.com/spreadsheets/d/e/2PACX-1vSGKF1LA9ONNq1S3ZTb-7hk-kJ7XlXdVQKDFmFJbTpLa0u_cVqTTjHkA8TdxougbN_DvmdiVbsZJ9UY/pub?gid=1268085837&single=true&output=csv"
department_team_type = pd.read_csv(url)
+department_team_type = filter_node(department_team_type, args.filter_list)
+department_team_type = include_team_node(department_team_type, args.include_project_list)
+
#Engineers in JIRA - Project Link types
#project linked project dependson relates to
url = "https://docs.google.com/spreadsheets/d/e/2PACX-1vSGKF1LA9ONNq1S3ZTb-7hk-kJ7XlXdVQKDFmFJbTpLa0u_cVqTTjHkA8TdxougbN_DvmdiVbsZJ9UY/pub?gid=1744118841&single=true&output=csv"
project_links = pd.read_csv(url,names=["project", "linked", "depends_on", "relates_to"],skiprows=2)
+project_links = filter_node(project_links, args.filter_list)
+project_links = include_project_node(project_links, args.include_project_list)
#Engineers in JIRA - Companies in Projects
#compay : project
url = "https://docs.google.com/spreadsheets/d/e/2PACX-1vSGKF1LA9ONNq1S3ZTb-7hk-kJ7XlXdVQKDFmFJbTpLa0u_cVqTTjHkA8TdxougbN_DvmdiVbsZJ9UY/pub?gid=1310895524&single=true&output=csv"
company_project = pd.read_csv(url)
+company_project = filter_node(company_project, args.filter_list)
+company_project = include_company_node(company_project, args.include_company_list)
+
+
+
+
+
if (args.governing_group == 1):
mylist = defaultdict(list)
print ("//cluster governance")
- data = filter_node(governing_project, args.filter_list)
- for row in data.index:
+ for row in governing_project.index:
#same Governing Entity
- if data['Governing Entity'][row]:
- mylist[data['Governing Entity'][row]].append(data['project name'][row])
+ if governing_project['Governing Entity'][row]:
+ mylist[governing_project['Governing Entity'][row]].append(governing_project['project name'][row])
for gov in mylist:
print ( "")
@@ -126,12 +196,10 @@ if (args.department_group == 1):
mylist = defaultdict(list)
print ("//cluster departments")
- filter_node(department_team_type, args.filter_list)
-
- for row in data.index:
+ for row in department_team_type.index:
#same Governing Entity
- if data['Assignee Department'][row]:
- mylist[data['Assignee Department'][row]].append(data['Assignee Team'][row])
+ if department_team_type['Assignee Department'][row]:
+ mylist[department_team_type['Assignee Department'][row]].append(department_team_type['Assignee Team'][row])
print("")
for gov in mylist:
@@ -148,6 +216,7 @@ data = filter_node(team_project, args.filter_list)
print("")
if (args.teams == 1):
print ("//generate Teams with a with a unique shape and colour")
+ data.drop_duplicates(subset='Assignee Team')
for row in data.index:
print (" \"", data['Assignee Team'][row],"\"", " [", "fillcolor=yellow, style=\"rounded,filled\", shape=diamond","]", sep='')
@@ -176,28 +245,26 @@ data.fillna(0, inplace=True)
if (args.relates == 1):
print("")
print ("//generate relates to links")
-for row in data.index:
- if data['relates_to'][row]:
-
+ for row in data.index:
+ if data['relates_to'][row]:
print (" \"", data['project'][row],"\"", " -> ", "\"", data['linked'][row],"\"", " [", "label=\"R",
int(data['relates_to'][row]),"\"", " weight=", data['relates_to'][row]," color=blue", " style=dotted ","]", sep='')
if (args.dependance == 1):
print("")
print ("//generate depends on links")
-for row in data.index:
- if data['depends_on'][row]:
+ for row in data.index:
+ if data['depends_on'][row]:
print (" \"",data['project'][row],"\"", " -> ", "\"",data['linked'][row],"\""," [", " taillabel=\"D",
int(data['depends_on'][row]),"\"", " weight=",data['depends_on'][row], "]", sep='' )
print("")
-data = filter_node(company_project, args.filter_list)
-
if (args.company == 1):
print("")
- print ("// generate the graph for assignee teams to projects")
+ print ("// generate the graph for assignee teams to projects")
+ data = filter_node(company_project, args.filter_list)
for row in data.index:
print (" \"", data['Assignee Company'][row],"\"", " -> ", "\"", data['Project'][row],"\"", " [", "taillabel=\"A",
int(data['COUNTUNIQUE of Assignee'][row]),"\"", " weight=",
@@ -206,6 +273,8 @@ if (args.company == 1):
if (args.company == 1):
print("")
print ("// generate company shape and colour")
+
+ data = filter_node(company_project, args.filter_list)
#remove duplicates
data.drop_duplicates(subset="Assignee Company", keep = 'first', inplace = True)
for row in data.index: