import maya.cmds as mc
  
#create simple functions to carry out the basic Task in mind#
def getPList():
    particleShapes = mc.ls(type='particle')
    particleTrans = [mc.listRelatives(x, parent=True, type='transform')[0] for x in particleShapes]
    return particleTrans
    
    
def pPosListDict(particleName, startFrm, endFrm):
    #this is a dictionary#
    #in dictionary there are keys and value#
        #eg: {key1: value1, key2: value2}
    pPosDict = {}   
    #--------------------#
    for eachFrm in range(startFrm, (endFrm + 1)):
        mc.currentTime(eachFrm)
        pCount = mc.particle( particleName, query=True, count=True)
        for pId in range(pCount):
            #only[x,y,z]#
            eachPartPos = mc.particle(particleName, query=True, id=pId, attribute='position')
            #trying something, if "anything" happens do something else
            try:
                pPosDict[pId].append(eachPartPos)
            #keyError can be other stuff#
            except KeyError:
                pPosDict[pId] = [eachPartPos]
    return pPosDict
    
def createCurve(singParPosList):
    #checking length of list
    faultlist = 4
    if len(singParPosList) >= faultlist:
        mc.curve(d=3, p=singParPosList)
    else:
        #none#
        print "basket"
        
def gWire():
    pList = getPList()
    startFrm = 1
    endFrm = mc.getAttr("defaultRenderGlobals.endFrame")
    for pName in pList:
        pPosDict = pPosListDict(pName, startFrm, endFrm)
        for each in pPosDict.values():
             createCurve(each)
    
  
  
if __name__ == '__main__':
    gWire()