in azure-protected-vm-secrets/DynamicSecretsProvisioningLibrary/pySecretsProvisioningLibrary.py [0:0]
def getpaths(self, libname):
"""Return a list of paths where the library might be found."""
if os.path.isabs(libname):
yield libname
else:
# search through a prioritized series of locations for the library
# we first search any specific directories identified by user
for dir_i in self.other_dirs:
for fmt in self.name_formats:
# dir_i should be absolute already
yield os.path.join(dir_i, fmt % libname)
# check if this code is even stored in a physical file
try:
this_file = __file__
except NameError:
this_file = None
# then we search the directory where the generated python interface is stored
if this_file is not None:
for fmt in self.name_formats:
yield os.path.abspath(os.path.join(os.path.dirname(__file__), fmt % libname))
# now, use the ctypes tools to try to find the library
for fmt in self.name_formats:
path = ctypes.util.find_library(fmt % libname)
if path:
yield path
# then we search all paths identified as platform-specific lib paths
for path in self.getplatformpaths(libname):
yield path
# Finally, we'll try the users current working directory
for fmt in self.name_formats:
yield os.path.abspath(os.path.join(os.path.curdir, fmt % libname))