aboutsummaryrefslogtreecommitdiffstats
path: root/lv2specgen
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-03-26 22:35:39 +0000
committerDavid Robillard <d@drobilla.net>2012-03-26 22:35:39 +0000
commite01f7c8b0e4b3596d7f1d0d6d09ecd999fdbff42 (patch)
treea1b2ffd99381226688766e069160b95cd0da37b0 /lv2specgen
parent11173eca2f57199b57bffa20630ed795631adc26 (diff)
downloadlv2-e01f7c8b0e4b3596d7f1d0d6d09ecd999fdbff42.tar.xz
Fix busted loading of spec properties (most noticably putting maintainer information from other specs on the page when the spec itself has no maintainer listed).
Diffstat (limited to 'lv2specgen')
-rwxr-xr-xlv2specgen/lv2specgen.py37
1 files changed, 18 insertions, 19 deletions
diff --git a/lv2specgen/lv2specgen.py b/lv2specgen/lv2specgen.py
index d0ed35a..dfd2549 100755
--- a/lv2specgen/lv2specgen.py
+++ b/lv2specgen/lv2specgen.py
@@ -829,30 +829,28 @@ def specInformation(m, ns):
def specProperty(m, subject, predicate):
"Return a property of the spec."
- for c in findStatements(m, None, predicate, None):
- if isResource(getSubject(c)) and str(getSubject(c)) == str(subject):
- return getLiteralString(getObject(c))
+ for c in findStatements(m, subject, predicate, None):
+ return getLiteralString(getObject(c))
return ''
def specProperties(m, subject, predicate):
"Return a property of the spec."
properties = []
- for c in findStatements(m, None, predicate, None):
- if isResource(getSubject(c)) and str(getSubject(c)) == str(subject):
- properties += [getObject(c)]
+ for c in findStatements(m, subject, predicate, None):
+ properties += [getObject(c)]
return properties
def specAuthors(m, subject):
"Return an HTML description of the authors of the spec."
dev = set()
- for i in findStatements(m, None, doap.developer, None):
+ for i in findStatements(m, subject, doap.developer, None):
for j in findStatements(m, getObject(i), foaf.name, None):
dev.add(getLiteralString(getObject(j)))
maint = set()
- for i in findStatements(m, None, doap.maintainer, None):
+ for i in findStatements(m, subject, doap.maintainer, None):
for j in findStatements(m, getObject(i), foaf.name, None):
maint.add(getLiteralString(getObject(j)))
@@ -887,7 +885,7 @@ def specAuthors(m, subject):
def specHistory(m, subject):
entries = {}
- for r in findStatements(m, None, doap.release, None):
+ for r in findStatements(m, subject, doap.release, None):
release = getObject(r)
revNode = findOne(m, release, doap.revision, None)
if not revNode:
@@ -943,7 +941,7 @@ def specVersion(m, subject):
# Get the date from the latest doap release
latest_doap_revision = ""
latest_doap_release = None
- for i in findStatements(m, None, doap.release, None):
+ for i in findStatements(m, subject, doap.release, None):
for j in findStatements(m, getObject(i), doap.revision, None):
revision = getLiteralString(getObject(j))
if latest_doap_revision == "" or revision > latest_doap_revision:
@@ -1060,9 +1058,10 @@ def specgen(specloc, indir, style_uri, docdir, tags, instances=False, mode="spec
bundle_path = os.path.split(specloc[specloc.find(':') + 1:])[0]
abs_bundle_path = os.path.abspath(bundle_path)
spec_url = getOntologyNS(m)
+ spec = rdflib.URIRef(spec_url)
# Parse all seeAlso files in the bundle
- for uri in specProperties(m, spec_url, rdfs.seeAlso):
+ for uri in specProperties(m, spec, rdfs.seeAlso):
if uri[:7] == 'file://':
path = uri[7:]
if (path != os.path.abspath(specloc)
@@ -1084,7 +1083,7 @@ def specgen(specloc, indir, style_uri, docdir, tags, instances=False, mode="spec
if uri.startswith('file:'):
continue;
ns_list[str(uri)] = i
- if str(uri) == str(spec_url) + '#':
+ if str(uri) == spec_url + '#':
spec_pre = i
prefixes_html += '<a href="%s">%s</a> ' % (uri, i)
prefixes_html += "</span>"
@@ -1112,9 +1111,9 @@ def specgen(specloc, indir, style_uri, docdir, tags, instances=False, mode="spec
if instances:
termlist += docTerms('Instance', instalist, m, classlist)
- template = template.replace('@NAME@', specProperty(m, spec_url, doap.name))
- template = template.replace('@SUBTITLE@', specProperty(m, spec_url, doap.shortdesc))
- template = template.replace('@URI@', spec_url)
+ template = template.replace('@NAME@', specProperty(m, spec, doap.name))
+ template = template.replace('@SUBTITLE@', specProperty(m, spec, doap.shortdesc))
+ template = template.replace('@URI@', spec)
template = template.replace('@PREFIX@', spec_pre)
if spec_pre == 'lv2':
template = template.replace('@XMLNS@', '')
@@ -1127,15 +1126,15 @@ def specgen(specloc, indir, style_uri, docdir, tags, instances=False, mode="spec
template = template.replace('@STYLE_URI@', style_uri)
template = template.replace('@PREFIXES@', str(prefixes_html))
template = template.replace('@BASE@', spec_ns_str)
- template = template.replace('@AUTHORS@', specAuthors(m, spec_url))
+ template = template.replace('@AUTHORS@', specAuthors(m, spec))
template = template.replace('@INDEX@', azlist)
template = template.replace('@REFERENCE@', termlist.encode("utf-8"))
template = template.replace('@FILENAME@', filename)
template = template.replace('@HEADER@', basename + '.h')
template = template.replace('@MAIL@', 'devel@lists.lv2plug.in')
- template = template.replace('@HISTORY@', specHistory(m, spec_url))
+ template = template.replace('@HISTORY@', specHistory(m, spec))
- version = specVersion(m, spec_url) # (minor, micro, date)
+ version = specVersion(m, spec) # (minor, micro, date)
date_string = version[2]
if date_string == "":
date_string = "Undated"
@@ -1152,7 +1151,7 @@ def specgen(specloc, indir, style_uri, docdir, tags, instances=False, mode="spec
template = template.replace('@REVISION@', version_string)
other_files = ''
- see_also_files = specProperties(m, spec_url, rdfs.seeAlso)
+ see_also_files = specProperties(m, spec, rdfs.seeAlso)
see_also_files.sort()
for f in see_also_files:
uri = str(f)