Skip to content

Commit 5847bb9

Browse files
author
ldx
committed
Refactor util.find_library().
1 parent c5519c1 commit 5847bb9

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

iptc/util.py

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def load_kernel(name, exc_if_failed=False):
3131
raise Exception(err)
3232

3333

34-
def _find_library(name):
34+
def _do_find_library(name):
3535
p = ctypes.util.find_library(name)
3636
if p:
3737
lib = ctypes.CDLL(p, mode=ctypes.RTLD_GLOBAL)
@@ -57,29 +57,19 @@ def _find_library(name):
5757
return None
5858

5959

60-
def find_library(*names):
61-
lib = None
60+
def _find_library(*names):
6261
for name in names:
63-
lib = _find_library(name)
64-
if lib is not None:
65-
break
66-
if not name.startswith("lib"):
67-
lib = _find_library("lib" + name)
68-
if lib is not None:
69-
break
70-
if not name.endswith(".so"):
71-
lib = _find_library(name + ".so")
72-
if lib is not None:
73-
break
74-
if not name.startswith("lib") and not name.endswith(".so"):
75-
lib = _find_library("lib" + name + ".so")
62+
for n in (name, "lib" + name, name + ".so", "lib" + name + ".so"):
63+
lib = _do_find_library(n)
7664
if lib is not None:
77-
break
78-
if lib:
65+
yield lib
66+
67+
68+
def find_library(*names):
69+
for lib in _find_library(*names):
7970
major = 0
8071
m = re.search(r"\.so\.(\d+)", lib._name)
8172
if m:
8273
major = int(m.group(1))
8374
return lib, major
84-
else:
85-
return None, None
75+
return None, None

0 commit comments

Comments
 (0)