11import  importlib .util 
2+ from  importlib .metadata  import  entry_points , EntryPoint 
23from  os .path  import  join , dirname 
3- from  pkg_resources  import  iter_entry_points 
44import  sys 
55from  typing  import  Dict , List , Optional , Set 
66import  warnings 
@@ -27,12 +27,17 @@ class PkgCfg:
2727    Contains information about an installed package that uses robotpy-build 
2828    """ 
2929
30-     def  __init__ (self , entry_point ):
30+     def  __init__ (self , entry_point :  EntryPoint ):
3131        try :
3232            self .module  =  entry_point .load ()
3333        except  Exception  as  e :
3434            try :
35-                 self .module  =  _hacky_entrypoint_loader (entry_point .module_name )
35+                 mod  =  (
36+                     entry_point .module 
37+                     if  hasattr (entry_point , "module" )
38+                     else  entry_point .value 
39+                 )
40+                 self .module  =  _hacky_entrypoint_loader (mod )
3641            except  Exception :
3742                raise  e 
3843
@@ -147,7 +152,13 @@ def detect_pkgs(self) -> None:
147152        Only loads packages that are dependencies. 
148153        """ 
149154        deps_names  =  set ().union (* [pkg .depends  for  pkg  in  self .pkgs .values ()])
150-         entry_points  =  list (iter_entry_points (group = "robotpybuild" , name = None ))
155+         ep_ret  =  entry_points ()
156+ 
157+         # Python 3.8/3.9 
158+         if  isinstance (ep_ret , dict ):
159+             all_entry_points  =  ep_ret .get ("robotpybuild" , [])
160+         else :
161+             all_entry_points  =  [e  for  e  in  entry_points () if  e .group  ==  "robotpybuild" ]
151162
152163        # Only load the dependencies of the package we're building. 
153164        # If we load the [package being built], then the current build will fail. 
@@ -156,7 +167,7 @@ def detect_pkgs(self) -> None:
156167        run_loop  =  True 
157168        while  run_loop :
158169            run_loop  =  False 
159-             for  ep  in  entry_points :
170+             for  ep  in  all_entry_points :
160171                if  ep .name  in  self .pkgs :  # Prevents loading the package being built 
161172                    continue 
162173                if  ep .name  not  in deps_names  and  ep .name  !=  "robotpy-build" :
0 commit comments