_compat.py 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. # -*- coding: utf-8 -*-
  2. import logging
  3. import os
  4. import sys
  5. log_console = logging.StreamHandler(sys.stderr)
  6. default_logger = logging.getLogger(__name__)
  7. default_logger.setLevel(logging.DEBUG)
  8. def setLogLevel(log_level):
  9. default_logger.setLevel(log_level)
  10. check_paddle_install = {'is_paddle_installed': False}
  11. try:
  12. import pkg_resources
  13. get_module_res = lambda *res: pkg_resources.resource_stream(__name__,
  14. os.path.join(*res))
  15. except ImportError:
  16. get_module_res = lambda *res: open(os.path.normpath(os.path.join(
  17. os.getcwd(), os.path.dirname(__file__), *res)), 'rb')
  18. def enable_paddle():
  19. try:
  20. import paddle
  21. except ImportError:
  22. default_logger.debug("Installing paddle-tiny, please wait a minute......")
  23. os.system("pip install paddlepaddle-tiny")
  24. try:
  25. import paddle
  26. except ImportError:
  27. default_logger.debug(
  28. "Import paddle error, please use command to install: pip install paddlepaddle-tiny==1.6.1."
  29. "Now, back to jieba basic cut......")
  30. if paddle.__version__ < '1.6.1':
  31. default_logger.debug("Find your own paddle version doesn't satisfy the minimum requirement (1.6.1), "
  32. "please install paddle tiny by 'pip install --upgrade paddlepaddle-tiny', "
  33. "or upgrade paddle full version by "
  34. "'pip install --upgrade paddlepaddle (-gpu for GPU version)' ")
  35. else:
  36. try:
  37. import jieba.lac_small.predict as predict
  38. default_logger.debug("Paddle enabled successfully......")
  39. check_paddle_install['is_paddle_installed'] = True
  40. except ImportError:
  41. default_logger.debug("Import error, cannot find paddle.fluid and jieba.lac_small.predict module. "
  42. "Now, back to jieba basic cut......")
  43. PY2 = sys.version_info[0] == 2
  44. default_encoding = sys.getfilesystemencoding()
  45. if PY2:
  46. text_type = unicode
  47. string_types = (str, unicode)
  48. iterkeys = lambda d: d.iterkeys()
  49. itervalues = lambda d: d.itervalues()
  50. iteritems = lambda d: d.iteritems()
  51. else:
  52. text_type = str
  53. string_types = (str,)
  54. xrange = range
  55. iterkeys = lambda d: iter(d.keys())
  56. itervalues = lambda d: iter(d.values())
  57. iteritems = lambda d: iter(d.items())
  58. def strdecode(sentence):
  59. if not isinstance(sentence, text_type):
  60. try:
  61. sentence = sentence.decode('utf-8')
  62. except UnicodeDecodeError:
  63. sentence = sentence.decode('gbk', 'ignore')
  64. return sentence
  65. def resolve_filename(f):
  66. try:
  67. return f.name
  68. except AttributeError:
  69. return repr(f)