Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from github_analytics.fetch_data import fetch_user_data | |
| from github_analytics.display_user_info import display_user_info | |
| from github_analytics.pie_chart import create_pie_chart | |
| from github_analytics.line_chart import create_line_chart | |
| from github_analytics.bubble_chart import create_bubble_chart | |
| from github_analytics.bar_chart import create_bar_chart | |
| def github_analytics(): | |
| """Streamlit app for fetching and displaying GitHub user and repository data.""" | |
| st.title("Github Analytics") | |
| username = st.text_input("Enter your GitHub username") | |
| if username: | |
| user_data, repo_data = fetch_user_data(username) | |
| if user_data == "User not found": | |
| st.error("User not found") | |
| return | |
| if repo_data == "Repo not found": | |
| st.write("Repo not found") | |
| return | |
| if user_data: | |
| if repo_data: | |
| display_user_info(user_data) | |
| # st.write("**User Info:**") | |
| # st.write(user_data) | |
| # st.write("**Repo Info:**") | |
| # st.write(repo_data) | |
| st.title("Select a metric to analyze") | |
| option = st.selectbox( | |
| "", | |
| ("Stars", "Forks", "Languages Used", | |
| "Stars and Forks compared with time"), | |
| index=None, | |
| placeholder="Select something...", | |
| ) | |
| st.write("You selected:", option) | |
| # Dictionary to map options to functions | |
| option_functions = { | |
| "Stars": create_bar_chart, | |
| "Forks": create_line_chart, | |
| "Languages Used": create_pie_chart, | |
| "Stars and Forks compared with time": create_bubble_chart, | |
| } | |
| # Call the corresponding function based on the selected option | |
| if option in option_functions: | |
| option_functions[option](repo_data) | |
| else: | |
| st.warning("Invalid option selected.") | |
| else: | |
| st.error(f"No repositories found for the user '{username}'.") | |
| else: | |
| st.title(f"Invalid username '{username}'. Please enter a valid GitHub username.") | |