Advertisement
Guest User

pycode

a guest
Apr 8th, 2012
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.32 KB | None | 0 0
  1. """"
  2. Qualifiers_2.py
  3.  
  4. """
  5.  
  6. from Qualifier_classes import Qualifier
  7.  
  8. file_path = 'C:\\Users\\Neo\\My Documents\\Python Scripts\\FTC Scouting\\sample.txt'
  9. file = open(file_path, 'r')
  10.  
  11. Data = []
  12. all_teams = []
  13. Teams_list = []
  14. keys = ['Team Number: ', 'Name: ','Qualifier: ']
  15. qualifier_keys = ['Qualifier: ', 'QP: ', 'RP: ', 'HS: ', 'Matches: ']
  16. team_attr = ['name','number']
  17. UI_options = [1,2]
  18.  
  19. class Team:    
  20.     def __init__(self,name,number):
  21.         self.name = name
  22.         self.number = number
  23.  
  24.     def __repr__(self):
  25.         return repr((self.name,self.number))    
  26.  
  27. def list_teams(n):
  28.     tTeams = []
  29.     for line in Data:
  30.         check = line.find(keys[n])
  31.         if not check == -1:
  32.             team = line.partition(keys[n])[2]
  33.             if team not in tTeams:
  34.                 tTeams.append(team)
  35.     return tTeams
  36.  
  37. #@param:    team_number , team to find
  38. #@output:   gives back line number in raw Data list
  39. def find_start_team(team_number):
  40.     tcount = 0
  41.  
  42.     if str(team_number) in list_teams(0):
  43.         for line in Data:
  44.             if not line.find(str(team_number)) == -1:
  45.                 return tcount
  46.             else:
  47.                 tcount += 1
  48.     else:
  49.         return 'not a valid team number'
  50.  
  51. #@param:    Start_team_number , the previous team next number
  52. #@output:   the line number for the start and end of the team's acquired info
  53. def find_team(start_team_number):
  54.     try:        
  55.         start_search = find_start_team(start_team_number)
  56.         tcount = start_search
  57.         for line in Data[start_search+1:]:
  58.             if not line.find(keys[0]) == -1:
  59.                 return start_search, tcount
  60.             else:
  61.                 tcount += 1
  62.     except ValueError:
  63.         return 'not a team number'
  64.  
  65. def team_data(start,stop):
  66.     temp_data = []
  67.     for line in Data[start:stop]:
  68.         temp_data.append(line)
  69.     return temp_data
  70.  
  71. #@param: qualifier_key , the name of the category you wish to find
  72. #@param: data , the qualifier info for some team
  73. #@output: returns back the data for the category
  74. def get_data(qualifier_key, data):
  75.     for line in data:
  76.         if not line.find(qualifier_key) == -1:
  77.             return line.partition(qualifier_key)[2]
  78.  
  79. #@param: data , the qualifier data for some team
  80. #@output: remaining_data , the remaining data after the first qualifier
  81. #               note: will return -1 if there is no more qualifiers
  82. def just_qualifiers(data):
  83.     tcount = 0
  84.     for line in data:
  85.         if not line.find(qualifier_keys[0]) == -1:
  86.             return data[tcount:]
  87.         tcount += 1
  88.     return -1
  89.  
  90. #@param: data , array of values for a single qualifier
  91. def update_qualifier(data):
  92.     tqual = Qualifier()
  93.     tqual.name = data[0]
  94.     tqual.rp = data[1]
  95.     tqual.hs = data[2]
  96.     tqual.num_of_matches = tdata[3]
  97.     return tqual
  98.    
  99. #@param: data , the block of data for the team
  100. #@output: the qualifier data and remainind data
  101. def get_qualifier(data):
  102.     temp_data = []
  103.     for key in range(len(qualifier_keys)):
  104.         temp_data.append(get_data(qualifier_keys[key],data))
  105.     temp_qual = update_qualifier(temp_data)
  106.     data = data[len(temp_data):]
  107.     return temp_qual, data
  108.  
  109. #Turns our txt file into usable data
  110. for line in file:
  111.     line = line[:-1]
  112.     Data.append(line)
  113.  
  114. #Creates a tuple for holding the ID of all the teams
  115. all_teams.append(list_teams(0))
  116. all_teams.append(list_teams(1))
  117.  
  118. #Makes an organized list of the ID for all the teams in a 2-tuple
  119. for team in range(len(list_teams(0))):
  120.     Teams_list.append(Team(all_teams[1][team],int(all_teams[0][team])))
  121.  
  122. """*******************
  123. NEW CODE
  124. *******************"""
  125.  
  126. for team in range(len(all_teams[0])):
  127.     start , stop = find_team((all_teams[0][team]))
  128.  
  129.     tdata = []
  130.     tqual = []
  131.     Qualifiers = []
  132.  
  133.     #maps the specific teams block of data to tdata
  134.     for line in team_data(start, stop):
  135.         tdata.append(line)
  136.     tdata = just_qualifiers(tdata)
  137.     print all_teams[0][team]
  138.     print tdata
  139.     while True:
  140.         if not just_qualifiers(tdata) == -1:
  141.             tqual , tdata = get_qualifier(tdata)
  142.             Qualifiers.append(tqual)        
  143.         else:
  144.             break    
  145. #    print Qualifiers
  146. #    print 'team number\t' + all_teams[0][team]
  147.  
  148. """*******************
  149. END NEW CODE
  150. *******************"""
  151.  
  152. file.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement