import os
import subprocess
+import re
from lxml import etree
from lxml.builder import ElementMaker
import treecutter.constants as const
from treecutter.image import Image
-from treecutter.tools import warning
+#from treecutter.tools import warning
class Docbook():
"""Class representing a docbook document"""
ta = unicode(ta[0].text)
return (t, ta)
+ def status(self):
+ status = self._doc.xpath(u'/db:article[@status]',namespaces=const.XPATH)
+ if status:
+ return unicode(status[0].get('status'))
+ return None
+
+ def role(self):
+ art = self._doc.xpath(u'/db:article[@role]',namespaces=const.XPATH)
+ if art:
+ return unicode(art[0].get('role'))
+ return 'index'
+
+ def userlevel(self):
+ lvl = self._doc.xpath(u'/db:article[@userlevel]',namespaces=const.XPATH)
+ if lvl:
+ lvlstr = unicode(lvl[0].get('userlevel'))
+ return {
+ 'Level 1': 1,
+ 'Level 2': 2,
+ 'Level 3': 3,
+ 'Level 4': 4,
+ 'Level 5': 5,
+ }.get(lvlstr, 0)
+ return 0
+
def expand_imageobjects(self):
cwd = os.getcwd()
db = ElementMaker(namespace=const.DB_NS, nsmap=const.NSMAP)
if ext in const.valid_scripts:
exe = []
script = os.path.join(os.path.abspath(self._dirname)+'/'+href)
- if os.path.isfile(script):
+ if os.path.isfile(script) and os.access(script, os.X_OK):
exe.append(script)
else:
if href in resource_listdir('xinclude', ''):
exe.append("lang="+alang)
if xpointer:
exe.append("xptr="+xpointer)
+ if exe == []:
+ continue
print " executing %15s" % (href),
ts = time()
os.chdir(self._dirname)
stderr=subprocess.PIPE)
(stdout, stderr) = xml.communicate()
#print xml.returnvalue
- if stderr:
- warning("%s : %s" % (" ".join(exe),stderr))
- warning(stdout)
- exit
+# if stderr:
+# warning("%s : %s" % (" ".join(exe),stderr))
+# warning(stdout)
+# exit
os.chdir(cwd)
te = time()
print " [%5.2f s] (%s)" % (round(te-ts,2),xpointer)
idp.insert(idp.index(c)+1,xstr)
idp.remove(c)
+ def xinclude(self):
+ self._doc.xinclude()
+
def collect_links(self):
res = []
for r in self._doc.xpath(u"//db:link[@xlink:href]",namespaces=const.XPATH):