[PATCH] highlight: put pygments import inside demandimport.deactivated

Augie Fackler raf at durin42.com
Mon Jun 19 03:11:41 UTC 2017


# HG changeset patch
# User Augie Fackler <raf at durin42.com>
# Date 1497841554 14400
#      Sun Jun 18 23:05:54 2017 -0400
# Node ID 44dd362d5685815692baed660a476eebfed8346e
# Parent  2851b24eecc483ce1546d63d155fa2e9250e3f44
highlight: put pygments import inside demandimport.deactivated

I tripped on some weirdness relating to _thread vs threading way down
in a dep of highlight recently. I'm not really sure why I'm only just
seeing this defect now, but experimentally this fixes the problem, and
shouldn't cause any load-time slowness for people until pygments is
actually about to be used since highlight.highlight is still lazily
loaded in the highlight/__init__.py file.

diff --git a/hgext/highlight/highlight.py b/hgext/highlight/highlight.py
--- a/hgext/highlight/highlight.py
+++ b/hgext/highlight/highlight.py
@@ -10,11 +10,6 @@
 
 from __future__ import absolute_import
 
-import pygments
-import pygments.formatters
-import pygments.lexers
-import pygments.util
-
 from mercurial import demandimport
 demandimport.ignore.extend(['pkgutil', 'pkg_resources', '__main__'])
 
@@ -23,6 +18,12 @@ from mercurial import (
     util,
 )
 
+with demandimport.deactivated():
+    import pygments
+    import pygments.formatters
+    import pygments.lexers
+    import pygments.util
+
 highlight = pygments.highlight
 ClassNotFound = pygments.util.ClassNotFound
 guess_lexer = pygments.lexers.guess_lexer


More information about the Mercurial-devel mailing list