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 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
Exemple #3
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
Exemple #4
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)
Exemple #5
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)
Exemple #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
Exemple #7
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()
Exemple #8
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
Exemple #9
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
                                    }
	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()
Exemple #11
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"
Exemple #12
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
Exemple #13
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):