def __init__(self, toc, j, renderlist, redirects): self.typedoc = StringIO.StringIO() self.toc = toc self.subs = {} self.docParent = {} self.docAfter = {} self.rendered = set() self.redirects = redirects self.title = None for t in j: if "extends" in t: for e in aslist(t["extends"]): add_dictlist(self.subs, e, t["name"]) #if "docParent" not in t and "docAfter" not in t: # add_dictlist(self.docParent, e, t["name"]) if t.get("docParent"): add_dictlist(self.docParent, t["docParent"], t["name"]) if t.get("docChild"): for c in aslist(t["docChild"]): add_dictlist(self.docParent, t["name"], c) if t.get("docAfter"): add_dictlist(self.docAfter, t["docAfter"], t["name"]) _, _, metaschema_loader = schema.get_metaschema() alltypes = schema.extend_and_specialize(j, metaschema_loader) self.typemap = {} self.uses = {} self.record_refs = {} for t in alltypes: self.typemap[t["name"]] = t try: if t["type"] == "record": self.record_refs[t["name"]] = [] for f in t.get("fields", []): p = has_types(f) for tp in p: if tp not in self.uses: self.uses[tp] = [] if (t["name"], f["name"]) not in self.uses[tp]: _, frg1 = urlparse.urldefrag(t["name"]) _, frg2 = urlparse.urldefrag(f["name"]) self.uses[tp].append((frg1, frg2)) if tp not in basicTypes and tp not in self.record_refs[t["name"]]: self.record_refs[t["name"]].append(tp) except KeyError as e: _logger.error("Did not find 'type' in %s", t) raise for f in alltypes: if (f["name"] in renderlist or ((not renderlist) and ("extends" not in f) and ("docParent" not in f) and ("docAfter" not in f))): self.render_type(f, 1)
def __init__(self, toc, j, renderlist, redirects): self.typedoc = StringIO.StringIO() self.toc = toc self.subs = {} self.docParent = {} self.docAfter = {} self.rendered = set() self.redirects = redirects self.title = None for t in j: if "extends" in t: for e in aslist(t["extends"]): add_dictlist(self.subs, e, t["name"]) #if "docParent" not in t and "docAfter" not in t: # add_dictlist(self.docParent, e, t["name"]) if t.get("docParent"): add_dictlist(self.docParent, t["docParent"], t["name"]) if t.get("docChild"): for c in aslist(t["docChild"]): add_dictlist(self.docParent, t["name"], c) if t.get("docAfter"): add_dictlist(self.docAfter, t["docAfter"], t["name"]) _, _, metaschema_loader = schema.get_metaschema() alltypes = schema.extend_and_specialize(j, metaschema_loader) self.typemap = {} self.uses = {} self.record_refs = {} for t in alltypes: self.typemap[t["name"]] = t try: if t["type"] == "record": self.record_refs[t["name"]] = [] for f in t.get("fields", []): p = has_types(f) for tp in p: if tp not in self.uses: self.uses[tp] = [] if (t["name"], f["name"]) not in self.uses[tp]: _, frg1 = urlparse.urldefrag(t["name"]) _, frg2 = urlparse.urldefrag(f["name"]) self.uses[tp].append((frg1, frg2)) if tp not in basicTypes and tp not in self.record_refs[ t["name"]]: self.record_refs[t["name"]].append(tp) except KeyError as e: _logger.error("Did not find 'type' in %s", t) raise for f in alltypes: if (f["name"] in renderlist or ((not renderlist) and ("extends" not in f) and ("docParent" not in f) and ("docAfter" not in f))): self.render_type(f, 1)
def __init__(self, toc, j): self.typedoc = StringIO.StringIO() self.toc = toc self.subs = {} self.docParent = {} self.docAfter = {} for t in j: if "extends" in t: for e in aslist(t["extends"]): add_dictlist(self.subs, e, t["name"]) if "docParent" not in t and "docAfter" not in t: add_dictlist(self.docParent, e, t["name"]) if t.get("docParent"): add_dictlist(self.docParent, t["docParent"], t["name"]) if t.get("docAfter"): add_dictlist(self.docAfter, t["docAfter"], t["name"]) _, _, metaschema_loader = schema.get_metaschema() alltypes = schema.extend_and_specialize(j, metaschema_loader) self.typemap = {} self.uses = {} for t in alltypes: self.typemap[t["name"]] = t if t["type"] == "https://w3id.org/cwl/salad#record": for f in t["fields"]: p = has_types(f) for tp in p: if tp not in self.uses: self.uses[tp] = [] if (t["name"], f["name"]) not in self.uses[tp]: _, frg1 = urlparse.urldefrag(t["name"]) _, frg2 = urlparse.urldefrag(f["name"]) self.uses[tp].append((frg1, frg2)) for f in alltypes: if ("extends" not in f) and ("docParent" not in f) and ("docAfter" not in f): self.render_type(f, 1)