Spaces:
Sleeping
Sleeping
| import pandas as pd # Make sure pandas is imported | |
| import gradio as gr | |
| from io import StringIO | |
| # Read the dataset file as a string | |
| with open('coindata.jsonl', 'r') as f: | |
| data = f.read() | |
| # Use StringIO to read the JSONL data | |
| coin_dataset = pd.read_json(StringIO(data), lines=True) | |
| # Print dataset to verify its structure | |
| print(coin_dataset.head()) | |
| # Coin identification function | |
| def identify_coin(denomination, year, mint): | |
| denomination = denomination.strip().lower() # Convert input to lowercase and strip spaces | |
| mint = mint.strip().lower() # Convert mint to lowercase and strip spaces | |
| try: | |
| year_int = int(year) | |
| except ValueError: | |
| return "Please enter a valid year." | |
| print(f"Looking for denomination: {denomination}, year: {year_int}, mint: {mint}") | |
| matches = [] | |
| for _, row in coin_dataset.iterrows(): | |
| if row["denomination"].lower() != denomination: | |
| continue | |
| mint_list = [m.strip().lower() for m in row["mint"].split(",")] | |
| if mint not in mint_list: | |
| continue | |
| year_range = row["year"].replace("–", "-").replace(" to ", "-").split("-") | |
| try: | |
| start = int(year_range[0].strip()) | |
| end = int(year_range[1].strip()) if len(year_range) > 1 else start | |
| if start <= year_int <= end: | |
| coin_type = row.get("type", None) | |
| type_line = f"Type: {coin_type}" if pd.notna(coin_type) else "Type: Not specified" | |
| match_text = f"Coin: {row['coin name']}\n{type_line}\nDefects: {row['defects']}" | |
| matches.append(match_text) | |
| except Exception as e: | |
| print(f"Error processing year range: {e}") | |
| continue | |
| if matches: | |
| return "\n\n".join(matches) | |
| else: | |
| return "Coin not found." | |
| # Gradio Interface | |
| iface = gr.Interface( | |
| fn=identify_coin, | |
| inputs=[ | |
| gr.Dropdown(choices=["Cent", "5 Cent", "10 Cent", "25 Cent"], label="Denomination (e.g., Cent, Nickel, Dime)"), | |
| gr.Textbox(label="Year (e.g., 1916)"), | |
| gr.Dropdown(choices=["Philadelphia", "Denver", "San Francisco", "New Orleans", "Carson City", "West Point"], label="Mint (e.g., Philadelphia)"), | |
| ], | |
| outputs="text", | |
| title="Coin Identifier", | |
| description="Enter details to identify a U.S. coin and common defects." | |
| ) | |
| # Launch the Gradio app | |
| iface.launch() |