docs: def import_issues(self, project_id, assignee_group, issues):
          """ Import issues, returns import result (http://confluence.jetbrains.net/display/YTD2/Import+Issues)
              Accepts return of getIssues()
              Example: importIssues([{'numberInProject':'1', 'summary':'some problem', 'description':'some description',
                                      'priority':'1',
                                      'fixedVersion':['1.0', '2.0'],
                                      'comment':[{'author':'yamaxim', 'text':'comment text', 'created':'1267030230127'}]},
                                     {'numberInProject':'2', 'summary':'some problem', 'description':'some description',
                                      'priority':'1'}])
          """
          if len(issues) <= 0:
              return
  
          bad_fields = ['id', 'projectShortName', 'votes', 'commentsCount',
                        'historyUpdated', 'updatedByFullName', 'updaterFullName',
                        'reporterFullName', 'links', 'attachments', 'jiraId',
                        'entityId', 'tags', 'sprint']
  
          tt_settings = self.get_project_time_tracking_settings(project_id)
          if tt_settings and tt_settings['Enabled'] and tt_settings['TimeSpentField']:
              bad_fields.append(tt_settings['TimeSpentField'])
  
          xml = '<issues>\n'
          issue_records = dict([])
  
          for issue in issues:
              record = ""
              record += '  <issue>\n'
  
              comments = None
              if getattr(issue, "getComments", None):
                  comments = issue.get_comments()
  
              for issue_attr in issue:
                  attr_value = issue[issue_attr]
                  if attr_value is None:
                      continue
                  if isinstance(attr_value, str):
                      attr_value = attr_value.encode('utf-8')
                  if isinstance(issue_attr, str):
                      issue_attr = issue_attr.encode('utf-8')
                  if issue_attr == 'comments':
                      comments = attr_value
                  else:
                      # ignore bad fields from getIssue()
                      if issue_attr not in bad_fields:
                          record += '    <field name="' + issue_attr + '">\n'
                          if isinstance(attr_value, list) or getattr(attr_value, '__iter__', False):
                              for v in attr_value:
                                  if isinstance(v, str):
                                      v = v.encode('utf-8')
                                  record += '      <value>' + escape(v.strip()) + '</value>\n'
                          else:
                              record += '      <value>' + escape(attr_value.strip()) + '</value>\n'
                          record += '    </field>\n'
  
              if comments:
                  for comment in comments:
                      record += '    <comment'
                      for ca in comment:
                          val = comment[ca]
                          if isinstance(ca, str):
                              ca = ca.encode('utf-8')
                          if isinstance(val, str):
                              val = val.encode('utf-8')
                          record += ' ' + ca + '=' + quoteattr(val)
                      record += '/>\n'
  
              record += '  </issue>\n'
              xml += record
              issue_records[issue.numberInProject] = record
  
          xml += '</issues>'
  
          # print xml
          # TODO: convert response xml into python objects
  
          if isinstance(xml, str):
              xml = xml.encode('utf-8')
  
          if isinstance(assignee_group, str):
              assignee_group = assignee_group.encode('utf-8')
  
          url = '/import/' + urlquote(project_id) + '/issues?' + urllib.parse.urlencode({'assigneeGroup': assignee_group})
          if isinstance(url, str):
              url = url.encode('utf-8')
          result = self._req_xml('PUT', url, xml, 400)
          if (result == "") and (len(issues) > 1):
              for issue in issues:
                  self.import_issues(project_id, assignee_group, [issue])
          response = ""
          try:
              response = result.toxml().encode('utf-8')
          except youtrack.YouTrackBroadException:
              sys.stderr.write("can't parse response")
              sys.stderr.write("request was")
              sys.stderr.write(xml)
              return response
          item_elements = minidom.parseString(response).getElementsByTagName("item")
          if len(item_elements) != len(issues):
              sys.stderr.write(response)
          else:
              for item in item_elements:
                  _id = item.attributes["id"].value
                  imported = item.attributes["imported"].value.lower()
                  if imported == "true":
                      print("Issue [ %s-%s ] imported successfully" % (project_id, _id))
                  else:
                      sys.stderr.write("")
                      sys.stderr.write("Failed to import issue [ %s-%s ]." % (project_id, _id))
                      sys.stderr.write("Reason : ")
                      sys.stderr.write(item.toxml())
                      sys.stderr.write("Request was :")
                      if isinstance(issue_records[_id], str):
                          sys.stderr.write(issue_records[_id].encode('utf-8'))
                      else:
                          sys.stderr.write(issue_records[_id])
                  print("")
          return response