@@ -139,3 +139,38 @@ def formatted_name(self) -> str:
139139 if not self ._upstream :
140140 return self .name
141141 return f"{ self .name } ({ ';' .join (self ._upstream )} )"
142+
143+
144+ def resolve_driver_info (
145+ driver_info : Optional [DriverInfo ],
146+ lib_name : Optional [str ],
147+ lib_version : Optional [str ],
148+ ) -> DriverInfo :
149+ """Resolve driver_info from parameters.
150+
151+ If driver_info is provided, use it. Otherwise, create DriverInfo from
152+ lib_name and lib_version (using defaults if not provided).
153+
154+ Parameters
155+ ----------
156+ driver_info : DriverInfo, optional
157+ The DriverInfo instance to use
158+ lib_name : str, optional
159+ The library name (default: "redis-py")
160+ lib_version : str, optional
161+ The library version (default: auto-detected)
162+
163+ Returns
164+ -------
165+ DriverInfo
166+ The resolved DriverInfo instance
167+ """
168+ if driver_info is not None :
169+ return driver_info
170+
171+ # Fallback: create DriverInfo from lib_name and lib_version
172+ from redis .utils import get_lib_version
173+
174+ name = lib_name if lib_name is not None else "redis-py"
175+ version = lib_version if lib_version is not None else get_lib_version ()
176+ return DriverInfo (name = name , lib_version = version )
0 commit comments