Handle Py2/3 Unicode differences when writing to stdout

Closes #94.
This commit is contained in:
Kim Silkebækken 2013-01-22 08:04:26 +01:00
parent 8355e3d670
commit 3ee6e55025
2 changed files with 16 additions and 8 deletions

View File

@ -2,12 +2,12 @@
# -*- coding: utf-8 -*-
'''Powerline prompt script.'''
import argparse
import sys
try:
from powerline.core import Powerline
except ImportError:
import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from powerline.core import Powerline # NOQA
@ -18,8 +18,12 @@ parser.add_argument('--ext', default='shell')
if __name__ == '__main__':
args = parser.parse_args()
pl = Powerline(ext=args.ext, renderer_module=args.renderer_module)
segments = pl.renderer.get_theme().get_segments()
powerline = Powerline(ext=args.ext, renderer_module=args.renderer_module)
segments = powerline.renderer.get_theme().get_segments()
if args.side != 'all':
segments = [s for s in segments if s['side'] == args.side]
print(pl.renderer.render(None, segments=segments))
rendered = powerline.renderer.render(None, segments=segments)
try:
sys.stdout.write(rendered)
except UnicodeEncodeError:
sys.stdout.write(rendered.encode('utf-8'))

View File

@ -2,12 +2,12 @@
# -*- coding: utf-8 -*-
'''Powerline tmux statusline.'''
import argparse
import sys
try:
from powerline.core import Powerline
except ImportError:
import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from powerline.core import Powerline # NOQA
@ -17,8 +17,12 @@ parser.add_argument('--ext', default='tmux')
if __name__ == '__main__':
args = parser.parse_args()
pl = Powerline(args.ext)
segments = pl.renderer.get_theme().get_segments()
powerline = Powerline(args.ext)
segments = powerline.renderer.get_theme().get_segments()
if args.side != 'all':
segments = [s for s in segments if s['side'] == args.side]
print(pl.renderer.render(None, segments=segments))
rendered = powerline.renderer.render(None, segments=segments)
try:
sys.stdout.write(rendered)
except UnicodeEncodeError:
sys.stdout.write(rendered.encode('utf-8'))