speed_test / app.py
euler314's picture
Create app.py
b2cff8f verified
raw
history blame
1.03 kB
# app.py
import speedtest
import gradio as gr
def run_speedtest():
"""
Runs a speed test and returns download speed (Mbps),
upload speed (Mbps), and ping (ms).
"""
st = speedtest.Speedtest()
st.get_best_server()
download_bps = st.download()
upload_bps = st.upload()
ping_ms = st.results.ping
# Convert from bits per second to megabits per second
download_mbps = round(download_bps / 1e6, 2)
upload_mbps = round(upload_bps / 1e6, 2)
return f"{download_mbps} Mbps", f"{upload_mbps} Mbps", f"{ping_ms:.2f} ms"
# Build Gradio interface
iface = gr.Interface(
fn=run_speedtest,
inputs=[],
outputs=[
gr.Textbox(label="Download Speed"),
gr.Textbox(label="Upload Speed"),
gr.Textbox(label="Ping")
],
title="Wi-Fi / Ethernet Speed Test",
description="Click **Run Speed Test** to measure your current Internet download/upload speeds and ping."
)
if __name__ == "__main__":
iface.launch(server_name="0.0.0.0", server_port=7860)