summaryrefslogtreecommitdiff
path: root/py/utils.py
diff options
context:
space:
mode:
authorMax Resnick <max@ofmax.li>2025-01-28 22:27:47 -0800
committerMax Resnick <max@ofmax.li>2025-01-31 22:45:23 -0800
commitc8162fc43a748a97aab4647be2f5cdf50bc739ea (patch)
tree0099688a7a09af76a2ae978790c5e013b59bcb9c /py/utils.py
parent380d5cdd9538c2522dfc8d03a8a261760bb0439a (diff)
downloadvim-ai-c8162fc43a748a97aab4647be2f5cdf50bc739ea.tar.gz
chore: rebase and fix up conflicts
Diffstat (limited to 'py/utils.py')
-rw-r--r--py/utils.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/py/utils.py b/py/utils.py
index 8cd204f..2147785 100644
--- a/py/utils.py
+++ b/py/utils.py
@@ -359,3 +359,23 @@ def save_b64_to_file(path, b64_data):
f = open(path, "wb")
f.write(base64.b64decode(b64_data))
f.close()
+
+def load_provider(provider):
+ provider_name, provider_module = provider["name"].split(".")
+ if provider_name != "openai":
+ provider_path = os.path.join(f"{plugin_root}",
+ "..",
+ f"vim-ai-{provider_name}",
+ "py",
+ f"{provider_module}.py")
+ else:
+ return openai_request
+ vim.command(f"py3file {provider_path}")
+ try:
+ provider_class = globals()[provider["class"]]
+ except KeyError as error:
+ printDebug("[load-provider] provider: {}", error)
+ raise KeyError(error.message, "provider not found")
+ return provider_class
+
+