def baseName(self, data): r = [] source_base = data[0] r.append(util.taglink(source_base, source_base.name)) bases_to_mention = data[1:-1] if bases_to_mention: tail = [] for b in reversed(bases_to_mention): tail.append(util.taglink(b, b.name)) tail.append(', ') del tail[-1] r.extend([' (via ', tail, ')']) return r
def baseName(self, data): r = [] source_base = data[0] r.append(taglink(source_base, source_base.name)) bases_to_mention = data[1:-1] if bases_to_mention: tail = [] for b in reversed(bases_to_mention): tail.append(taglink(b, b.name)) tail.append(', ') del tail[-1] r.extend([' (via ', tail, ')']) return r
def names(self, request, tag): name2obs = {} for obj in self.initials[self.my_letter]: name2obs.setdefault(obj.name, []).append(obj) r = [] for name in sorted(name2obs, key=lambda x:(x.lower(), x)): obs = name2obs[name] if len(obs) == 1: r.append(tag.clone()(name, ' - ', taglink(obs[0]))) else: ul = tags.ul() for ob in sorted(obs, key=_lckey): ul(tags.li(taglink(ob))) r.append(tag.clone()(name, ul)) return r
def names(self, request, tag): name2obs = {} for obj in self.initials[self.my_letter]: name2obs.setdefault(obj.name, []).append(obj) r = [] for name in sorted(name2obs, key=lambda x: (x.lower(), x)): obs = name2obs[name] if len(obs) == 1: r.append(tag.clone()(name, ' - ', util.taglink(obs[0]))) else: ul = tags.ul() for ob in sorted(obs, key=_lckey): ul(tags.li(util.taglink(ob))) r.append(tag.clone()(name, ul)) return r
def part(self): if self.ob.parent: parent = self.ob.parent if isinstance(parent, model.Module) and parent.name == '__init__': parent = parent.parent parts = [] while parent.parent: parts.append(taglink(parent, parent.name)) parts.append('.') parent = parent.parent parts.append(taglink(parent, parent.name)) parts.reverse() return 'Part of ', parts else: return []
def part(self): if self.ob.parent: parent = self.ob.parent if isinstance(parent, model.Module) and parent.name == "__init__": parent = parent.parent parts = [] while parent.parent: parts.append(taglink(parent, parent.name)) parts.append(".") parent = parent.parent parts.append(taglink(parent, parent.name)) parts.reverse() return "Part of ", tags.code(parts) else: return []
def part(self): if self.ob.parent: parent = self.ob.parent if isinstance(parent, model.Module) and parent.name == '__init__': parent = parent.parent parts = [] while parent.parent: parts.append(util.taglink(parent, parent.name)) parts.append('.') parent = parent.parent parts.append(util.taglink(parent, parent.name)) parts.reverse() return 'Part of ', tags.code(parts) else: return []
def onlyIfOneRoot(self, request, tag): if len(self.system.rootobjects) != 1: return [] else: root, = self.system.rootobjects return tag.clear()("Start at ", util.taglink(root), ", the root ", root.kind.lower(), ".")
def functionExtras(self, data): imeth = self.interfaceMeth(data.name) r = [] if imeth: r.append(tags.div(class_="interfaceinfo")('from ', util.taglink(imeth, imeth.parent.fullName()))) r.extend(super(ZopeInterfaceClassPage, self).functionExtras(data)) return r
def stuff(self, request, tag): undoccedpublic = [o for o in self.system.orderedallobjects if o.isVisible and not hasdocstring(o)] undoccedpublic.sort(key=lambda o:o.fullName()) for o in undoccedpublic: tag(tags.li(o.kind, " - ", util.taglink(o))) return tag
def stuff(self, request, tag): undoccedpublic = [o for o in self.system.orderedallobjects if o.isVisible and not hasdocstring(o)] undoccedpublic.sort(key=lambda o:o.fullName()) for o in undoccedpublic: tag(tags.li(o.kind, " - ", taglink(o))) return tag
def functionExtras(self, data): imeth = self.interfaceMeth(data.name) r = [] if imeth: r.append(tags.div(class_="interfaceinfo")('from ', taglink(imeth, imeth.parent.fullName()))) r.extend(super(ZopeInterfaceClassPage, self).functionExtras(data)) return r
def onlyIfOneRoot(self, request, tag): if len(self.system.rootobjects) != 1: return [] else: root, = self.system.rootobjects return tag.clear()( "Start at ", taglink(root), ", the root ", root.kind.lower(), ".")
def changes(self, request, tag): r = [] for d in reversed(self.root._edits): r.append( tag.clone().fillSlots( diff=self.diff(d, request), hist=self.hist(d, request), object=util.taglink(d.obj), time=d.time, user=d.user)) return r
def namespace(self, obj: model.Documentable) -> List[Union[Tag, str]]: parts: List[Union[Tag, str]] = [] ob: Optional[model.Documentable] = obj while ob: if ob.documentation_location is model.DocLocation.OWN_PAGE: if parts: parts.append('.') parts.append(util.taglink(ob, ob.name)) ob = ob.parent parts.reverse() return parts
def moduleSummary(modorpack): r = tags.li(util.taglink(modorpack), ' - ', epydoc2stan.doc2stan(modorpack, summary=True)[0]) if not isinstance(modorpack, model.Package): return r contents = [m for m in modorpack.orderedcontents if m.isVisible and m.name != '__init__'] if not contents: return r ul = tags.ul() for m in sorted(contents, key=lambda m:m.fullName()): ul(moduleSummary(m)) return r(ul)
def moduleSummary(modorpack): r = tags.li(taglink(modorpack), ' - ', epydoc2stan.doc2stan(modorpack, summary=True)[0]) if not isinstance(modorpack, model.Package): return r contents = [m for m in modorpack.orderedcontents if m.isVisible and m.name != '__init__'] if not contents: return r ul = tags.ul() for m in sorted(contents, key=lambda m:m.fullName()): ul(moduleSummary(m)) return r(ul)
def names(self, request, tag): name2obs = {} for obj in self.initials[self.my_letter]: name2obs.setdefault(obj.name, []).append(obj) r = [] for name in sorted(name2obs, key=lambda x: (x.lower(), x)): item = tag.clone()(name) obs = name2obs[name] if all(isPrivate(ob) for ob in obs): item(class_='private') if len(obs) == 1: item(' - ', util.taglink(obs[0])) else: ul = tags.ul() for ob in sorted(obs, key=_lckey): subitem = tags.li(util.taglink(ob)) if isPrivate(ob): subitem(class_='private') ul(subitem) item(ul) r.append(item) return r
def mediumName(self, ob): r = [super(ClassPage, self).mediumName(ob)] zipped = zip(self.ob.rawbases, self.ob.bases, self.ob.baseobjects) if zipped: r.append('(') for i, (n, m, o) in enumerate(zipped): if o is None: r.append(tags.span(title=m)(n)) else: r.append(util.taglink(o, n)) if i != len(zipped) - 1: r.append(', ') r.append(')') return r
def mediumName(self, ob): r = [super(ClassPage, self).mediumName(ob)] zipped = zip(self.ob.rawbases, self.ob.bases, self.ob.baseobjects) if zipped: r.append('(') for i, (n, m, o) in enumerate(zipped): if o is None: r.append(tags.span(title=m)(n)) else: r.append(taglink(o, n)) if i != len(zipped)-1: r.append(', ') r.append(')') return r
def subclassesFrom(hostsystem, cls, anchors): r = tags.li() name = cls.fullName() if name not in anchors: r(tags.a(name=name)) anchors.add(name) r(taglink(cls), ' - ', epydoc2stan.doc2stan(cls, summary=True)[0]) scs = [sc for sc in cls.subclasses if sc.system is hostsystem and ' ' not in sc.fullName() and sc.isVisible] if len(scs) > 0: ul = tags.ul() for sc in sorted(scs, key=_lckey): ul(subclassesFrom(hostsystem, sc, anchors)) r(ul) return r
def subclassesFrom(hostsystem, cls, anchors): r = tags.li() name = cls.fullName() if name not in anchors: r(tags.a(name=name)) anchors.add(name) r(util.taglink(cls), ' - ', epydoc2stan.doc2stan(cls, summary=True)[0]) scs = [sc for sc in cls.subclasses if sc.system is hostsystem and ' ' not in sc.fullName() and sc.isVisible] if len(scs) > 0: ul = tags.ul() for sc in sorted(scs, key=_lckey): ul(subclassesFrom(hostsystem, sc, anchors)) r(ul) return r
def functionExtras(self, data): r = [] for b in self.ob.allbases(include_self=False): if data.name not in b.contents: continue overridden = b.contents[data.name] r.append(tags.div(class_="interfaceinfo")("overrides ", taglink(overridden))) break ocs = sorted(overriding_subclasses(self.ob, data.name), key=lambda o: o.fullName().lower()) if ocs: self.overridenInCount += 1 idbase = "overridenIn" + str(self.overridenInCount) l = assembleList(self.ob.system, "overridden in ", [o.fullName() for o in ocs], idbase) if l is not None: r.append(tags.div(class_="interfaceinfo")(l)) return r
def functionExtras(self, data): r = [] for b in self.ob.allbases(include_self=False): if data.name not in b.contents: continue overridden = b.contents[data.name] r.append(tags.div(class_="interfaceinfo")('overrides ', util.taglink(overridden))) break ocs = sorted(overriding_subclasses(self.ob, data.name), key=lambda o:o.fullName().lower()) if ocs: self.overridenInCount += 1 idbase = 'overridenIn' + str(self.overridenInCount) l = assembleList(self.ob.system, 'overridden in ', [o.fullName() for o in ocs], idbase) if l is not None: r.append(tags.div(class_="interfaceinfo")(l)) return r
def moduleSummary(modorpack): r = tags.li(util.taglink(modorpack), ' - ', epydoc2stan.format_summary(modorpack)) if modorpack.isPrivate: r(class_='private') if not isinstance(modorpack, model.Package): return r contents = [ m for m in modorpack.contents.values() if m.isVisible and m.name != '__init__' ] if not contents: return r ul = tags.ul() for m in sorted(contents, key=lambda m: m.fullName()): ul(moduleSummary(m)) return r(ul)
def roots(self, request, tag): r = [] for o in self.system.rootobjects: r.append(tag.clone().fillSlots(root=taglink(o))) return r
def one(item): if item in system.allobjects: return util.taglink(system.allobjects[item]) else: return item
def name(self, request, tag): return tag.clear()(util.taglink(self.child, self.child.name))
def tl(s): if s in system.allobjects: return taglink(system.allobjects[s]) else: return s
def one(item): if item in system.allobjects: return taglink(system.allobjects[item]) else: return item
def problemObjects(self, request, tag): r = [] for fn in sorted(self.system.epytextproblems): o = self.system.allobjects[fn] r.append(tag.clone().fillSlots(link=util.taglink(o))) return r
def linkback(self, request, tag): return util.taglink(self.ob, label="Back")
def roots(self, request, tag): r = [] for o in self.system.rootobjects: r.append(tag.clone().fillSlots(root=util.taglink(o))) return r