qqubb commited on
Commit
f9b174b
·
1 Parent(s): 956fd2d

added expanders for each card

Browse files
__pycache__/compliance_analysis.cpython-310.pyc CHANGED
Binary files a/__pycache__/compliance_analysis.cpython-310.pyc and b/__pycache__/compliance_analysis.cpython-310.pyc differ
 
app.py CHANGED
@@ -59,46 +59,8 @@ with project_col:
59
 
60
  if cards["project_file"]:
61
  project_cc = cards["project_file"]
62
-
63
- for section, items in project_cc.items():
64
- if section != 'card_details':
65
- st.header(section.replace('_', ' ').title()) # section header
66
- for key, details in items.items():
67
- if 'verbose' in details and 'value' in details:
68
- st.subheader(key.replace('_', ' ').title()) # section header
69
- # details['value'] = st.checkbox(details['verbose'], value=details['value'])
70
- if isinstance(details['value'], str):
71
- details['value'] = st.text_input(details['verbose'], value=details['value'])
72
- elif isinstance(details['value'], bool):
73
- details['value'] = st.checkbox(details['verbose'], value=details['value'])
74
- if 'verbose' not in details and 'value' not in details:
75
- st.subheader(key.replace('_', ' ').title()) # section header
76
- for key, details in details.items():
77
- st.subheader(key.replace('_', ' ').title()) # section header
78
- details['value'] = st.checkbox(details['verbose'], value=details['value'])
79
- st.divider()
80
- st.divider()
81
- # st.write("Updated Data:", project_cc)
82
-
83
- updated_project_cc = yaml.dump(project_cc, sort_keys=False)
84
-
85
- st.download_button(
86
- label=f"Download Updated Project CC as YAML",
87
- data=updated_project_cc,
88
- file_name="updated_project.yaml",
89
- mime="text/yaml"
90
- )
91
-
92
- with data_col:
93
-
94
- st.title("Data CC")
95
- if cards['data_files']:
96
- # selected_data_file = st.selectbox("Select a Data CC", cards['data_files'], format_func=format_card_label)
97
- # data_cc = selected_data_file[1]
98
- for card in cards['data_files']:
99
- data_cc = card[1]
100
- st.title(f"{card[0]}")
101
- for section, items in data_cc.items():
102
  if section != 'card_details':
103
  st.header(section.replace('_', ' ').title()) # section header
104
  for key, details in items.items():
@@ -106,26 +68,68 @@ with data_col:
106
  st.subheader(key.replace('_', ' ').title()) # section header
107
  # details['value'] = st.checkbox(details['verbose'], value=details['value'])
108
  if isinstance(details['value'], str):
109
- details['value'] = st.text_input(details['verbose'], value=details['value'], key=f"data_{card[0]}_{key}")
110
- elif isinstance(details['value'], bool):
111
- details['value'] = st.checkbox(details['verbose'], value=details['value'], key=f"data_{card[0]}_{details}_{key}")
112
  if 'verbose' not in details and 'value' not in details:
113
  st.subheader(key.replace('_', ' ').title()) # section header
114
  for key, details in details.items():
115
  st.subheader(key.replace('_', ' ').title()) # section header
116
- details['value'] = st.checkbox(details['verbose'], value=details['value'], key=f"data_{card[0]}_{details}_{key}")
117
  st.divider()
118
  st.divider()
119
- # st.write("Updated Data:", data_cc)
120
-
121
- data_cc_yaml_data = yaml.dump(data_cc, sort_keys=False)
122
-
123
  st.download_button(
124
- label=f"Download Updated {card[0]} CC as YAML",
125
- data=data_cc_yaml_data,
126
- file_name="updated_data.yaml",
127
  mime="text/yaml"
128
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
 
130
  with model_col:
131
 
@@ -135,35 +139,37 @@ with model_col:
135
  # model_cc = selected_data_file[1]
136
  for card in cards['model_files']:
137
  model_cc = card[1]
138
- st.title(f"{card[0]}")
139
- for section, items in model_cc.items():
140
- if section != 'card_details':
141
- st.header(section.replace('_', ' ').title()) # section header
142
- for key, details in items.items():
143
- if 'verbose' in details and 'value' in details:
144
- st.subheader(key.replace('_', ' ').title()) # section header
145
- # details['value'] = st.checkbox(details['verbose'], value=details['value'])
146
- if isinstance(details['value'], str):
147
- details['value'] = st.text_input(details['verbose'], value=details['value'], key=f"model_{card[0]}_{key}")
148
- elif isinstance(details['value'], bool):
149
- details['value'] = st.checkbox(details['verbose'], value=details['value'], key=f"model_{card[0]}_{details}_{key}")
150
- if 'verbose' not in details and 'value' not in details:
151
- st.subheader(key.replace('_', ' ').title()) # section header
152
- for key, details in details.items():
153
  st.subheader(key.replace('_', ' ').title()) # section header
154
- details['value'] = st.checkbox(details['verbose'], value=details['value'], key=f"model_{card[0]}_{details}_{key}")
155
- st.divider()
156
- st.divider()
157
- # st.write("Updated Data:", model_cc)
158
-
159
- model_cc_yaml_data = yaml.dump(model_cc, sort_keys=False)
160
-
161
- st.download_button(
162
- label=f"Download Updated {card[0]} CC as YAML",
163
- data=model_cc_yaml_data,
164
- file_name="updated_model.yaml",
165
- mime="text/yaml"
166
- )
 
 
 
 
 
 
 
 
 
 
 
167
 
168
  # # # # json_data = json.dumps(data, indent=2)
169
  # # # # st.download_button(
 
59
 
60
  if cards["project_file"]:
61
  project_cc = cards["project_file"]
62
+ with st.expander("project details"):
63
+ for section, items in project_cc.items():
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  if section != 'card_details':
65
  st.header(section.replace('_', ' ').title()) # section header
66
  for key, details in items.items():
 
68
  st.subheader(key.replace('_', ' ').title()) # section header
69
  # details['value'] = st.checkbox(details['verbose'], value=details['value'])
70
  if isinstance(details['value'], str):
71
+ details['value'] = st.text_input(details['verbose'], value=details['value'])
72
+ elif isinstance(details['value'], bool):
73
+ details['value'] = st.checkbox(details['verbose'], value=details['value'])
74
  if 'verbose' not in details and 'value' not in details:
75
  st.subheader(key.replace('_', ' ').title()) # section header
76
  for key, details in details.items():
77
  st.subheader(key.replace('_', ' ').title()) # section header
78
+ details['value'] = st.checkbox(details['verbose'], value=details['value'])
79
  st.divider()
80
  st.divider()
81
+ # st.write("Updated Data:", project_cc)
82
+
83
+ updated_project_cc = yaml.dump(project_cc, sort_keys=False)
84
+
85
  st.download_button(
86
+ label=f"Download Updated Project CC as YAML",
87
+ data=updated_project_cc,
88
+ file_name="updated_project.yaml",
89
  mime="text/yaml"
90
+ )
91
+ # else:
92
+ # st.write("Missing project file")
93
+
94
+ with data_col:
95
+
96
+ st.title("Data CC")
97
+ if cards['data_files']:
98
+ # selected_data_file = st.selectbox("Select a Data CC", cards['data_files'], format_func=format_card_label)
99
+ # data_cc = selected_data_file[1]
100
+ for card in cards['data_files']:
101
+ data_cc = card[1]
102
+ with st.expander(f"{card[0]}"):
103
+ for section, items in data_cc.items():
104
+ if section != 'card_details':
105
+ st.header(section.replace('_', ' ').title()) # section header
106
+ for key, details in items.items():
107
+ if 'verbose' in details and 'value' in details:
108
+ st.subheader(key.replace('_', ' ').title()) # section header
109
+ # details['value'] = st.checkbox(details['verbose'], value=details['value'])
110
+ if isinstance(details['value'], str):
111
+ details['value'] = st.text_input(details['verbose'], value=details['value'], key=f"data_{card[0]}_{key}")
112
+ elif isinstance(details['value'], bool):
113
+ details['value'] = st.checkbox(details['verbose'], value=details['value'], key=f"data_{card[0]}_{details}_{key}")
114
+ if 'verbose' not in details and 'value' not in details:
115
+ st.subheader(key.replace('_', ' ').title()) # section header
116
+ for key, details in details.items():
117
+ st.subheader(key.replace('_', ' ').title()) # section header
118
+ details['value'] = st.checkbox(details['verbose'], value=details['value'], key=f"data_{card[0]}_{details}_{key}")
119
+ st.divider()
120
+ st.divider()
121
+ # st.write("Updated Data:", data_cc)
122
+
123
+ data_cc_yaml_data = yaml.dump(data_cc, sort_keys=False)
124
+
125
+ st.download_button(
126
+ label=f"Download Updated {card[0]} CC as YAML",
127
+ data=data_cc_yaml_data,
128
+ file_name="updated_data.yaml",
129
+ mime="text/yaml"
130
+ )
131
+ # else:
132
+ # st.write("Missing data file")
133
 
134
  with model_col:
135
 
 
139
  # model_cc = selected_data_file[1]
140
  for card in cards['model_files']:
141
  model_cc = card[1]
142
+ with st.expander(f"{card[0]}"):
143
+ for section, items in model_cc.items():
144
+ if section != 'card_details':
145
+ st.header(section.replace('_', ' ').title()) # section header
146
+ for key, details in items.items():
147
+ if 'verbose' in details and 'value' in details:
 
 
 
 
 
 
 
 
 
148
  st.subheader(key.replace('_', ' ').title()) # section header
149
+ # details['value'] = st.checkbox(details['verbose'], value=details['value'])
150
+ if isinstance(details['value'], str):
151
+ details['value'] = st.text_input(details['verbose'], value=details['value'], key=f"model_{card[0]}_{key}")
152
+ elif isinstance(details['value'], bool):
153
+ details['value'] = st.checkbox(details['verbose'], value=details['value'], key=f"model_{card[0]}_{details}_{key}")
154
+ if 'verbose' not in details and 'value' not in details:
155
+ st.subheader(key.replace('_', ' ').title()) # section header
156
+ for key, details in details.items():
157
+ st.subheader(key.replace('_', ' ').title()) # section header
158
+ details['value'] = st.checkbox(details['verbose'], value=details['value'], key=f"model_{card[0]}_{details}_{key}")
159
+ st.divider()
160
+ st.divider()
161
+ # st.write("Updated Data:", model_cc)
162
+
163
+ model_cc_yaml_data = yaml.dump(model_cc, sort_keys=False)
164
+
165
+ st.download_button(
166
+ label=f"Download Updated {card[0]} CC as YAML",
167
+ data=model_cc_yaml_data,
168
+ file_name="updated_model.yaml",
169
+ mime="text/yaml"
170
+ )
171
+ # else:
172
+ # st.write("Missing data file")
173
 
174
  # # # # json_data = json.dumps(data, indent=2)
175
  # # # # st.download_button(
compliance_analysis.py CHANGED
@@ -269,11 +269,11 @@ def check_intended_purpose(dispositive_variables, project_cc, other_cc):
269
  dataset_intended_purposes = []
270
  model_intended_purposes = []
271
 
272
- if dispositive_variables['high_risk_ai_system'] == False:
273
  dispositive_variables['msg'].append(f"Not high-risk")
274
  return dispositive_variables
275
 
276
- if dispositive_variables['high_risk_ai_system'] == True:
277
  for key in project_cc['high_risk_ai_system']:
278
  if project_cc['high_risk_ai_system'][f'{key}']['value']:
279
  project_intended_purposes.append(key)
 
269
  dataset_intended_purposes = []
270
  model_intended_purposes = []
271
 
272
+ if dispositive_variables['ai_project_type']['high_risk_ai_system'] == False:
273
  dispositive_variables['msg'].append(f"Not high-risk")
274
  return dispositive_variables
275
 
276
+ if dispositive_variables['ai_project_type']['high_risk_ai_system'] == True:
277
  for key in project_cc['high_risk_ai_system']:
278
  if project_cc['high_risk_ai_system'][f'{key}']['value']:
279
  project_intended_purposes.append(key)