docstr: 判断字符是否为标点字符
  Arg :
      char : 字符
  Return :
      bool : 判断结果
docstr_tok: ["\u5224\u65ad\u5b57\u7b26\u662f\u5426\u4e3a\u6807\u70b9\u5b57\u7b26","Arg",":","char",":","\u5b57\u7b26","Return",":","bool",":","\u5224\u65ad\u7ed3\u679c"]
code: def is_punctuation(char):
      """
      判断字符是否为标点字符
      Arg :
          char : 字符
      Return :
          bool : 判断结果
      """
      cp = ord(char)
      # We treat all non-letter/number ASCII as punctuation.
      # Characters such as "^", "$", and "`" are not in the Unicode
      # Punctuation class but we treat them as punctuation anyways, for
      # consistency.
      if (
          (cp >= 33 and cp <= 47)
          or (cp >= 58 and cp <= 64)
          or (cp >= 91 and cp <= 96)
          or (cp >= 123 and cp <= 126)
      ):
          return True
      cat = unicodedata.category(char)
      if cat.startswith("P"):
          return True
      return False
  
file_path: DeepKE/src/deepke/relation_extraction/standard/tools/serializer.py
imports: import re
  import unicodedata
  import jieba
  import logging
  from typing import List
label_desc: Use image node_id 13 for calling the Serializer obj's underlying member method code with example usage: obj.is_punctuation(char) and returns: False, True, True