While the browser-oriented features of Century in the browser module and its sub-modules provides generic services for dealing with UF’s site (and potentially even other websites), the tasks module serves to accomplish specific goals, such as pulling a student’s home address from the UF phonebook (after proper authentication, of course), or looking up a student’s schedule (via ISIS, with that student’s GatorLink).
The point here is to build up a pool of ready-to-go components that can be used in larger applications without much fuss. Furthermore, tasks are not restricted to the browser.Browser namespace, and so rules governing their development are not as strict. For example, there are no limitations on dependencies here (within reason), while everything in browser is intended to be usable with nothing but the standard Python library. The point is that you can selectively choose which parts of Century you want to use, and pay the cost of extra dependencies as you go.
Forms a simple system that can be used to create task handlers. This is an abstract class, although it has no abstract methods.
Designed to be used in multiple inheritance with BaseTaskManager, as to avoid a potential diamond-like inheritance hierarchy. This is an abstract class, with the abstract method, _run().
The amount of time in seconds to wait between executions. For example, a delay of 300 would wait 5 minutes between each execution.
Starts a new execution cycle. Note that the current task should be stopped with stop() before it is started (unless you are calling for the first time).
Stops the current execution cycle.
An abc.abstractmethod() that does the desired task when called on each execution cycle.