awacke1 commited on
Commit
e24ea9e
·
verified ·
1 Parent(s): e377722

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +79 -0
app.py CHANGED
@@ -2025,3 +2025,82 @@ if showExtendedTextInterface:
2025
  num_columns_text=st.slider(key="num_columns_text", label="Choose Number of Text Columns", min_value=1, max_value=15, value=4)
2026
  display_buttons_with_scores(num_columns_text) # Feedback Jump Grid
2027
  st.markdown(personality_factors)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2025
  num_columns_text=st.slider(key="num_columns_text", label="Choose Number of Text Columns", min_value=1, max_value=15, value=4)
2026
  display_buttons_with_scores(num_columns_text) # Feedback Jump Grid
2027
  st.markdown(personality_factors)
2028
+
2029
+
2030
+
2031
+
2032
+ import streamlit as st
2033
+ import os
2034
+ import importlib.util
2035
+
2036
+ def run_py_file(file_path):
2037
+ """🏃‍♂️ Run a Python file and return its output"""
2038
+ spec = importlib.util.spec_from_file_location("module.name", file_path)
2039
+ module = importlib.util.module_from_spec(spec)
2040
+ spec.loader.exec_module(module)
2041
+ return getattr(module, 'output', None)
2042
+
2043
+ def recursive_file_search(directory):
2044
+ """🔍 Recursively search for .py files in a directory"""
2045
+ for root, dirs, files in os.walk(directory):
2046
+ for file in files:
2047
+ if file.endswith('.py'):
2048
+ yield os.path.join(root, file)
2049
+
2050
+ def save_component(name, content, file_type):
2051
+ """💾 Save a component to a file"""
2052
+ directory = f"components/{file_type}"
2053
+ os.makedirs(directory, exist_ok=True)
2054
+ with open(f"{directory}/{name}.{file_type}", "w") as f:
2055
+ f.write(content)
2056
+
2057
+ def load_component(name, file_type):
2058
+ """📂 Load a component from a file"""
2059
+ try:
2060
+ with open(f"components/{file_type}/{name}.{file_type}", "r") as f:
2061
+ return f.read()
2062
+ except FileNotFoundError:
2063
+ return None
2064
+
2065
+ def main():
2066
+ st.title("AI-Generated Component Manager")
2067
+
2068
+ # Run all Python files in the directory
2069
+ for py_file in recursive_file_search("."):
2070
+ output = run_py_file(py_file)
2071
+ if output:
2072
+ st.write(f"Output from {py_file}:", output)
2073
+
2074
+ # Component management
2075
+ component_type = st.selectbox("Select component type", ["react", "typescript"])
2076
+ component_name = st.text_input("Component name")
2077
+ component_content = st.text_area("Component content")
2078
+
2079
+ if st.button("Save Component"):
2080
+ save_component(component_name, component_content, component_type)
2081
+ st.success(f"Saved {component_type} component: {component_name}")
2082
+
2083
+ if st.button("Load Component"):
2084
+ loaded_content = load_component(component_name, component_type)
2085
+ if loaded_content:
2086
+ st.code(loaded_content, language=component_type)
2087
+ else:
2088
+ st.error(f"Component {component_name} not found")
2089
+
2090
+ # Display components using Streamlit's components
2091
+ st.components.v1.html(
2092
+ f"""
2093
+ <div id="react-root"></div>
2094
+ <script src="https://unpkg.com/react@17/umd/react.development.js"></script>
2095
+ <script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
2096
+ <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
2097
+ <script type="text/babel">
2098
+ // Load and render components here
2099
+ ReactDOM.render(<div>Custom Component</div>, document.getElementById('react-root'));
2100
+ </script>
2101
+ """,
2102
+ height=300,
2103
+ )
2104
+
2105
+ if __name__ == "__main__":
2106
+ main()