Skip to content

Instantly share code, notes, and snippets.

@Flowerowl
Created May 4, 2017 08:44
Show Gist options
  • Select an option

  • Save Flowerowl/a9579d7faa1444da0e59cb723394bed7 to your computer and use it in GitHub Desktop.

Select an option

Save Flowerowl/a9579d7faa1444da0e59cb723394bed7 to your computer and use it in GitHub Desktop.
py2&3 compat
# -*- coding: utf-8 -*-
import os
import sys
try:
import pkg_resources
get_module_res = lambda *res: pkg_resources.resource_stream(__name__,
os.path.join(*res))
except ImportError:
get_module_res = lambda *res: open(os.path.normpath(os.path.join(
os.getcwd(), os.path.dirname(__file__), *res)), 'rb')
PY2 = sys.version_info[0] == 2
default_encoding = sys.getfilesystemencoding()
if PY2:
text_type = unicode
string_types = (str, unicode)
iterkeys = lambda d: d.iterkeys()
itervalues = lambda d: d.itervalues()
iteritems = lambda d: d.iteritems()
else:
text_type = str
string_types = (str,)
xrange = range
iterkeys = lambda d: iter(d.keys())
itervalues = lambda d: iter(d.values())
iteritems = lambda d: iter(d.items())
def strdecode(sentence):
if not isinstance(sentence, text_type):
try:
sentence = sentence.decode('utf-8')
except UnicodeDecodeError:
sentence = sentence.decode('gbk', 'ignore')
return sentence
def resolve_filename(f):
try:
return f.name
except AttributeError:
return repr(f)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment