MCPcopy
hub / github.com/ComposioHQ/composio / get_toolkit_versions

Function get_toolkit_versions

python/composio/utils/toolkit_version.py:34–78  ·  view source on GitHub ↗

Gets toolkit versions configuration by merging environment variables, user-provided defaults, and fallbacks. Priority order: 1. If default_versions is a string, use it as a global version for all toolkits 2. User-provided toolkit version mappings (default_versions dict) 3. Envi

(
    default_versions: t.Optional[ToolkitVersionParam] = None,
)

Source from the content-addressed store, hash-verified

32
33
34def get_toolkit_versions(
35 default_versions: t.Optional[ToolkitVersionParam] = None,
36) -> ToolkitVersionParam:
37 """
38 Gets toolkit versions configuration by merging environment variables, user-provided defaults, and fallbacks.
39
40 Priority order:
41 1. If default_versions is a string, use it as a global version for all toolkits
42 2. User-provided toolkit version mappings (default_versions dict)
43 3. Environment variables (COMPOSIO_TOOLKIT_VERSION_<TOOLKIT_NAME>)
44 4. Fallback to 'latest' if no versions are configured
45
46 :param default_versions: Optional default versions configuration (string for global version or dict mapping toolkit names to versions)
47 :return: Toolkit versions configuration - either a string for global version or dict mapping toolkit names to versions
48 """
49 # If already set by user as a string, use it as global version for all toolkits
50 if isinstance(default_versions, str):
51 return default_versions
52
53 # Check if there are envs similar to COMPOSIO_TOOLKIT_VERSION_GITHUB then extract the toolkit name
54 toolkit_versions_from_env: ToolkitVersions = {}
55 for key, value in os.environ.items():
56 if key.startswith("COMPOSIO_TOOLKIT_VERSION_"):
57 toolkit_name = key.replace("COMPOSIO_TOOLKIT_VERSION_", "")
58 toolkit_versions_from_env[toolkit_name.lower()] = value
59
60 # If the provided default versions is a dict, normalize the keys to be lower case
61 # Use user provided values as overrides
62 user_provided_toolkit_versions: ToolkitVersions = {}
63 if default_versions and isinstance(default_versions, dict):
64 user_provided_toolkit_versions = {
65 key.lower(): value for key, value in default_versions.items()
66 }
67
68 # Final toolkit versions
69 toolkit_versions = {
70 **toolkit_versions_from_env,
71 **user_provided_toolkit_versions,
72 }
73
74 # If the toolkit_versions are empty, use 'latest'
75 if len(toolkit_versions) == 0:
76 return "latest"
77
78 return toolkit_versions

Calls 1

replaceMethod · 0.65

Used in the wild real call sites across dependent graphs

searching dependent graphs…