from __future__ import print_function
+import codecs
import datetime
-import rfc822
+import email.utils
+import locale
import urllib
import json
import argparse
import sys
import subprocess
+
+_ENCODING = locale.getpreferredencoding() or sys.getdefaultencoding()
+
+
# parse command line arguments
parser = argparse.ArgumentParser()
nmbhome = os.getenv('NMBGIT', os.path.expanduser('~/.nmbug'))
# read only the first line from the pipe
- sha1 = subprocess.Popen(['git', '--git-dir', nmbhome,
- 'show-ref', '-s', 'config'],
- stdout=subprocess.PIPE).stdout.readline()
-
- sha1 = sha1.rstrip()
+ sha1_bytes = subprocess.Popen(
+ ['git', '--git-dir', nmbhome, 'show-ref', '-s', 'config'],
+ stdout=subprocess.PIPE).stdout.readline()
+ sha1 = sha1_bytes.decode(_ENCODING).rstrip()
- fp = subprocess.Popen(['git', '--git-dir', nmbhome,
- 'cat-file', 'blob', sha1+':status-config.json'],
- stdout=subprocess.PIPE).stdout
+ fp_byte_stream = subprocess.Popen(
+ ['git', '--git-dir', nmbhome, 'cat-file', 'blob',
+ sha1+':status-config.json'],
+ stdout=subprocess.PIPE).stdout
+ fp = codecs.getreader(encoding=_ENCODING)(stream=fp_byte_stream)
config = json.load(fp)
val = str.join(' ', val.split(None)[1:4])
val = str(datetime.datetime.strptime(val, '%d %b %Y').date())
elif header == 'from':
- (val, addr) = rfc822.parseaddr(val)
+ (val, addr) = email.utils.parseaddr(val)
if val == '':
val = addr.split('@')[0]