Using punycode where we can.

This commit is contained in:
Paul R. Tagliamonte 2013-04-06 22:49:48 -04:00
parent 5a96089266
commit 0429cbea12

View File

@ -29,6 +29,7 @@ from hy.models.dict import HyDict
from hy.util import flatten_literal_list from hy.util import flatten_literal_list
import codecs
import ast import ast
import sys import sys
@ -44,7 +45,14 @@ def ast_str(foobar):
if sys.version_info[0] >= 3: if sys.version_info[0] >= 3:
return str(foobar) return str(foobar)
return str(foobar.encode("ascii", 'backslashreplace')) try:
return str(foobar)
except UnicodeEncodeError:
pass
enc = codecs.getencoder('punycode')
foobar, _ = enc(foobar)
return str(foobar).replace("-", "_")
def builds(_type): def builds(_type):