Skip to content

Commit 2f578eb

Browse files
committed
Speed Improvements
1 parent 7131dac commit 2f578eb

File tree

1 file changed

+11
-19
lines changed

1 file changed

+11
-19
lines changed

robotpy_build/pkgcfg_provider.py

+11-19
Original file line numberDiff line numberDiff line change
@@ -119,33 +119,25 @@ def __init__(self):
119119
self.pkgs = {}
120120

121121
def detect_pkgs(self):
122-
122+
deps_names = set().union(*[pkg.depends for pkg in self.pkgs.values()])
123123
entry_points = list(iter_entry_points(group="robotpybuild", name=None))
124124

125-
def ingest():
126-
deps_names = set().union(*[pkg.depends for pkg in self.pkgs.values()])
127-
for i in range(len(entry_points)):
128-
if (
129-
entry_points[i].name not in deps_names
130-
and entry_points[i].name != "robotpy-build"
131-
):
125+
run_loop = True
126+
while run_loop:
127+
run_loop = False
128+
for ep in entry_points:
129+
if ep.name in self.pkgs:
132130
continue
133-
if entry_points[i].name in self.pkgs:
131+
if ep.name not in deps_names and ep.name != "robotpy-build":
134132
continue
135133
try:
136-
pkg = PkgCfg(entry_points[i])
134+
pkg = PkgCfg(ep)
137135
except Exception as e:
138-
warnings.warn(
139-
f"Error loading entry point {entry_points[i].name}: {e}"
140-
)
136+
warnings.warn(f"Error loading entry point {ep.name}: {e}")
141137
else:
142138
self.add_pkg(pkg)
143-
entry_points.pop(i)
144-
return True
145-
return False
146-
147-
while ingest():
148-
pass
139+
deps_names |= set(pkg.depends)
140+
run_loop = True
149141

150142
def add_pkg(self, pkg: PkgCfg) -> None:
151143
self.pkgs[pkg.name] = pkg

0 commit comments

Comments
 (0)