Difference between revisions of "Template dictionary python"

From Second Life Wiki
Jump to navigation Jump to search
m (spelling error)
m
Line 10: Line 10:
def makepacketdict():
def makepacketdict():
     dict = {}
     dict = {}
     for line in open("message_template.msg", ).xreadlines():
     for line in open("message_template.msg"):
         results = re.match("^\t([^\t{}]+.+)",line)
         results = re.match("^\t([^\t{}]+.+)",line)
         if results:
         if results:
Line 16: Line 16:
             aline = aline.split()
             aline = aline.split()
             if aline[1] == "Fixed":  
             if aline[1] == "Fixed":  
                 dict[(aline[1],int("0x"+aline[2][8:],16))] = (aline[0],aline[3], aline[4])
                 dict[(aline[1],int(aline[2][8:],16))] = (aline[0],aline[3], aline[4])
             else:
             else:
                 dict[(aline[1],int(aline[2]))] = (aline[0],aline[3], aline[4])
                 dict[(aline[1],int(aline[2]))] = (aline[0],aline[3], aline[4])

Revision as of 00:27, 10 August 2010

name this file makepacketdict.py in order to use it

<python>

  1. uses the client's message_template.msg file to create a dictionary of name and other relevant packet info...
  2. make sure that message_template.msg has had all leading spaces removed and replaced with the correct number of tabs --I was exceedingly lazy when I wrote this and assumed a consistent tabbing scheme in the template

import re


def makepacketdict():

   dict = {}
   for line in open("message_template.msg"):
       results = re.match("^\t([^\t{}]+.+)",line)
       if results:
           aline = results.group(1)
           aline = aline.split()
           if aline[1] == "Fixed": 
               dict[(aline[1],int(aline[2][8:],16))] = (aline[0],aline[3], aline[4])
           else:
               dict[(aline[1],int(aline[2]))] = (aline[0],aline[3], aline[4])
   return dict

</python>