Skip to content

Instantly share code, notes, and snippets.

@ajp619
Last active August 3, 2016 19:38
Show Gist options
  • Save ajp619/7dd388315fc824208654 to your computer and use it in GitHub Desktop.
Save ajp619/7dd388315fc824208654 to your computer and use it in GitHub Desktop.
def pyprint(myfile, lexer_override=""):
from pygments import highlight
from pygments.lexers import PythonLexer, guess_lexer, get_lexer_by_name
from pygments.util import ClassNotFound
from pygments.formatters import HtmlFormatter
import IPython
try:
with open(myfile) as f:
code = f.read()
except IOError:
code = myfile
if lexer_override == "":
try:
lexer = guess_lexer(code)
except ClassNotFound:
lexer = get_lexer_by_name('text')
else:
lexer = get_lexer_by_name(lexer_override)
formatter = HtmlFormatter()
return IPython.display.HTML('<style type="text/css">{}</style>{}'.format(
formatter.get_style_defs('.highlight'),
highlight(code, lexer, formatter)))
@ajp619
Copy link
Author

ajp619 commented Jun 7, 2016

2 changes to make this more general:

from pygments.lexers import PythonLexer, guess_lexer
highlight(code, guess_lexer(code), formatter)))

@ajp619
Copy link
Author

ajp619 commented Jun 9, 2016

  • made definition of lexer more general.
  • added override so lexer can be specified.
  • if no override and guess_lexer fails, use generic text lexer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment