Hi all,

I'm trying to write a small todo list/task manager and I'm having
trouble creating the right data structure to hold the tasks. The
program should have a command line interface.

This is what I want it to do:

* A list of tasks, where each task has a number of attributes.
Each task should be able to have subtasks.

* Persistence.

* A way to display all the tasks, with subtasks indented.

* A way to filter/search on the attributes of the tasks.

What I've tried so far is something like this:

<snip>
class Task(object):
        def __init__(self, cargo, children=[]):
                self.cargo = cargo
                self.children = children
        
        def __str__(self):
                s = '\t'.join(self.cargo)
                return s
        
        def add_child(self,child):
                self.children = self.children + [child]

<snip>

cargo is a list of the attributes of the task, such as task text,
status, deadline etc

What I'm having trouble with is:

* What data structure should all the Task instances be held in?

* How to traverse all the tasks, both with recursion into the subtasks
and not. I need the traversal both to create a nice string with the
task information for printing (here I need level-aware indentation),
and to be able to search the tasks by their attributes.

I suspect what I need is a tree, but I want one with multiple roots. I
only envision having <100 tasks at any one time so I don't need a
database backend. Persistence I think I've solved by having the
container data structure dump/load itself using pickle.

Best regards,

Alexander
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to