-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathget_data.py
More file actions
114 lines (76 loc) · 2.65 KB
/
get_data.py
File metadata and controls
114 lines (76 loc) · 2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import pandas as pd
from sql_queries import *
from connect_to_db import db_query
from charts import *
import datetime
##get community health data
def community_health(obj):
##update sql string with user parameters
sql_string = create_health_query(obj)
#print(sql_string)
##call database with updated sql string
query_results = db_query(sql_string)
#print(query_results)
##create chart
health_bar_chart(query_results,obj)
##get multisig data
def multisig_analysis(obj2):
##update sql string with user parameters
sql_string = create_multisig_query(obj2)
#print(sql_string)
##call database with updated sql string
query_results = db_query(sql_string)
##create chart
multisig_sankey(query_results,obj2)
def snapshot_analysis(obj):
##update sql string with user parameters
sql_string = create_snapshot_query(obj)
print(sql_string)
##call database with updated sql string
query_results = db_query(sql_string)
##create chart
snapshot_chart(query_results,obj)
def role_activity(obj):
sql_string = role_activity_query(obj)
print(sql_string)
##call database with updated sql string
df = db_query(sql_string)
##filter for specific roles
df['role_list'] = df['role_list'].str.lower() #convert roles_list field to lowercase
lookup = "|".join(obj['roles'].split(',')).lower() #combining keywords with logical OR "|"
print(obj['roles'].split(','))
print(lookup)
df_filter = df[df['role_list'].str.contains(lookup,na=False)]
##remove first 3 characters
df_filter['days_since_latest_touchpoint_bin'] = df_filter['days_since_latest_touchpoint_bin'].str[3:]
df_pivot = df_filter.groupby(['days_since_latest_touchpoint_bin']).count().reset_index()
##create chart
role_activity_chart(df_pivot,obj)
def roles_analysis(obj):
sql_string = create_users_query(obj)
print(sql_string)
query_results = db_query(sql_string)
roles_chart(query_results,obj)
def discourse_analysis(obj):
sql_string = discourse_query(obj)
print(sql_string)
query_results = db_query(sql_string)
voteschart(query_results,obj)
##query_results.to_csv('images/'+obj['filename'])
#discourse_chart(query_results,obj)
##obj multisig
##obj2={
# 'wallet':'0xdfdf2d882d9ebce6c7eac3da9ab66cbfda263781',
# 'start_date':'2021-01-01',
# 'user':'aar0n'
# }
##multisig(obj2)
##object with parameters
# obj = {
# 'days':10,
# 'channel_id':'840982271309250590',
# 'discord_role_ids':r'Analytics Guild, Guest Pass',
# 'table_request':'active_table',
# 'user':'aar0n'
# }
# community_health(obj)