Commits

Kamil Kisiel committed 985fcf5

Added option for controlling compression level.

Fixed bug with subprocess.Popen being passed unicode strings (trac-hacks #9066)

Comments (0)

Files changed (1)

tracmath/tracmath.py

                 return self.show_err("Problem creating tex file: %s" % (e))
 
             os.chdir(self.cache_dir)
-            cmd = "%s -interaction nonstopmode %s" % (self.latex_cmd, texname)
+            cmd = str("%s -interaction nonstopmode %s" % (self.latex_cmd, texname))
             self.log.debug("Running latex command: " + cmd)
             latex_proc = Popen(shlex.split(cmd), stdout=PIPE, stderr=PIPE)
             (out, err) = latex_proc.communicate()
             if len(err) and len(out):
                 return self.show_err('Unable to call: %s %s %s' % (cmd, out, err))
 
-            cmd = "".join([self.dvipng_cmd,
-                    " -T tight -x %s -z 9 -bg Transparent " % self.mag_factor,
-                    "-o %s %s" % (imgname, key + '.dvi')])
+            cmd = str("".join([self.dvipng_cmd,
+                               " -T tight -z %s " % self.compression,
+                               "-x %s -bg Transparent " % self.mag_factor,
+                               "-o %s %s" % (imgname, key + '.dvi')]))
             self.log.debug("Running dvipng command: " + cmd)
             dvipng_proc = Popen(shlex.split(cmd), stdout=PIPE, stderr=PIPE)
             (out, err) = dvipng_proc.communicate()
         dvipng = '/usr/bin/dvipng'
         max_png = 500
         mag_factor = 1200
+        compression = 6
 
         if 'tracmath' not in self.config.sections():
             self.log.warn("The [tracmath] section is not configured in trac.ini. Using defaults.")
         self.use_dollars = self.config.get('tracmath', 'use_dollars') or "False"
         self.use_dollars = self.use_dollars.lower() in ("true", "on", "enabled")
         self.mag_factor = self.config.get('tracmath', 'mag_factor') or mag_factor
+        self.compression = self.config.get('tracmath', 'compression') or compression
 
         if not os.path.exists(self.latex_cmd):
             self.log.error('Could not find latex binary at ' + self.latex_cmd)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.