def METHOD_NAME(self, names_subset=None):
    """creating input spec from the zenodo file
    if name_subset provided, only names from the subset will be used in the spec
    """
    binputs = self.bosh_spec["inputs"]
    self._input_spec_keys = {}
    fields = []
    for input in binputs:
        name = input["id"]
        if names_subset is None:
            pass
        elif name not in names_subset:
            continue
        else:
            names_subset.remove(name)
        if input["type"] == "File":
            tp = File
        elif input["type"] == "String":
            tp = str
        elif input["type"] == "Number":
            tp = float
        elif input["type"] == "Flag":
            tp = bool
        else:
            tp = None
        # adding list
        if tp and "list" in input and input["list"]:
            tp = ty.List[tp]
        mdata = {
            "help_string": input.get("description", None) or input["name"],
            "mandatory": not input["optional"],
            "argstr": input.get("command-line-flag", None),
        }
        fields.append((name, tp, mdata))
        self._input_spec_keys[input["value-key"]] = "{" + f"{name}" + "}"
    if names_subset:
        raise RuntimeError(f"{names_subset} are not in the zenodo input spec")
    spec = SpecInfo(name="Inputs", fields=fields, bases=(ShellSpec,))
    return spec