The core part of the program
Nothing is needed to install the program, just pulling it from the repo. However, it has a few prerequisites in order to run:
- python 3
- python modules:
- pytz (http://pytz.sourceforge.net/)
- lxml (http://lxml.de)
- (argparse; this one should be part of the python distribution)
- deadline.py
- Not used yet. This module should define the Deadline class.
- grouping.py
- Defines groupings of SOEs (StateOrEvents). They are used as prerequisites of tasks, and can be used to capture structure of more complex tasks or plans.
- person.py
- Not used yet. This module will handle users' identities.
- scheduler.py
- Not used yet. This module will take care of scheduling tasks into the time available.
- task.py
- Defines State, Event, Task, and a few other concepts. Especially the Task class is used heavily in the program as of now.
- util.py
- Utility functions.
- worktime.py
- Implements classes related to time and work slots, namely Interval and WorkSlot.
- wyrdin.py
- The main module of the program. Defines the user session using Session (the class) and session (a global variable), and handles parsing the command line.
- backend/generic.py
- Defines DBObject as an object with a unique ID assigned. All serializable classes that hold user's data should extend DBObject.
- backend/xml.py
- Handles writing user's data to XML files and reading the data back from those files.
- frontend/cli.py
- Implements the command-line user interface.
- nlp/parsers.py
- Provides methods for parsing objects used in the program from strings.