def __parse_returns_tag(self, name, desc): desc, annotations = self.__extract_annotations(desc) annotations = { annotation.name: annotation for annotation in annotations } return Tag(name, desc, annotations=annotations)
def __parse_deprecated_tag(self, name, desc): split = desc.split(':', 1) if len(split) == 2 and len(split[0]) > 1: value = split[0] if ' ' in value: value = None else: value = None return Tag(name, desc, value=value)
def __parse_tag(self, name, desc): if name.lower() == "since": return self.__parse_since_tag(name, desc) if name.lower() == "returns": return self.__parse_returns_tag(name, desc) if name.lower() == "return value": return self.__parse_returns_tag("returns", desc) if name.lower() == "stability": return self.__parse_stability_tag("stability", desc) if name.lower() == "deprecated": return self.__parse_deprecated_tag("deprecated", desc) if name.lower() == "topic": return self.__parse_topic_tag("topic", desc) validator = self.project.tag_validators.get(name) if not validator: warn('gtk-doc', "FIXME no tag validator") return None if not validator.validate(desc): warn('gtk-doc', "invalid value for tag %s : %s" % (name, desc)) return None return Tag(name=name, description=desc, value=desc)
def __add_default_tags(self, _, comment): for validator in list(self.tag_validators.values()): if validator.default and validator.name not in comment.tags: comment.tags[validator.name] = \ Tag(name=validator.name, description=validator.default)
def __parse_stability_tag(self, name, desc): value = desc.strip().lower() if value not in ('private', 'stable', 'unstable'): # FIXME warn return None return Tag(name, desc, value=value)
def __parse_topic_tag(self, name, desc): return Tag(name, None, value=desc)
def __parse_since_tag(self, name, desc): return Tag(name, desc, value=desc)