I'm trying to get my todo lists out of text files and into GTG. Mostly
I'm still trying to figure out how everything hangs together.
As one step along the way, I thought I'd write a script to dump all of
the tasks. Here's what I ended up with.
import sys
from GTG.core import CoreConfig
from GTG.core.datastore import DataStore
def get_requester():
"""Get a `Requester` object that we can use to manipulate the store."""
config = CoreConfig()
data_store = DataStore()
for backend in config.get_backends_list():
data_store.register_backend(backend)
config.save_datastore(data_store)
return data_store.get_requester()
def main(args):
requester = get_requester()
for tid in requester.get_tasks_list():
print str(requester.get_task(tid))
print
return 0
if __name__ == '__main__':
sys.exit(main(sys.argv[1:]))
The get_requester bit is cargo-culted from GTG/gtg.py. I don't really
understand the backend registration, nor the need to call
save_datastore before I actually do anything.
Here's what I get when I run the script a few times:
j...@truth:~/src/gtg$ python import-from-text.py
Task Object
Title: Brainstorm ideas for TDD talk
Id: 2...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x1643d40>]
Task Object
Title: Advanced TDD talk
Id: 0...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x164d878>]
Task Object
Title: Response from OSDC committee
Id: 1...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x164af38>]
j...@truth:~/src/gtg$ python import-from-text.py
Task Object
Title: Brainstorm ideas for TDD talk
Id: 2...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x240afc8>]
Task Object
Title: Response from OSDC committee
Id: 1...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x2410fc8>]
Exception in thread Thread-7 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
File "/usr/lib/python2.6/threading.py", line 525, in __bootstrap_inner
File "/usr/lib/python2.6/threading.py", line 477, in run
File "/usr/lib/pymodules/python2.6/GTG/core/datastore.py", line 244,
in __write
File "/usr/lib/pymodules/python2.6/GTG/backends/localfile.py", line
116, in set_task
File "/usr/lib/python2.6/xml/dom/minidom.py", line 45, in toxml
File "/usr/lib/python2.6/xml/dom/minidom.py", line 59, in toprettyxml
File "/usr/lib/python2.6/xml/dom/minidom.py", line 812, in writexml
File "/usr/lib/python2.6/xml/dom/minidom.py", line 527, in __getitem__
<type 'exceptions.TypeError'>: 'NoneType' object is not callable
Unhandled exception in thread started by
Error in sys.excepthook:
Original exception was:
j...@truth:~/src/gtg$ python import-from-text.py
Task Object
Title: Brainstorm ideas for TDD talk
Id: 2...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x2893fc8>]
Task Object
Title: Advanced TDD talk
Id: 0...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x289c7e8>]
Task Object
Title: Response from OSDC committee
Id: 1...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x2899fc8>]
j...@truth:~/src/gtg$ python import-from-text.py
Task Object
Title: Brainstorm ideas for TDD talk
Id: 2...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x2989fc8>]
Task Object
Title: Advanced TDD talk
Id: 0...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x29927e8>]
Task Object
Title: Response from OSDC committee
Id: 1...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x298ffc8>]
j...@truth:~/src/gtg$ python import-from-text.py
Task Object
Title: Brainstorm ideas for TDD talk
Id: 2...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x1e0afc8>]
Task Object
Title: Advanced TDD talk
Id: 0...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x1e137e8>]
Task Object
Title: Response from OSDC committee
Id: 1...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x1e10fc8>]
j...@truth:~/src/gtg$ python import-from-text.py
Task Object
Title: Brainstorm ideas for TDD talk
Id: 2...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x2df8fc8>]
Task Object
Title: Advanced TDD talk
Id: 0...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x2e017e8>]
Task Object
Title: Response from OSDC committee
Id: 1...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x2dfefc8>]
j...@truth:~/src/gtg$ python import-from-text.py
Task Object
Title: Brainstorm ideas for TDD talk
Id: 2...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x255bfc8>]
Task Object
Title: Advanced TDD talk
Id: 0...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x25647e8>]
Task Object
Title: Response from OSDC committee
Id: 1...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x2561fc8>]
j...@truth:~/src/gtg$ python import-from-text.py
Task Object
Title: Brainstorm ideas for TDD talk
Id: 2...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x1558fc8>]
Task Object
Title: Response from OSDC committee
Id: 1...@1
Status: Active
Tags: [<GTG.core.tagstore.Tag instance at 0x155efc8>]
Sometimes I get 2 tasks, sometimes 3, sometimes I get an exception.
What's the deal? Am I using the API incorrectly, or is there some
buggy threading interaction going on?
Thanks,
jml
_______________________________________________
Mailing list: https://launchpad.net/~gtg-user
Post to : [email protected]
Unsubscribe : https://launchpad.net/~gtg-user
More help : https://help.launchpad.net/ListHelp