iisadia commited on
Commit
ccb5208
·
verified ·
1 Parent(s): 40d425f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -16
app.py CHANGED
@@ -1,6 +1,7 @@
1
  import streamlit as st
2
  import requests
3
  from fpdf import FPDF
 
4
  import os
5
  import time
6
 
@@ -109,21 +110,33 @@ def main():
109
 
110
  # Input options
111
  st.markdown("### Enter Requirements")
112
- st.markdown("You can enter up to **5 requirements** at a time. Each requirement should be **clear and concise**.")
113
- input_text = st.text_area("Enter your requirements (one per line or separated by periods):", height=150)
114
 
115
  requirements = []
116
- if input_text:
117
- # Split by periods or newlines
118
- requirements = [req.strip() for req in input_text.replace("\n", ".").split(".") if req.strip()]
119
- if len(requirements) > 5:
120
- st.warning("You have entered more than 5 requirements. Only the first 5 will be analyzed.")
121
- requirements = requirements[:5]
 
 
 
 
 
 
 
 
 
 
 
 
122
 
123
  # Analyze requirements
124
  if st.button("Analyze Requirements"):
125
  if not requirements:
126
- st.warning("Please enter at least one requirement.")
127
  else:
128
  results = []
129
  for req in requirements:
@@ -133,13 +146,15 @@ def main():
133
  # Display results
134
  st.subheader("Analysis Results")
135
  for i, result in enumerate(results, start=1):
136
- st.markdown(f"### Requirement R{i}: {result['Requirement']}")
137
- st.markdown(f"**Type:** {result['Type']}")
138
- st.markdown(f"**Stakeholders:** {result['Stakeholders']}")
139
- st.markdown(f"**Domain:** {result['Domain']}")
140
- st.markdown(f"**Defects:** {result['Defects']}")
141
- st.markdown(f"**Rewritten:** {result['Rewritten']}")
142
- st.markdown("---")
 
 
143
 
144
  # Generate and download PDF report
145
  pdf_report = generate_pdf_report(results)
 
1
  import streamlit as st
2
  import requests
3
  from fpdf import FPDF
4
+ import pdfplumber
5
  import os
6
  import time
7
 
 
110
 
111
  # Input options
112
  st.markdown("### Enter Requirements")
113
+ #input_option = st.radio("Choose input method:", ("Enter Requirements", "Upload PDF"))
114
+ input_option == "Enter Requirements"
115
 
116
  requirements = []
117
+ if input_option == "Enter Requirements":
118
+ input_text = st.text_area("Enter your requirements (one per line or separated by periods):")
119
+ if input_text:
120
+ # Split by periods or newlines
121
+ requirements = [req.strip() for req in input_text.replace("\n", ".").split(".") if req.strip()]
122
+ else:
123
+ uploaded_file = st.file_uploader("Upload a PDF file:", type="pdf")
124
+ if uploaded_file:
125
+ try:
126
+ with pdfplumber.open(uploaded_file) as pdf:
127
+ requirements = []
128
+ for page in pdf.pages:
129
+ text = page.extract_text()
130
+ if text:
131
+ # Split by periods or newlines
132
+ requirements.extend([req.strip() for req in text.replace("\n", ".").split(".") if req.strip()])
133
+ except Exception as e:
134
+ st.error(f"Error reading PDF file: {e}")
135
 
136
  # Analyze requirements
137
  if st.button("Analyze Requirements"):
138
  if not requirements:
139
+ st.warning("Please enter your requirements.")
140
  else:
141
  results = []
142
  for req in requirements:
 
146
  # Display results
147
  st.subheader("Analysis Results")
148
  for i, result in enumerate(results, start=1):
149
+ st.write(f"### Requirement R{i}: {result['Requirement']}")
150
+ st.write(f"**Type:** {result['Type']}")
151
+ st.write(f"**Stakeholders:** {result['Stakeholders']}")
152
+ st.write(f"**Domain:** {result['Domain']}")
153
+ st.write(f"**Defects:** {result['Defects']}")
154
+ st.write(f"**Rewritten:** {result['Rewritten']}")
155
+ st.write("---")
156
+
157
+
158
 
159
  # Generate and download PDF report
160
  pdf_report = generate_pdf_report(results)