def get_value(self, types, argname, default=None, value_processor=None, mandatory=False, force_list=False): if not isinstance(types, list): types = [types] try: uvalue = value = self.kwargs.pop(argname) if value_processor: value = value_processor(value) for t in types: if isinstance(value, t): if force_list and not isinstance(value, list): return [value], uvalue return value, uvalue raise MesonException("%s field value %s is not valid," " valid types are %s" % (argname, value, types)) except KeyError: if mandatory: raise MesonException("%s mandatory field not found" % argname) if default is not None: return default, default return None, None
def __init__(self, interpreter): super().__init__(interpreter) self.hotdoc = ExternalProgram('hotdoc') if not self.hotdoc.found(): raise MesonException('hotdoc executable not found') try: from hotdoc.run_hotdoc import run # noqa: F401 self.hotdoc.run_hotdoc = run except Exception as e: raise MesonException('hotdoc %s required but not found. (%s)' % ( MIN_HOTDOC_VERSION, e))
def __init__(self, interpreter): super().__init__(interpreter) self.hotdoc = ExternalProgram('hotdoc') if not self.hotdoc.found(): raise MesonException('hotdoc executable not found') try: from hotdoc.run_hotdoc import run # noqa: F401 self.hotdoc.run_hotdoc = run except Exception as e: raise MesonException(f'hotdoc {MIN_HOTDOC_VERSION} required but not found. ({e})') self.methods.update({ 'has_extensions': self.has_extensions, 'generate_doc': self.generate_doc, })
def generate_doc(self, state, args, kwargs): if len(args) != 1: raise MesonException('One positional argument is' ' required for the project name.') project_name = args[0] builder = HotdocTargetBuilder(project_name, state, self.hotdoc, self.interpreter, kwargs) target, install_script = builder.make_targets() targets = [HotdocTargetHolder(target, self.interpreter)] if install_script: targets.append(install_script) return ModuleReturnValue(targets[0], targets)