Improve error handling in find_provider function to suggest similar provider names

This commit is contained in:
Francisco Griman
2024-10-30 00:29:15 -04:00
parent 6045d5b5d2
commit b7287ad32a
+9 -1
View File
@@ -1,3 +1,4 @@
import difflib
from typing import Union
from .providers import providers
@@ -10,4 +11,11 @@ def find_provider(provider_name: Union[str, None]):
if provider_class.NAME.lower() == provider_name.lower():
# Instantiate the provider
return provider_class()
raise ValueError(f"Provider {provider_name} not found")
providers_name = [provider.NAME.lower() for provider in providers]
providers_founds = difflib.get_close_matches(provider_name.lower(), providers_name)
if providers_founds:
raise ValueError(f"Provider {provider_name} not found. Maybe you try to use is '{providers_founds[0]}'?")
else:
raise ValueError(f"Provider {provider_name} not found.")