def ELO(Won, Lost, first=False): fullRoster = Roster.oRoster("c") roster = {} for name in fullRoster: roster[name] = fullRoster[name][0] if first: Roster.Edit("l", fullRoster) winTotal = 0 for i in Won: if i in roster: winTotal += roster[i] else: winTotal += 1000 winAverage = winTotal / 5 loseTotal = 0 for i in Lost: if i in roster: loseTotal += roster[i] else: loseTotal += 1000 loseAverage = loseTotal / 5 difference = loseAverage - winAverage for i in Won: if i in roster: roster[i] += f(difference) for i in Lost: if i in roster: roster[i] -= f(difference) for name in roster: fullRoster[name] = [roster[name], fullRoster[name][1]] Roster.Edit("c", fullRoster)
def __init__(self, load_file, save_file, diff): global field, player1_roster, player2_roster, save_file_name,difficulty field = Field.Field(load_file, save_file) player1_roster = Roster.Roster(load_file, "player1") player2_roster = Roster.Roster(load_file, "player2") save_file_name = save_file difficulty = diff
def PickEventCallback(obj, event): actor = obj.GetActor() if actor: picked = Roster.FindPatchByActor(actor) patchName = picked[1] print patchName Roster.UnselectAllPatches() Roster.SelectPatch(patchName)
def students_list(filename, startbool): """ This function is called in main.py and uses Roster.py to import a list of student objects from a given file. The purpose of this function is to check to see if the program has interacted with the same roster before and to check if there are any files made for that roster and imports it. If the program did not close properly, a file that contains the last interaction will be loaded to continue where its left off. Chooses the appropriate file to import Returns a list of objects from the imported file Args: student_roster: object for Roster startbool: to diffrentate wether user is changing file isQueue: to see if a queue file associated with the roster given exists interruptedQ: to see if a queue that is from a previous run that did not exit properly filename: a string of the filename GLOBAL: QUEUE_PATH -- a string containing the path of a file's queue. """ if CONFIG.DEBUG: print("Running students_list") student_roster = Roster.Roster() # queue are saved in _queue.csv while running global QUEUE_PATH queue_file = filename.split('.') student_roster = Roster.Roster() QUEUE_PATH = str(queue_file[0] + "_queue.csv") if filename != CONFIG.DATA_PATH: isQueue = os.path.exists(QUEUE_PATH) else: isQueue = False # this file will only exist if the program was not closed properly # it gets deleted at exit interruptedQ = os.path.exists('_queue.csv') # checks if there is an updated queue if startbool and interruptedQ: student_roster.import_roster('_queue.csv') elif isQueue: student_roster.import_roster(QUEUE_PATH) student_roster.students = randomizer(student_roster.students) else: student_roster.import_roster(filename) # send list to randomize student_roster.students = randomizer(student_roster.students) return student_roster.students
def OnTreeSelChanged(self, event): item = event.GetItem() print item label = self.Tree.GetItemText(item) data = self.Tree.GetPyData(item) if data == None: return elif data[0] == "Patch": Roster.UnselectAllPatches() Roster.SelectPatch(data[1]) elif data[0] == "Block": Roster.UnselectAllPatches() Roster.SelectZone(data[1]) Roster.RenderWindow.Render()
def execute(args, chatter=2): """Executes a command on the input type""" name = args.NAME if (name is None) and (args.mode == "ql"): inter = interactive.interface("execute") name = inter.request("{0} name".format(args.TYPE)) elif name is None: raise IOError("Cannot execute command on {0} without a name.".format( args.TYPE)) if args.TYPE == 'course': course = Course.Course(name) course._load(name) f = getattr(course, args.command) positional_args, varargs, keywords, defaults = inspect.getargspec(f) method_args = [vars(args)[a] for a in positional_args[1:]] if varargs is not None: for va in vars(args)[varargs]: method_args.append(va) return_args = f(*method_args) course._save() return return_args if args.TYPE == 'roster': roster = Roster.Roster(name) f = getattr(roster, args.command) positional_args, varargs, keywords, defaults = inspect.getargspec(f) method_args = [vars(args)[a] for a in argspec[0][1:]] if varargs is not None: for va in vars(args)[varargs]: method_args.append(va) return_args = f(*method_args) roster._save(name) return return_args
def clean(self): for i in range(len(self.winText)): self.winText[i] = self.winText[i].strip() for i in range(len(self.loseText)): self.loseText[i] = self.loseText[i].strip() self.winText = list(filter(lambda x: x != "", self.winText)) self.loseText = list(filter(lambda x: x != "", self.loseText)) for i in range(len(self.winText)): self.winText[i] = re.sub('[^A-Za-z0-9]+', '', self.winText[i]) for i in range(len(self.loseText)): self.loseText[i] = re.sub('[^A-Za-z0-9]+', '', self.loseText[i]) roster = Roster.oRoster("d") for i in self.winText: if i in roster.keys(): self.won.append(i) elif i.lower() == "inpgami": self.won.append("Inugami") for i in self.loseText: if roster.__contains__(i): self.lose.append(i) elif i.lower() == "inpgami": self.lose.append("Inugami") print(self.winText) print(self.loseText)
def choosePlayers(self): for i in self.top.winfo_children(): i.destroy() self.text.set("") roster = Roster.oRoster("c") players = sorted(list(roster.keys())) label = tkinter.Label(self.top, textvariable=self.text) frame = tkinter.Frame() for j in range(len(players)): player = players[j] def my_func(k=player): self.sample.append(k) self.text.set(str(self.sample)) a = tkinter.Button(frame, text=player, command=my_func, width=15) a.grid(row=j // 7, column=j % 7) frame.pack(pady=20) label.pack(pady=50) button = tkinter.Button(self.top, text="Finish", command=self.BalanceTeams) button.pack(pady=30) self.top.mainloop()
def _load(self, name=None): """load course from repository. Parameters ---------- name : str (Default value = None) Returns ------- """ if name is None: name = self.name pfile = os.path.join(m.repository, "courses", "{0}.pickle".format(name)) with open(pfile, "rb") as f: load_dict = pickle.load(f) self.roster_file = load_dict['roster_file'] self.assignments = load_dict['assignments'] self.grades = load_dict['grades'] if self.roster_file is not None: self.roster = Roster.Roster(self.roster_file)
def signIn(self): #sets jabber ID self.jid = xmpp.protocol.JID(self.jid) #Creates a client self.client = xmpp.Client(self.jid.getDomain(), debug=[]) if self.client.connect() == "": #print "not connected" return False if self.client.auth(self.jid.getNode(), self.pwd) == None: #print "authentication failed" #print self.pwd #print self.jid return False #Shows server client is online self.client.sendInitPresence() self.roster = Roster.Roster(self.client) self.roster.start() self.roster.getContactList() #must do this QtCore.QObject.connect(self.roster, QtCore.SIGNAL("buddyRequest"), self.buddyRequest) self.receiveThread = ReceiveMessage.ReceiveMessage( self.client, self.contactList()) self.receiveThread.start() self.presence = xmpp.protocol.Presence() QtCore.QObject.connect(self.receiveThread, QtCore.SIGNAL("message"), self.receiveMessage) self.statusCheck = JabberContacts.JabberContacts(self.client) self.statusCheck.start() QtCore.QObject.connect(self.statusCheck, QtCore.SIGNAL("updateBuddyStatus"), self.updateBuddies) return True
def fit(genotype): roster = Roster.oRoster("c") Atotal = 0 Btotal = 0 Ahappiness = 0 Bhappiness = 0 totalHappiness = 0 for i in range(10): index = roster[sample[int(genotype[i])]][1].index(i % 5) if i < 5: Atotal += roster[sample[int(genotype[i])]][0] Ahappiness += 5 - index else: Btotal += roster[sample[int(genotype[i])]][0] Bhappiness += 5 - index if index >= 3: totalHappiness -= 1000 else: totalHappiness += 5 - roster[sample[int( genotype[i])]][1].index(i % 5) weightedTotalHappiness = totalHappiness totalDifference = abs(Atotal - Btotal) weightedOutput = totalDifference - weightedTotalHappiness return weightedOutput
def add_roster(self, roster): """Add an existing roster from the repository. Parameters ---------- roster : str Name of roster to add to the current course Returns ------- """ rfile = os.path.join(m.repository, "rosters", "{0}.pickle".format(roster)) if os.path.isfile(rfile): self.roster = Roster.Roster(rfile) self.roster_file = rfile for student in self.roster.studentlist: self.grades['Students'][student['Last Name'], student['First Name']] = { 'Scores': [], 'Total': 0., 'Weighted Total': 0., 'Percent': None, 'Weighted Percent': None } else: print "roster/{0} does not exist.".format(roster)
def RenamePatch(patch): i = 2 while True: candidateName = "%s_%d" % (patch["Name"], i) if Roster.FindPatchByName(candidateName) == None: print "Duplicate patch %s was renamed to %s" % (patch["Name"], candidateName) patch["Name"] = candidateName break i += 1
def ratingFit(genotype): roster = Roster.oRoster("c") Atotal = 0 Btotal = 0 for i in range(10): if i < 5: Atotal += roster[sample[int(genotype[i])]][0] else: Btotal += roster[sample[int(genotype[i])]][0] totalDifference = abs(Atotal - Btotal) return totalDifference
def RosterModified(self): patchNames = map(lambda p: [p["Name"], p], Roster.GetBocoPatches()) patchNames.sort(lambda a, b: cmp(a[0], b[0])) self.Tree.DeleteChildren(self.PatchRoot) for name, patch in patchNames: item = self.Tree.AppendItem(self.PatchRoot, name) self.Tree.SetPyData(item, ["Patch", name]) c1to1Names = map(lambda p: [p["Name"], p], Roster.Get1to1Patches()) c1to1Names.sort(lambda a, b: cmp(a[0], b[0])) self.Tree.DeleteChildren(self.C1to1Root) for name, patch in c1to1Names: print "C1to1: ", name item = self.Tree.AppendItem(self.C1to1Root, name) self.Tree.SetPyData(item, ["Patch", name]) self.Tree.DeleteChildren(self.BlockRoot) for zone in Roster.Zones: item = self.Tree.AppendItem(self.BlockRoot, "(%d)%s" % (zone["Zone"], zone["Name"])) self.Tree.SetPyData(item, ["Block", zone["Name"]])
def test_all(): year = '20142015' report_type = 'PL' game_type = '02' for x in range (750,1150): game_num = Operations.pad_game_num(x) game_info = GameHeader.harvest(year, game_num, report_type, game_type) game_personnel = Roster.harvest(year, game_num) game_summary = GameSummary.harvest(year, game_num, game_info, game_personnel) yield check_refs, game_personnel, game_summary
def prune_hit(event, description_raw, game_personnel): hit_anchor = description_raw.index('HIT') delim_anchors = Operations.substring_index(description_raw, ',') assert hit_anchor != -1, "ERROR - Anchor not found" if delim_anchors == []: # No zone entered in nhl report hit_name = (" ".join( description_raw[hit_anchor + 3:])).strip (',') else: name_anchor = delim_anchors[0] + 1 hit_name = (" ".join( description_raw[hit_anchor + 3: name_anchor])).strip (',') hit_team = description_raw[hit_anchor + 1] hit_num = description_raw[hit_anchor + 2].strip('#') if hit_team == event.home_acronym: hitting_on_ice = event.away_on_ice hitting_roster = game_personnel.away_roster hit_on_ice = event.home_on_ice hit_roster = game_personnel.home_roster elif hit_team == event.away_acronym: hitting_on_ice = event.home_on_ice hitting_roster = game_personnel.home_roster hit_on_ice = event.away_on_ice hit_roster = game_personnel.away_roster else: assert False, 'ERROR: hit_team(%s) doesnt match home (%s) or away\ (%s) team'%(hit_team, event.away_acronym, event.home_acronym) if hit_anchor >= 3: hitting_team = description_raw[0] hitting_num = description_raw[1].strip('#') hitting_name = " ".join(description_raw[2:hit_anchor]) hitting_player = clone_rosterplayer( hitting_num, hitting_name, hitting_roster) else:# NHL f****d up; loaded a blank hitter if hit_team == event.away_acronym: hitting_team = event.home_acronym elif hit_team == event.home_acronym: hitting_team = event.home_acronym hitting_player = Roster.return_null_player() hit_player = clone_rosterplayer(hit_num, hit_name, hit_roster) return Hit( event.num, event.period_num, event.strength, event.time, event.event_type, event.zone, event.description, event.away_acronym, event.home_acronym, event.away_on_ice, event.home_on_ice, hitting_player, hit_player, hitting_team, hit_team)
def createRoster(self): ''' Same functionality as CourseSelect.createRoster(), but here we pass the course name in) ''' # Hide this Frame self.master.withdraw() root = Tk() root.title("Course Info") #Center frame to window. w=200 h=210 ws = root.winfo_screenwidth() # width of the screen hs = root.winfo_screenheight() x = (ws/2) - (w/2) y = (hs/2) - (h/2) root.geometry("%dx%d+%d+%d" % (w, h, x, y)) app = Roster(master=root, name=self.name) app.mainloop() root.destroy() self.master.deiconify()
def prune_block(event, description_raw, game_personnel): block_anchor = Operations.substring_index(description_raw, 'BLOCKED')[0] delim_index = Operations.substring_index(description_raw, ',')[0] + 1 assert block_anchor != -1 and delim_index != 0, "ERROR - Anchor not found" assert 'Zone' in description_raw, "ERROR - 'Zone' not found" shot_type = description_raw[-3].strip(',') blocking_team = description_raw[block_anchor + 2] blocking_num = description_raw[block_anchor + 3].strip('#') blocking_name = ( " ".join(description_raw[block_anchor + 4: delim_index])).strip (',') if blocking_team == event.home_acronym: shooting_on_ice = event.away_on_ice shooting_roster = game_personnel.away_roster blocking_on_ice = event.home_on_ice blocking_roster = game_personnel.home_roster elif blocking_team == event.away_acronym: shooting_on_ice = event.home_on_ice shooting_roster = game_personnel.home_roster blocking_on_ice = event.away_on_ice blocking_roster = game_personnel.away_roster else: assert False, 'ERROR: shooting_team(%s) doesnt match home (%s) or away\ (%s) team'%(shooting_team, event.away_acronym, event.home_acronym) if block_anchor >= 3: shooting_name = " ".join(description_raw[2:block_anchor]) shooting_team = description_raw[0] shooting_num = description_raw[1].strip('#') shooting_player = clone_rosterplayer( shooting_num, shooting_name, shooting_roster) else: # NHL f****d up; loaded a blank shooter if blocking_team == event.away_acronym: shooting_team = event.home_acronym elif blocking_team == event.home_acronym: shooting_team = event.home_acronym shooting_player = Roster.return_null_player() blocking_player = clone_rosterplayer( blocking_num, blocking_name, blocking_roster) return Block( event.num, event.period_num, event.strength, event.time, event.event_type, event.zone, event.description, event.away_acronym, event.home_acronym, event.away_on_ice, event.home_on_ice, shot_type, shooting_player, blocking_player, shooting_team, blocking_team)
def prune_miss(event, description_raw, game_personnel): delim_anchors = Operations.substring_index(description_raw, ',') delim_anchor = delim_anchors[0] + 1 assert delim_anchor != 0, "ERROR - Anchor not found" if len(delim_anchors) < 4: # Part of info is missing-usually shot/miss type shot_type = None miss_type = None else: shot_type = description_raw[-8].strip(',') miss_type = (" ".join(description_raw[delim_anchor + 1:-4])).strip(',') distance = description_raw[-2] shooting_team = description_raw[0] shooting_num = description_raw[1].strip('#') shooting_name = (" ".join(description_raw[2:delim_anchor])).strip(',') shooting_player = (shooting_num, shooting_name) if shooting_team == event.away_acronym: shooting_on_ice = event.away_on_ice shooting_roster = game_personnel.away_roster blocking_on_ice = event.home_on_ice blocking_team = event.home_acronym blocking_roster = game_personnel.home_roster elif shooting_team == event.home_acronym: shooting_on_ice = event.home_on_ice shooting_roster = game_personnel.home_roster blocking_on_ice = event.away_on_ice blocking_team = event.away_acronym blocking_roster = game_personnel.away_roster else: assert False, 'ERROR: shooting_team doesnt match home or away team' for player in blocking_on_ice: blocking_player = Roster.return_null_player() if player.pos == 'G': blocking_player = player shooting_player = clone_rosterplayer( shooting_num, shooting_name, shooting_roster) return Miss( event.num, event.period_num, event.strength, event.time, event.event_type, event.zone, event.description, event.away_acronym, event.home_acronym, event.away_on_ice, event.home_on_ice, shot_type, miss_type, distance, shooting_player, blocking_player, shooting_team, blocking_team)
def testMethods(): user = TestUser.TestUser("*****@*****.**", "0103turkey") print "Signing in........" print " " user.signIn() #print "Showing all contact information from roster: " #print " " myClient = user.getClient() print "Getting all contact information from roster: " print " " roster = Roster.Roster(myClient) roster.getContactList() print "Showing all contact information from roster: " print " " roster.printContacts()
def old_execute(args, chatter=2): """Executes a command on the input type""" name = args.NAME if (name is None) and (args.mode == "ql"): inter = interactive.interface("execute") name = inter.request("{0} name".format(args.TYPE)) elif name is None: raise IOError("Cannot execute command on {0} without a name.".format( args.TYPE)) print args.command if args.TYPE == "course": course = Course.Course(name) course._load() try: func = getattr(course, args.command[0]) return_values = func(*args.command[1:]) course.save() except AttributeError: if chatter > 0: print "{0} has no method {1}. Available options are: ".format( args.TYPE, args.command[0]) print ' '.join([ method[0] for method in inspect.getmembers( course, predicate=inspect.ismethod) ][1:]) return_values = None elif args.TYPE == "roster": roster = Roster.Roster(name) roster.loadPickle(name) try: func = getattr(roster, args.command[0]) return_values = func(*args.command[1:]) roster.save(name) except AttributeError: if chatter > 0: print "{0} has no method {1}. Available options are: ".format( args.TYPE, args.command[0]) print ' '.join([ method[0] for method in inspect.getmembers( roster, predicate=inspect.ismethod) ][1:]) return_values = None return return_values
def import_roster(self, filename, fieldnames=None, nameformat='onecolumn', idcolumn=None): """import a .csv or .pickle roster to a course. Parameters ---------- filename : str Full path to input roster file fieldnames : list Fieldnames for input roster (Default value = None) nameformat : str Format for input names (Default value = 'onecolumn') idcolumn : int Index of column containing ID numbers (Default value = None) Returns ------- """ self.roster = Roster.Roster(filename, fieldnames=fieldnames, nameformat=nameformat, idcolumn=idcolumn, name=self.name) try: self.roster._save(self.name) self.roster_file = os.path.join(m.repository, "rosters", "{0}.pickle".format(self.name)) except RosterSaveError: print "Could not save roster to repository because a roster by the same name already exists." self.roster_file = filename for student in self.roster.studentlist: self.grades['Students'][student['Last Name'], student['First Name']] = { 'Scores': [], 'Total': 0., 'Weighted Total': 0., 'Percent': None, 'Weighted Percent': None }
def prune_stop(event, description_raw, event_index, event_list, game_personnel): stopping_player = Roster.return_null_player() stopping_team = None zone = None tv_timeout = 0 timeout_caller = None description_raw = re.split('\W+', event.description) description_parsed = " ".join(description_raw) # Parse out 'TV TIMEOUT if not only item if 'TV' in description_raw: tv_timeout = 1 if len(description_raw) != 2: index = description_raw.index("TV") description_raw.pop (index) description_raw.pop (index) description_parsed = " ".join(description_raw) if 'HOME' in description_raw: timeout_caller = game_personnel.home_coach.full_name() elif 'VISITOR' in description_raw: timeout_caller = game_personnel.away_coach.full_name() if "GOALIE" in description_raw or 'FROZEN' in description_raw: stopping_team, stopping_on_ice = Operations.team_responsible( event_index, event_list) for player in stopping_on_ice: if player.pos == 'Goalie': stopping_player = player elif "ICING" in description_raw: stopping_team, stopping_on_ice = Operations.team_responsible( event_index, event_list) return Stop( event.num, event.period_num, event.strength, event.time, event.event_type, zone, event.description, event.away_acronym, event.home_acronym, event.away_on_ice, event.home_on_ice, description_parsed, stopping_player, stopping_team, tv_timeout, timeout_caller)
def create(args, chatter=2): """Create a resource""" name = args.NAME if (name is None) and (args.mode == "ql"): inter = interactive.interface("create") name = inter.request("{0} name".format(args.TYPE)) inter.close() elif name is None: raise IOError("Cannot create {0} without a name.".format(args.TYPE)) args.NAME = name resources = get(args, chatter=0) resource_list = [resources ] if not hasattr(resources, '__iter__') else resources if name in resource_list: print "{0}/{1} already exists. Try a different name or delete the other one.".format( args.TYPE, name) return None if args.TYPE == 'course': if args.mode == 'gui': print "not yet" else: new_course = Course.Course(name) new_course._save() print "created {0}/{1}".format(args.TYPE, name) return new_course elif args.TYPE == 'roster': if args.mode == 'gui': print "not yet" else: new_roster = Roster.Roster(name=name) new_roster._save(name) print "created {0}/{1}".format(args.TYPE, name) return new_roster else: print "not yet"
if __name__ == "__main__": import Roster Roster.reset() with open("matches.txt") as x: for line in x: line.strip() if line != "": eval(line)
game_personnel.home_roster) pruned_events = [] for index, event in enumerate(raw_events): pruned_event = prune_event(index, raw_events, game_personnel) pruned_events.append(pruned_event) #if pruned_event.event_type == 'HIT': # print pruned_event return PlayByPlay(raw_events, pruned_events) if __name__ == '__main__': year = '20142015' report_type = 'PL' game_type = '02' for game_num_raw in range (7,8): game_num = Operations.pad_game_num (game_num_raw) game_info = GameHeader.harvest(year, game_num, report_type, game_type) game_personnel = Roster.harvest (year, game_num) temp_pbp = harvest(year, game_num, report_type, game_type, game_info, game_personnel) print game_info for item in temp_pbp.pruned_events: if item.event_type == 'PENL': print item
def prune_goal(event, description_raw, game_personnel): prim_assist_player = Roster.return_null_player() sec_assist_player = Roster.return_null_player() scoring_team = description_raw[0] scoring_num = description_raw[1].strip('#') if scoring_team == event.away_acronym: scoring_on_ice = event.away_on_ice scoring_roster = game_personnel.away_roster defending_on_ice = event.home_on_ice defending_roster = game_personnel.away_roster defending_team = event.away_acronym elif scoring_team == event.home_acronym: scoring_on_ice = event.home_on_ice scoring_roster = game_personnel.home_roster defending_on_ice = event.away_on_ice defending_roster = game_personnel.home_roster defending_team = event.home_acronym name_anchor = Operations.substring_index(description_raw, ',')[0] + 1 shot_anchor = Operations.substring_index( description_raw[name_anchor:], ',')[0] + name_anchor + 1 distance_anchor = Operations.substring_index(description_raw, 'ft.')[0] scoring_name_raw = " ".join(description_raw[2:name_anchor]) scoring_name = prune_name(scoring_name_raw) scoring_player = clone_rosterplayer( scoring_num, scoring_name, scoring_roster) shot_type = (" ".join(description_raw[name_anchor:shot_anchor])).strip(',') distance = description_raw[distance_anchor - 1] if 'Assist:' in description_raw: assist_anchor = Operations.substring_index( description_raw, 'Assist:')[0] + 1 prim_assist_num = description_raw[assist_anchor].strip('#') prim_assist_name_raw = " ".join(description_raw[assist_anchor + 1:]) prim_assist_name = prune_name(prim_assist_name_raw) prim_assist_player = clone_rosterplayer( prim_assist_num, prim_assist_name, scoring_roster) elif 'Assists:' in description_raw: assist_anchor = Operations.substring_index( description_raw, 'Assists:')[0] + 1 sec_assist_anchor = Operations.substring_index( description_raw, ';')[0] + 1 prim_assist_num = description_raw[assist_anchor].strip('#') prim_assist_name_raw = ( " ".join(description_raw[assist_anchor + 1:sec_assist_anchor])) prim_assist_name = prune_name(prim_assist_name_raw) prim_assist_player = clone_rosterplayer( prim_assist_num, prim_assist_name, scoring_roster) sec_assist_num = description_raw[sec_assist_anchor].strip('#') sec_assist_name_raw = " ".join(description_raw[sec_assist_anchor + 1:]) sec_assist_name = prune_name(sec_assist_name_raw) sec_assist_player = clone_rosterplayer( sec_assist_num, sec_assist_name, scoring_roster) for player in defending_on_ice: # For EN goals, no goalie is on the ice goalie = Roster.return_null_player() if player.pos == 'Goalie': goalie = player return Goal( event.num, event.period_num, event.strength, event.time, event.event_type, event.zone, event.description, event.away_acronym, event.home_acronym, event.away_on_ice, event.home_on_ice, shot_type, distance, scoring_player, scoring_team, prim_assist_player, sec_assist_player, goalie, defending_team)
def prune_penl(event, description_raw, event_index, event_list, game_personnel): penalized_team_acronym = description_raw[0] if penalized_team_acronym == event.home_acronym: drawing_team = event.away_acronym drawing_on_ice = event.away_on_ice drawing_roster = game_personnel.away_roster penalized_on_ice = event.home_on_ice penalized_roster = game_personnel.home_roster elif penalized_team_acronym == event.away_acronym: drawing_team = event.home_acronym drawing_roster = game_personnel.home_roster drawing_on_ice = event.home_on_ice penalized_on_ice = event.away_on_ice penalized_roster = game_personnel.away_roster # Grabbing player information using normal split procedure # Grabbing penalized player if description_raw[1] == 'TEAM': # No penalized player penalized_player = Roster.return_null_player() else: for index, item in enumerate(description_raw[2:]): if not str(item).isupper(): name_anchor = index + 2 # Because start index for loop is 2 break penalized_num = description_raw[1].strip('#') penalized_name = " ".join(description_raw[2:name_anchor]) penalized_player = clone_rosterplayer( penalized_num, penalized_name, penalized_roster) # Grabbing drawing player try: drawing_anchor = description_raw.index('Drawn') + 2 drawing_num = description_raw [drawing_anchor + 1].strip('#') drawing_name = " ".join(description_raw [drawing_anchor + 2:]) drawing_player = clone_rosterplayer( drawing_num, drawing_name, drawing_roster) except ValueError: drawing_player = Roster.return_null_player() # Grabbing serving player try: serving_anchor = description_raw.index('Served') + 2 serving_num = description_raw [serving_anchor].strip('#') # Default end of serving name is last index in description_raw serving_name = " ".join(description_raw[serving_anchor + 1:]) # However, zone information may be present at end of description_raw for index, item in enumerate(description_raw[serving_anchor + 1:]): if item.isupper() == False: # Because start index for loop is serving_anchor + 1 end_serving_name = index + serving_anchor + 1 serving_name = " ".join(description_raw[serving_anchor + 1: end_serving_name]).strip(',') break serving_player = clone_rosterplayer( serving_num, serving_name, penalized_roster) except ValueError: serving_player = Roster.return_null_player() # Grab other info using regex splitting procedure regex_split = re.split('\W+', event.description) for index, item in enumerate(regex_split[2:]): if not str(item).isupper(): penalty_start = index + 2 break penalty_end = regex_split.index('min') - 1 length = regex_split[penalty_end] penalty_type = " ".join(regex_split[penalty_start:penalty_end]) return Penalty( event.num, event.period_num, event.strength, event.time, event.event_type, event.zone, event.description, event.away_acronym, event.home_acronym, event.away_on_ice, event.home_on_ice, penalty_type, length, penalized_player, serving_player, drawing_player, penalized_team_acronym, drawing_team)
def signIn(self): checkJID = self.jid.split('@') print checkJID[0] print checkJID[1] if checkJID[1] == "gmail.com" or checkJID[1] == "jabber.sfu.ca": self.port = 5223 print self.port if self.port == None: #self.jid = xmpp.protocol.JID(self.jid) self.client = xmpp.Client(checkJID[1],debug = []) if self.client.connect() == "": print "connect error" return False if self.client.auth(checkJID[0],self.pwd) == None: print "auth error" return False else: if checkJID[1] == "gmail.com": temp_ = "talk.google.com" else: temp_ = checkJID[1] self.client = xmpp.Client(checkJID[1],debug = []) if self.client.connect(server=(temp_,self.port)) == "": print "connect error" return False if self.client.auth(checkJID[0],self.pwd) == None: print "auth error" return False """checkJID = self.jid.split('@') if checkJID[1] == 'jabber.org': #sets jabber ID self.jid = xmpp.protocol.JID(self.jid) #Creates a client self.client = xmpp.Client(self.jid.getDomain(), debug = []) if self.client.connect() == "": #print "not connected" return False if self.client.auth(self.jid.getNode(), self.pwd) == None: #print "authentication failed" #print self.pwd #print self.jid return False elif checkJID[1] == 'jabber.sfu.ca': #Creates a client self.client = xmpp.Client('jabber.sfu.ca', 5223 , debug = []) if self.client.connect() == "": #print "not connected" return False if self.client.auth(checkJID[0], self.pwd) == None: #print "authentication failed" #print self.pwd #print self.jid return False elif checkJID[1] == 'gmail.com': self.client = xmpp.Client('gmail.com', 5223 , debug = []) if self.client.connect(server = ('talk.google.com',5223)) == "": #print "not connected" return False if self.client.auth(checkJID[0], self.pwd) == None: #print "authentication failed" #print self.pwd #print self.jid return False""" #Shows server client is online self.client.sendInitPresence() self.roster = Roster.Roster(self.client) self.roster.start() self.roster.getContactList() #must do this QtCore.QObject.connect(self.roster,QtCore.SIGNAL("buddyRequest"),self.buddyRequest) self.vcard = VcardThread.VcardThread(self.client) self.vcard.start() self.vcard.startAvatars() QtCore.QObject.connect(self.vcard,QtCore.SIGNAL("avatarsDone"),self.returnAvatars) #time.sleep(5) self.receiveThread = ReceiveMessage.ReceiveMessage(self.client,self.contactList()) self.receiveThread.start() self.presence = xmpp.protocol.Presence() QtCore.QObject.connect(self.receiveThread,QtCore.SIGNAL("message"),self.receiveMessage) self.statusCheck = JabberContacts.JabberContacts(self.client) self.statusCheck.start() QtCore.QObject.connect(self.statusCheck,QtCore.SIGNAL("updateBuddyStatus"),self.updateBuddies) return True
def Main(cgnsMeshFileName): app = App() #app.MainLoop() #return style = vtk.vtkInteractorStyleTrackballCamera() Roster.RenderWindow.GetInteractor().SetInteractorStyle(style) """ picker = vtk.vtkPropPicker() picker.AddObserver("EndPickEvent", PickEventCallback) Roster.RenderWindow.GetInteractor().SetPicker(picker) """ axesActor = vtk.vtkAxesActor() markerWidget = vtk.vtkOrientationMarkerWidget() markerWidget.SetOrientationMarker(axesActor) markerWidget.SetInteractor(Roster.RenderWindow.GetInteractor()) if cgnsMeshFileName != None: cgnsf = CGNSFile.CGNSFile(cgnsMeshFileName) zones = cgnsf.ReadZones() Roster.Zones = zones #ren = vtk.vtkRenderer() ren = Roster.Renderer B = 1 for zone in zones: xyz = cgnsf.ReadZoneCoord(B, zone["Zone"]) for boco in zone["Bocos"]: if Roster.FindPatchByName(boco["Name"]) != None: RenamePatch(boco) r = CanonizeRange(boco["Range"]) xyz2 = xyz[:, r[0] - 1:r[3], r[1] - 1:r[4], r[2] - 1:r[5]] xyzCoarse = CoarsenPatchMesh(xyz2) so = SceneObject(xyzCoarse) actors = so.ActorSurface, so.ActorOutline actors[0].GetProperty().SetColor(1.0, 1.0, 1.0) for actor in actors: ren.AddActor(actor) #Roster.Patches.append([zone, boco, actors]) Roster.RegisterPatch(zone, boco, actors) if True: for c1to1 in zone["1to1s"]: if not c1to1.IsPeriodic(): continue if Roster.FindPatchByName(c1to1["Name"]) != None: RenamePatch(c1to1) """ for i in range(2,100): candidateName = "%s_%d" % (c1to1["Name"], i) if Roster.FindPatchByName(candidateName) == None: print "Duplicate patch %s was renamed to %s" % (c1to1["Name"], candidateName) c1to1["Name"] = candidateName break """ r = CanonizeRange(c1to1["Range"]) xyz2 = xyz[:, r[0] - 1:r[3], r[1] - 1:r[4], r[2] - 1:r[5]] xyzCoarse = CoarsenPatchMesh(xyz2) so = SceneObject(xyzCoarse) actors = so.ActorSurface, so.ActorOutline actors[0].GetProperty().SetColor(0.0, 0.0, 1.0) for actor in actors: ren.AddActor(actor) Roster.RegisterPatch(zone, c1to1, actors) del xyz markerWidget.SetEnabled(True) markerWidget.InteractiveOn() Roster.RosterModified() app.MainLoop()
unitDirection = ray.direction.unit() t = (unitDirection.y + 1.0) / 2 return Vector3(1.0, 1.0, 1.0) * (1.0 - t) + Vector3(0.1, 0.2, 0.8) * t frames = 1 width = 600 height = 600 samples = 2 pic = Picture(width, height * frames) check = Checker(Vector3(0.0, 0.0, 0.3), Vector3(0.9, 0.9, 0.8)) gold = Colour(Vector3(0.8, 0.6, 0.4)) blue = Colour(Vector3(0.8, 0.3, 0.3)) roster = Roster() brick = Lambert(blue) grass = Lambert(check) mirror = Metal(gold) roster.add(Sphere(brick, Vector3(0.0, 0.0, 0.0), 0.5)) roster.add(Sphere(grass, Vector3(0.0, -100.5, 0.0), 100.0)) roster.add(Sphere(mirror, Vector3(1.0, 0.0, 0.0), 0.5)) roster.add(Sphere(mirror, Vector3(-1.0, 0.0, 0.0), 0.5)) for f in range(frames): eye = Eye(Vector3(2.0, 0.0 + float(f) * 0.5, 10.0), Vector3(0.0, 0.0, -1.0), Vector3(0.0, 1.0, 0.0), math.pi / 2, float(width) / float(height)) for x in range(width): for y in range(height):
def Borderless(week): Crimson = (169, 5, 51) lightCrimson = (237, 23, 76) darkCrimson = (119, 13, 41) Midnight = (0, 91, 148) DarkMidnight = (0, 57, 99) img = Image.new('RGB', (1000, 1000), color=DarkMidnight) draw = ImageDraw.Draw(img) draw.rectangle([(100, 100), (900, 200)], Crimson, "black") dic = Roster.oRoster("c") ldic = Roster.oRoster("l") for name in dic: dic[name] = dic[name][0] ldic[name] = ldic[name][0] font = ImageFont.truetype("JuraBook.ttf", 25) roster = [] last = [] for i in dic: roster.append([i, dic[i]]) last.append(ldic[i]) coords = [] for i in range(50, 750, 50): coords.append([(100, 200 + (i - 50)), (500, 200 + i)]) for i in range(50, 750, 50): coords.append([(500, 200 + (i - 50)), (900, 200 + i)]) for i in range(len(coords)): if i % 2 != 0: draw.rectangle(coords[i], "white", "black") else: draw.rectangle(coords[i], (173, 167, 164), "black") if i < len(roster): draw.text(xy=(coords[i][0][0], coords[i][0][1] + 15), text=(" " + roster[i][0] + ": " + str(int(roster[i][1]))), font=font, fill="black") dif = roster[i][1] - last[i] if dif < 0: downArrow(draw, coords[i][0][0] + 300, coords[i][0][1] + 20) draw.text((coords[i][0][0] + 325, coords[i][0][1] + 15), str(int(dif)), fill="red", font=font) elif dif > 0: upArrow(draw, coords[i][0][0] + 300, coords[i][0][1] + 20) draw.text((coords[i][0][0] + 325, coords[i][0][1] + 15), "+" + str(int(dif)), fill="green", font=font) header = ImageFont.truetype("GILBI___.ttf", 60) draw.text((415, 120), "Week " + str(week), font=header, fill="black") img.save("Weeks/" + "Week" + str(week) + ".png")
def balanceTeams(sample): roster = Roster.oRoster("c") def fit(genotype): roster = Roster.oRoster("c") Atotal = 0 Btotal = 0 Ahappiness = 0 Bhappiness = 0 totalHappiness = 0 for i in range(10): index = roster[sample[int(genotype[i])]][1].index(i % 5) if i < 5: Atotal += roster[sample[int(genotype[i])]][0] Ahappiness += 5 - index else: Btotal += roster[sample[int(genotype[i])]][0] Bhappiness += 5 - index if index >= 3: totalHappiness -= 1000 else: totalHappiness += 5 - roster[sample[int( genotype[i])]][1].index(i % 5) weightedTotalHappiness = totalHappiness totalDifference = abs(Atotal - Btotal) weightedOutput = totalDifference - weightedTotalHappiness return weightedOutput def ratingFit(genotype): roster = Roster.oRoster("c") Atotal = 0 Btotal = 0 for i in range(10): if i < 5: Atotal += roster[sample[int(genotype[i])]][0] else: Btotal += roster[sample[int(genotype[i])]][0] totalDifference = abs(Atotal - Btotal) return totalDifference pop = 40 mprob = 0.1 rprob = 0.5 geneSize = 10 sampleSize = len(sample) fitness = fit duration = 1000 best = np.zeros(duration) balance = Evolutionary(pop, mprob, rprob, geneSize, fitness, sampleSize) balance.run(duration) best, genotype = balance.getBest() first = [] second = [] for i in range(geneSize): if i < 5: first.append(sample[int(genotype[i])]) else: second.append(sample[int(genotype[i])]) return first, second