Allow modules using load_dotenv to be reloaded when launched in a separate thread by freddyaboulton · Pull Request #497 · theskumar/python-dotenv

Hello!

I am one of the maintainers of gradio, an os library for developing web applications in python. One of gradio's features is the ability to automatically refresh the web page when the python source code is modified without having to restart the server.

Users started reporting that gradio applications that use load_dotenv would fail when reloaded (See gradio-app/gradio#5468). I think the root cause is related to the fact that load_dotenv is being reloaded on a separate thread.

I traced this to the is_interactive check and added a fix that works for gradio and I don't think introduces any unintended changes to python-dotenv.

Curious to hear your thoughts. Thank you!