bikas
Currency Converter 2nd Deployment
42e355f
raw
history blame
1.49 kB
import streamlit as st
from api import get_currencies
from frankfurter import get_latest_rate, get_historical_rate
from currency import format_conversion_result
from datetime import datetime
st.title("Currency Converter")
# Fetch available currencies
currencies = get_currencies()
# Input elements
amount = st.number_input("Enter the amount to be converted:", min_value=0.0, value=0.0)
from_currency = st.selectbox("From currency:", currencies)
to_currency = st.selectbox("To currency:", currencies)
# Latest conversion rate button
if st.button('Get Latest Rate'):
try:
rate = get_latest_rate(from_currency, to_currency)
inverse_rate = 1 / rate if rate != 0 else 0
converted_amount = amount * rate
result = format_conversion_result(datetime.today().strftime('%Y-%m-%d'), from_currency, to_currency, rate, amount, converted_amount, inverse_rate)
st.write(result)
except Exception as e:
st.write(f"Error: {e}")
# Historical conversion rate
selected_date = st.date_input("Select a historical date:")
if st.button('Conversion Rate'):
try:
rate = get_historical_rate(from_currency, to_currency, selected_date)
inverse_rate = 1 / rate if rate != 0 else 0
converted_amount = amount * rate
result = format_conversion_result(selected_date, from_currency, to_currency, rate, amount, converted_amount, inverse_rate)
st.write(result)
except Exception as e:
st.write(f"Error: {e}")