def xmlInfo (token, proj):
  """All Project Info"""
  
  jsonprojinfo = {}
  jsonprojinfo['dataset'] = datasetdict ( proj.datasetcfg )
  jsonprojinfo['project'] = projdict ( proj )
  jsonprojinfo['channels'] = {}
  for ch in proj.projectChannels():
    jsonprojinfo['channels'][ch.getChannelName()] = chandict ( ch ) 
  jsonprojinfo['metadata'] = metadatadict( proj )
  
  root = etree.Element('Volume', InputChecksum="", host="http://openconnecto.me/ocptilecache/tilecache/viking/", name=token, num_sections=str(jsonprojinfo['dataset']['imagesize'][0][2]), num_stos="0", path="http://openconnecto.me/ocptilecache/tilecache/viking/")
  etree.SubElement(root, 'Scale', UnitsOfMeasure="nm", UnitsPerPixel=str(jsonprojinfo['dataset']['voxelres'][0][1]/jsonprojinfo['dataset']['voxelres'][0][0]))
  tileserver_element = etree.SubElement(root, 'OCPTileServer', CoordSpaceName="volume", host="http://openconnecto.me/ocptilecache/tilecache/viking/", FilePrefix="", FilePostfix=".png", TileXDim="512", TileYDim="512", GridXdim=str(jsonprojinfo['dataset']['imagesize'][0][0]/512), GridYDim=str(jsonprojinfo['dataset']['imagesize'][0][1]/512), MaxLevel=str(jsonprojinfo['dataset']["resolutions"][-1]))
  for channel_name in jsonprojinfo['channels'].keys():
    etree.SubElement(tileserver_element, "Channel", Name=channel_name, Path=channel_name, Datatype=jsonprojinfo['channels'][channel_name]['datatype'])
  for slice_number in range(jsonprojinfo['dataset']['offset'][0][2], jsonprojinfo['dataset']['offset'][0][2]+jsonprojinfo['dataset']['imagesize'][0][2]):
    etree.SubElement(root, "Section", Number="{}".format(slice_number))
  
  return etree.tostring(root)
dataset/ETHPy150Open neurodata/ndstore/ocpca/jsonprojinfo.py/xmlInfo/swapped operands of `/`