Spaces:
Runtime error
Runtime error
| import json | |
| import os | |
| import streamlit as st | |
| # Define the fields for the JSONL file | |
| FIELDS = [ | |
| "CodeValue", | |
| "CodeType", | |
| "Context", | |
| "Question", | |
| "AnswerText", | |
| "UpVoteCount", | |
| "DownVoteCount", | |
| "VoteComment", | |
| ] | |
| # Define the IO file pattern | |
| IO_PATTERN = "*.jsonl" | |
| def read_jsonl_file(file_path): | |
| """Read a JSONL file and return a list of dictionaries.""" | |
| if not os.path.exists(file_path): | |
| return [] | |
| with open(file_path, "r") as f: | |
| lines = f.readlines() | |
| records = [json.loads(line) for line in lines] | |
| return records | |
| def write_jsonl_file(file_path, records): | |
| """Write a list of dictionaries to a JSONL file.""" | |
| with open(file_path, "w") as f: | |
| for record in records: | |
| f.write(json.dumps(record) + "\n") | |
| def main(): | |
| # Get the list of JSONL files in the current directory | |
| jsonl_files = [f for f in os.listdir() if f.endswith(".jsonl")] | |
| # If there are no JSONL files, create one | |
| if not jsonl_files: | |
| st.warning("No JSONL files found. Creating new file.") | |
| jsonl_files.append("data.jsonl") | |
| # Display the list of JSONL files | |
| selected_file = st.sidebar.selectbox("Select JSONL file", jsonl_files) | |
| st.sidebar.write(f"Selected file: {selected_file}") | |
| # Read the selected JSONL file | |
| records = read_jsonl_file(selected_file) | |
| # Autogenerate labels and inputs for the fields | |
| for field in FIELDS: | |
| value = st.text_input(field, key=field) | |
| st.write(f"{field}: {value}") | |
| # Add a record to the JSONL file | |
| if st.button("Add Record"): | |
| record = {field: st.session_state[field] for field in FIELDS} | |
| records.append(record) | |
| write_jsonl_file(selected_file, records) | |
| st.success("Record added!") | |
| # Display the current contents of the JSONL file | |
| st.write(f"Current contents of {selected_file}:") | |
| for record in records: | |
| st.write(record) | |
| if __name__ == "__main__": | |
| main() | |