def baseName(self, data): tag = tags.invisible() source_base = data[0] tag[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] tag[' (via ', tail, ')'] return tag
def baseName(self, data): tag = tags.invisible() source_base = data[0] tag[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] tag[' (via ', tail, ')'] return tag
def part(self): tag = tags.invisible() 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 tag['Part of ', parts] else: return tag
def render_problemObjects(self, context, data): t = context.tag pat = t.patternGenerator('object') for fn in sorted(self.system.epytextproblems): o = self.system.allobjects[fn] t[pat.fillSlots('link', util.taglink(o))] return t
def render_problemObjects(self, context, data): t = context.tag pat = t.patternGenerator('object') for fn in sorted(self.system.epytextproblems): o = self.system.allobjects[fn] t[pat.fillSlots('link', util.taglink(o))] return t
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 part(self): tag = tags.invisible() 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 tag['Part of ', parts] else: return tag
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 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 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 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 changes(self, request, tag): item = tag.patternGenerator('item') for d in reversed(self.root._edits): tag[util.fillSlots(item, diff=self.diff(d), hist=self.hist(d), object=util.taglink(d.obj), time=d.time, user=d.user)] return tag
def changes(self, request, tag): item = tag.patternGenerator('item') for d in reversed(self.root._edits): tag[util.fillSlots(item, diff=self.diff(d), hist=self.hist(d), object=util.taglink(d.obj), time=d.time, user=d.user)] return tag
def index(self, request, tag): letter = tag.patternGenerator('letter') singleName = tag.patternGenerator('singleName') manyNames = tag.patternGenerator('manyNames') initials = {} for ob in self.system.orderedallobjects: if ob.isVisible: initials.setdefault(ob.name[0].upper(), []).append(ob) for initial in sorted(initials): letterlinks = [] for initial2 in sorted(initials): if initial == initial2: letterlinks.append(initial2) else: letterlinks.append(tags.a(href='#' + initial2)[initial2]) letterlinks.append(' - ') if letterlinks: del letterlinks[-1] name2obs = {} for obj in initials[initial]: name2obs.setdefault(obj.name, []).append(obj) lettercontents = [] for name in sorted(name2obs, key=lambda x: x.lower()): obs = sorted(name2obs[name], key=lambda x: x.fullName().lower()) if len(obs) == 1: ob, = obs lettercontents.append( fillSlots(singleName, name=ob.name, link=taglink(ob))) else: lettercontents.append( fillSlots( manyNames, name=obs[0].name, manyNames=[tags.li[taglink(ob)] for ob in obs])) tag[fillSlots(letter, letter=initial, letterlinks=letterlinks, lettercontents=lettercontents)] return tag
def moduleSummary(modorpack): r = tags.li[taglink(modorpack), ' - ', epydoc2stan.doc2html(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 index(self, request, tag): letter = tag.patternGenerator('letter') singleName = tag.patternGenerator('singleName') manyNames = tag.patternGenerator('manyNames') initials = {} for ob in self.system.orderedallobjects: if ob.isVisible: initials.setdefault(ob.name[0].upper(), []).append(ob) for initial in sorted(initials): letterlinks = [] for initial2 in sorted(initials): if initial == initial2: letterlinks.append(initial2) else: letterlinks.append(tags.a(href='#'+initial2)[initial2]) letterlinks.append(' - ') if letterlinks: del letterlinks[-1] name2obs = {} for obj in initials[initial]: name2obs.setdefault(obj.name, []).append(obj) lettercontents = [] for name in sorted(name2obs, key=lambda x:x.lower()): obs = sorted(name2obs[name], key=lambda x:x.fullName().lower()) if len(obs) == 1: ob, = obs lettercontents.append(fillSlots(singleName, name=ob.name, link=taglink(ob))) else: lettercontents.append(fillSlots(manyNames, name=obs[0].name, manyNames=[tags.li[taglink(ob)] for ob in obs])) tag[fillSlots(letter, letter=initial, letterlinks=letterlinks, lettercontents=lettercontents)] return tag
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 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 moduleSummary(modorpack): r = tags.li[taglink(modorpack), ' - ', epydoc2stan.doc2html(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 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.doc2html(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[taglink(cls), ' - ', epydoc2stan.doc2html(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(): 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 = maybeShortenList(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(): 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 = maybeShortenList(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 one(item): if item in system.allobjects: return taglink(system.allobjects[item]) else: return item
def render_linkback(self, context, data): return util.taglink(self.ob, label="Back")
def roots(self, request, tag): item = tag.patternGenerator("item") r = [] for o in self.system.rootobjects: r.append(fillSlots(item, root=taglink(o))) return tag[r]
def name(self, request, tag): return tag.clear()[util.taglink(self.child, self.child.name)]
def one(item): if item in system.allobjects: return taglink(system.allobjects[item]) else: return item
def tl(s): if s in system.allobjects: return taglink(system.allobjects[s]) else: return s
def tl(s): if s in system.allobjects: return taglink(system.allobjects[s]) else: return s
def roots(self, request, tag): item = tag.patternGenerator("item") r = [] for o in self.system.rootobjects: r.append(fillSlots(item, root=taglink(o))) return tag[r]
def render_linkback(self, context, data): return util.taglink(self.ob, label="Back")