Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -32,6 +32,15 @@ st.markdown("""
|
|
32 |
border-radius: 12px;
|
33 |
margin-bottom: 1rem;
|
34 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
</style>
|
36 |
""", unsafe_allow_html=True)
|
37 |
|
@@ -124,11 +133,11 @@ def is_valid_date(value):
|
|
124 |
return False
|
125 |
|
126 |
if not metadata_df.empty:
|
127 |
-
st.subheader("
|
128 |
st.dataframe(metadata_df.head())
|
129 |
|
130 |
# Metadata completeness analysis (enhanced)
|
131 |
-
st.subheader("
|
132 |
completeness = metadata_df.map(lambda x: not is_incomplete(x)).mean() * 100
|
133 |
completeness_df = pd.DataFrame({"Field": completeness.index, "Completeness (%)": completeness.values})
|
134 |
fig = px.bar(completeness_df, x="Field", y="Completeness (%)", title="Metadata Completeness by Field")
|
@@ -138,19 +147,19 @@ if not metadata_df.empty:
|
|
138 |
incomplete_mask = metadata_df.map(is_incomplete).any(axis=1)
|
139 |
incomplete_records = metadata_df[incomplete_mask]
|
140 |
|
141 |
-
st.subheader("
|
142 |
if not incomplete_records.empty:
|
143 |
st.dataframe(incomplete_records.astype(str))
|
144 |
else:
|
145 |
st.success("All metadata fields are complete in this collection!")
|
146 |
|
147 |
-
st.subheader("
|
148 |
if not incomplete_records.empty:
|
149 |
st.write(incomplete_records[['id', 'title']])
|
150 |
else:
|
151 |
st.success("All records are complete!")
|
152 |
|
153 |
-
st.subheader("
|
154 |
filled_descriptions = metadata_df[metadata_df['description'].notnull()]['description'].astype(str)
|
155 |
if len(filled_descriptions) > 1:
|
156 |
try:
|
|
|
32 |
border-radius: 12px;
|
33 |
margin-bottom: 1rem;
|
34 |
}
|
35 |
+
.stAlert {
|
36 |
+
background-color: #f0f0f5 !important;
|
37 |
+
color: #333333 !important;
|
38 |
+
padding: 1.25rem !important;
|
39 |
+
font-size: 1rem !important;
|
40 |
+
border-radius: 0.5rem !important;
|
41 |
+
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05) !important;
|
42 |
+
}
|
43 |
+
|
44 |
</style>
|
45 |
""", unsafe_allow_html=True)
|
46 |
|
|
|
133 |
return False
|
134 |
|
135 |
if not metadata_df.empty:
|
136 |
+
st.subheader("Retrieved Metadata Sample")
|
137 |
st.dataframe(metadata_df.head())
|
138 |
|
139 |
# Metadata completeness analysis (enhanced)
|
140 |
+
st.subheader("Metadata Completeness Analysis")
|
141 |
completeness = metadata_df.map(lambda x: not is_incomplete(x)).mean() * 100
|
142 |
completeness_df = pd.DataFrame({"Field": completeness.index, "Completeness (%)": completeness.values})
|
143 |
fig = px.bar(completeness_df, x="Field", y="Completeness (%)", title="Metadata Completeness by Field")
|
|
|
147 |
incomplete_mask = metadata_df.map(is_incomplete).any(axis=1)
|
148 |
incomplete_records = metadata_df[incomplete_mask]
|
149 |
|
150 |
+
st.subheader("Records with Incomplete Metadata")
|
151 |
if not incomplete_records.empty:
|
152 |
st.dataframe(incomplete_records.astype(str))
|
153 |
else:
|
154 |
st.success("All metadata fields are complete in this collection!")
|
155 |
|
156 |
+
st.subheader("Identifiers of Items Needing Metadata Updates")
|
157 |
if not incomplete_records.empty:
|
158 |
st.write(incomplete_records[['id', 'title']])
|
159 |
else:
|
160 |
st.success("All records are complete!")
|
161 |
|
162 |
+
st.subheader("Suggested Metadata Enhancements")
|
163 |
filled_descriptions = metadata_df[metadata_df['description'].notnull()]['description'].astype(str)
|
164 |
if len(filled_descriptions) > 1:
|
165 |
try:
|