cubicweb/cwconfig.py
changeset 11966 fe995d56c949
parent 11944 5284fee68601
child 11974 d92d75b17a85
equal deleted inserted replaced
11965:fb03a4113979 11966:fe995d56c949
   501 
   501 
   502 
   502 
   503     @classmethod
   503     @classmethod
   504     def available_cubes(cls):
   504     def available_cubes(cls):
   505         cubes = set()
   505         cubes = set()
       
   506         prefix = 'cubicweb_'
   506         for entry_point in pkg_resources.iter_entry_points(
   507         for entry_point in pkg_resources.iter_entry_points(
   507                 group='cubicweb.cubes', name=None):
   508                 group='cubicweb.cubes', name=None):
   508             try:
   509             try:
   509                 module = entry_point.load()
   510                 module = entry_point.load()
   510             except ImportError:
   511             except ImportError:
   511                 continue
   512                 continue
   512             else:
   513             else:
   513                 modname = module.__name__
   514                 modname = module.__name__
   514                 if not modname.startswith('cubicweb_'):
   515                 if not modname.startswith(prefix):
   515                     cls.warning('entry point %s does not appear to be a cube',
   516                     cls.warning('entry point %s does not appear to be a cube',
   516                                 entry_point)
   517                                 entry_point)
   517                     continue
   518                     continue
   518                 cubes.add(modname)
   519                 cubes.add(modname[len(prefix):])
   519         # Legacy cubes.
   520         # Legacy cubes.
   520         for directory in cls.cubes_search_path():
   521         for directory in cls.cubes_search_path():
   521             if not exists(directory):
   522             if not exists(directory):
   522                 cls.error('unexistant directory in cubes search path: %s'
   523                 cls.error('unexistant directory in cubes search path: %s'
   523                           % directory)
   524                           % directory)