コード例 #1
0
 def load_class_package(self, class_name, version_spec):
     packages = self._packages_by_class.get(class_name)
     if not packages:
         raise exceptions.NoPackageForClassFound(class_name)
     version = version_spec.select(six.iterkeys(packages))
     if not version:
         raise exceptions.NoPackageForClassFound(class_name)
     return packages[version]
コード例 #2
0
ファイル: class_loader.py プロジェクト: schaertelr/murano
 def _get_package_for_class(self, class_name):
     package_name = self.find_package_name(class_name)
     if package_name is None:
         raise exceptions.NoPackageForClassFound(class_name)
     if package_name not in self._packages_cache:
         package = self.load_package(package_name)
         self._packages_cache[package_name] = package
     return self._packages_cache[package_name]
コード例 #3
0
 def get_package_by_class(self, name):
     filter_opts = {'class_name': name}
     try:
         package_definition = self._get_definition(filter_opts)
     except LookupError:
         exc_info = sys.exc_info()
         raise exceptions.NoPackageForClassFound(name), None, exc_info[2]
     return self._get_package_by_definition(package_definition)
コード例 #4
0
 def load_definition(self, name):
     try:
         package = self._get_package_for(name)
         if package is None:
             raise exceptions.NoPackageForClassFound(name)
         return package.get_class(name)
     # (sjmc7) This is used as a control condition for system classes;
     # do not delete (although I think it needs a better solution)
     except exceptions.NoPackageForClassFound:
         raise
     except Exception as e:
         msg = "Error loading {0}: {1}".format(name, str(e))
         raise pkg_exceptions.PackageLoadError(msg), None, sys.exc_info()[2]
コード例 #5
0
ファイル: package_loader.py プロジェクト: tianshangjun/murano
    def load_class_package(self, class_name, version_spec):
        packages = self._class_cache.get(class_name)
        if packages:
            version = version_spec.select(packages.iterkeys())
            if version:
                return packages[version]

        filter_opts = {
            'class_name': class_name,
            'version': helpers.breakdown_spec_to_query(version_spec)
        }
        try:
            package_definition = self._get_definition(filter_opts)
        except LookupError:
            exc_info = sys.exc_info()
            raise (exceptions.NoPackageForClassFound(class_name), None,
                   exc_info[2])
        return self._to_dsl_package(
            self._get_package_by_definition(package_definition))