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]
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]
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)
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]
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))