NH-Prediction / app.py
openfree's picture
Update app.py
3a7668f verified
import os
import sys
import streamlit as st
from tempfile import NamedTemporaryFile
def main():
try:
# Get the code from secrets
code = os.environ.get("MAIN_CODE")
if not code:
st.error("⚠️ The application code wasn't found in secrets. Please add the MAIN_CODE secret.")
return
# Try to fix any potential string issues
try:
# Just to verify the code is syntactically valid before writing to file
compile(code, '<string>', 'exec')
except SyntaxError as e:
st.error(f"⚠️ Syntax error in the application code: {str(e)}")
st.info("Please check your code for unterminated strings or other syntax errors.")
# Show the problematic line if possible
if hasattr(e, 'lineno') and hasattr(e, 'text'):
st.code(f"Line {e.lineno}: {e.text}")
st.write(f"Error occurs near character position: {e.offset}")
return
# Create a temporary Python file
with NamedTemporaryFile(suffix='.py', delete=False, mode='w') as tmp:
tmp.write(code)
tmp_path = tmp.name
# Execute the code
exec(compile(code, tmp_path, 'exec'), globals())
# Clean up the temporary file
try:
os.unlink(tmp_path)
except:
pass
except Exception as e:
st.error(f"⚠️ Error loading or executing the application: {str(e)}")
import traceback
st.code(traceback.format_exc())
if __name__ == "__main__":
main()