Exemplo n.º 1
0
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)
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
def PickEventCallback(obj, event):
	actor = obj.GetActor()
	if actor:
		picked = Roster.FindPatchByActor(actor)
		patchName = picked[1]
		print patchName
		Roster.UnselectAllPatches()
		Roster.SelectPatch(patchName)
Exemplo n.º 4
0
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
Exemplo n.º 5
0
	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()
Exemplo n.º 6
0
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
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    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()
Exemplo n.º 9
0
    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)
Exemplo n.º 10
0
    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
Exemplo n.º 11
0
    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
Exemplo n.º 12
0
    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)
Exemplo n.º 13
0
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
Exemplo n.º 14
0
 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
Exemplo n.º 15
0
	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"]])
Exemplo n.º 16
0
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
Exemplo n.º 17
0
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)
Exemplo n.º 18
0
	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()
Exemplo n.º 19
0
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)
Exemplo n.º 20
0
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)
Exemplo n.º 21
0
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()
Exemplo n.º 22
0
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
Exemplo n.º 23
0
    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
                                    }
Exemplo n.º 24
0
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)
Exemplo n.º 25
0
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"
Exemplo n.º 26
0
if __name__ == "__main__":
    import Roster
    Roster.reset()
    with open("matches.txt") as x:
        for line in x:
            line.strip()
            if line != "":
                eval(line)
Exemplo n.º 27
0
		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
Exemplo n.º 28
0
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)
Exemplo n.º 29
0
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)
Exemplo n.º 30
0
    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
Exemplo n.º 31
0
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()
Exemplo n.º 32
0
        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):
Exemplo n.º 33
0
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")
Exemplo n.º 34
0
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