diff options
Diffstat (limited to 'lv2specgen/lv2specgen.py')
-rwxr-xr-x | lv2specgen/lv2specgen.py | 70 |
1 files changed, 44 insertions, 26 deletions
diff --git a/lv2specgen/lv2specgen.py b/lv2specgen/lv2specgen.py index 1c4b93c..3b8e5d5 100755 --- a/lv2specgen/lv2specgen.py +++ b/lv2specgen/lv2specgen.py @@ -182,7 +182,7 @@ if have_pygments: aliases = ['n3', 'turtle'] filenames = ['*.n3', '*.ttl', '*.nt'] mimetypes = ['text/rdf+n3','application/x-turtle','application/n3'] - + tokens = { 'comments': [ (r'(\s*#.*)', Comment) @@ -203,7 +203,7 @@ if have_pygments: (r'\s*[a-zA-Z_:][a-zA-Z0-9\-_:]*\b\s*', Name.Tag, 'object'), (r'\s*(<[^>]*\>)', Name.Tag, 'object'), (r'\s*\]\s*', Text, '#pop'), - (r'(?=\s*\.\s*)', Keyword, '#pop'), + (r'(?=\s*\.\s*)', Keyword, '#pop'), ], 'objList': [ include('comments'), @@ -222,8 +222,8 @@ if have_pygments: (r'\s*\(', Text, 'objList'), (r'\s*;\s*\n?', Punctuation, '#pop'), (r'\s*,\s*\n?', Punctuation), # Added by drobilla so "," is not an error - (r'(?=\s*\])', Text, '#pop'), - (r'(?=\s*\.)', Text, '#pop'), + (r'(?=\s*\])', Text, '#pop'), + (r'(?=\s*\.)', Text, '#pop'), ], } @@ -242,7 +242,7 @@ def linkify(string): def translateCodeLink(match): return match.group(1) + linkmap[match.group(2)] + match.group(3) - + return rgx.sub(translateCodeLink, string) def getComment(m, urinode, classlist, proplist, instalist): @@ -420,7 +420,7 @@ def parseCollection(model, node): rest = findOne(model, node, rdf.rest, None) if not first or not rest: break; - + uris.append(getObject(first)) node = getObject(rest) @@ -455,7 +455,7 @@ def rdfsClassInfo(term, m): else: meta_type = findOne(m, getObject(st), rdf.type, None) restrictions.append(getSubject(meta_type)) - + if len(superclasses) > 0: doc += "\n<tr><th>Sub-class of</th>" first = True @@ -740,7 +740,7 @@ def buildIndex(m, classlist, proplist, instalist=None): return '<a href="#%s">%s</a>' % (name, name) else: return '<a href="%s">%s</a>' % (str(t), str(t)) - + if (len(classlist) > 0): azlist += "<dt>Classes</dt><dd><ul>" classlist.sort() @@ -913,13 +913,34 @@ def specAuthors(m, subject): return doc -def specHistory(m, subject): - entries = {} +def releaseChangeset(m, release, prefix=''): + changeset = findOne(m, release, dcs.changeset, None) + if changeset is None: + return '' + + entry = '<dd><ul>' + for i in findStatements(m, getObject(changeset), dcs.item, None): + item = getObject(i) + label = findOne(m, item, rdfs.label, None) + if not label: + print("error: dcs:item has no rdfs:label") + continue + + text = getLiteralString(getObject(label)) + if prefix: + text = prefix + ': ' + text + + entry += '<li>%s</li>' % text + + entry += '</ul></dd>\n' + return entry + +def specHistoryEntries(m, subject, entries={}): for r in findStatements(m, subject, doap.release, None): release = getObject(r) revNode = findOne(m, release, doap.revision, None) if not revNode: - print "error: doap:release has no doap:revision" + print("error: doap:release has no doap:revision") continue rev = getLiteralString(getObject(revNode)) @@ -931,29 +952,22 @@ def specHistory(m, subject): entry = '<dt><a href="%s">Version %s</a>' % (getObject(dist), rev) else: entry = '<dt>Version %s' % rev - #print "warning: doap:release has no doap:file-release" + #print("warning: doap:release has no doap:file-release") if created: entry += ' (%s)</dt>' % getLiteralString(getObject(created)) else: entry += ' (<span class="warning">EXPERIMENTAL</span>)</dt>' - changeset = findOne(m, release, dcs.changeset, None) - if changeset: - entry += '<dd><ul>' - for i in findStatements(m, getObject(changeset), dcs.item, None): - item = getObject(i) - label = findOne(m, item, rdfs.label, None) - if not label: - print "error: dcs:item has no rdfs:label" - continue + entry += releaseChangeset(m, release) - entry += '<li>%s</li>' % getLiteralString(getObject(label)) + if dist is not None: + entries[getObject(dist)] = entry - entry += '</ul></dd>\n' + return entries - entries[rev] = entry +def specHistoryMarkup(entries): if len(entries) > 0: history = '<dl>' for e in sorted(entries.keys(), reverse=True): @@ -964,6 +978,10 @@ def specHistory(m, subject): return '' +def specHistory(m, subject): + return specHistoryMarkup(specHistoryEntries(m, subject)) + + def specVersion(m, subject): """ Return a (minorVersion, microVersion, date) tuple @@ -1108,7 +1126,7 @@ def specgen(specloc, indir, style_uri, docdir, tags, opts, instances=False): seeAlso.add(path) m.parse(path, format='n3') done = False - + spec_ns_str = spec_url if (spec_ns_str[-1] != "/" and spec_ns_str[-1] != "#"): spec_ns_str += "#" @@ -1306,7 +1324,7 @@ if __name__ == "__main__": if (len(args) < 3): print(usage()) sys.exit(-1) - + spec_pre = options.prefix ontology = "file:" + str(args[0]) indir = args[1] |