Re: Xapers
authorJameson Graef Rollins <jrollins@finestructure.net>
Mon, 15 Apr 2013 19:07:25 +0000 (12:07 +1700)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:54:23 +0000 (09:54 -0800)
26/ec2f03d945d63a8fcabb434f9f423995885d91 [new file with mode: 0644]

diff --git a/26/ec2f03d945d63a8fcabb434f9f423995885d91 b/26/ec2f03d945d63a8fcabb434f9f423995885d91
new file mode 100644 (file)
index 0000000..4511f6f
--- /dev/null
@@ -0,0 +1,202 @@
+Return-Path: <jrollins@finestructure.net>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id A6486431FB6\r
+       for <notmuch@notmuchmail.org>; Mon, 15 Apr 2013 12:07:47 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -2.3\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-2.3 tagged_above=-999 required=5\r
+       tests=[RCVD_IN_DNSWL_MED=-2.3] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id MuduWRy2-amS for <notmuch@notmuchmail.org>;\r
+       Mon, 15 Apr 2013 12:07:42 -0700 (PDT)\r
+Received: from outgoing-mail.its.caltech.edu (outgoing-mail.its.caltech.edu\r
+       [131.215.239.19])\r
+       by olra.theworths.org (Postfix) with ESMTP id 2C33B431FAF\r
+       for <notmuch@notmuchmail.org>; Mon, 15 Apr 2013 12:07:42 -0700 (PDT)\r
+Received: from fire-doxen.imss.caltech.edu (localhost [127.0.0.1])\r
+       by fire-doxen-postvirus (Postfix) with ESMTP id EFEE72E50BFF;\r
+       Mon, 15 Apr 2013 12:07:31 -0700 (PDT)\r
+X-Spam-Scanned: at Caltech-IMSS on fire-doxen by amavisd-new\r
+Received: from finestructure.net (DHCP-123-224.caltech.edu [131.215.123.224])\r
+       (Authenticated sender: jrollins)\r
+       by fire-doxen-submit (Postfix) with ESMTP id EC1123281B3;\r
+       Mon, 15 Apr 2013 12:07:27 -0700 (PDT)\r
+Received: by finestructure.net (Postfix, from userid 1000)\r
+       id 99CD761707; Mon, 15 Apr 2013 12:07:27 -0700 (PDT)\r
+From: Jameson Graef Rollins <jrollins@finestructure.net>\r
+To: Patrick Totzke <patricktotzke@gmail.com>,\r
+       Notmuch Mail <notmuch@notmuchmail.org>\r
+Subject: Re: Xapers\r
+In-Reply-To: <20130415184645.698.61822@brick.lan>\r
+References: <87zjx0tdwt.fsf@servo.finestructure.net>\r
+       <87li8ju307.fsf@servo.finestructure.net>\r
+       <20130415184645.698.61822@brick.lan>\r
+User-Agent: Notmuch/0.15.2+82~ga5881dd (http://notmuchmail.org) Emacs/24.2.1\r
+       (x86_64-pc-linux-gnu)\r
+Date: Mon, 15 Apr 2013 12:07:25 -0700\r
+Message-ID: <87a9oztxxu.fsf@servo.finestructure.net>\r
+MIME-Version: 1.0\r
+Content-Type: multipart/signed; boundary="=-=-=";\r
+       micalg=pgp-sha256; protocol="application/pgp-signature"\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Mon, 15 Apr 2013 19:07:48 -0000\r
+\r
+--=-=-=\r
+Content-Type: text/plain; charset=utf-8\r
+Content-Transfer-Encoding: quoted-printable\r
+\r
+On Mon, Apr 15 2013, Patrick Totzke <patricktotzke@gmail.com> wrote:\r
+> Brilliant idea!\r
+\r
+Thanks!  I give Carl all the credit, though, since it's really all just\r
+based on the notmuch idea.\r
+\r
+> here's some early feedback:\r
+> * is there a way to batch import a bunch of pdfs? or better yet, a bibtex=\r
+ file with entries pointing\r
+>   to files like the ones produced by say jabref?\r
+>   There, entries have some line like this:\r
+>   file =3D {Boz2012.pdf:papers/Boz2012.pdf:PDF}\r
+\r
+There's not currently a prescribed way to batch import, but if you can\r
+programmatically get all pdf/bibtex pairs then it should be easy to\r
+script:\r
+\r
+  xapers import --file=3DPDF --source=3DBIBTEX\r
+\r
+> * got a bunch of traces:\r
+>   -----------------------------\r
+>   $xapers import --source=3DABK2011.pdf                                  =\r
+                                                   1 =E2=86=B5 master=20\r
+>   Reading bibtex... done.\r
+>   Adding bibtex...=20\r
+>=20=20=20\r
+>   Traceback (most recent call last):\r
+>     File "/home/pazz/.local/bin/xapers", line 145, in <module>\r
+>       docid =3D cli.add(query_string, infile=3Dinfile, source=3Dsource, t=\r
+ags=3Dtags, prompt=3Dprompt)\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/xapers/cli/ui.py"=\r
+, line 228, in add\r
+>       doc.add_bibtex(bibtex)\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/xapers/documents.=\r
+py", line 373, in add_bibtex\r
+>       self.bibentry =3D xapers.bibtex.Bibentry(bibtex)\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/xapers/bibtex.py"=\r
+, line 25, in __init__\r
+>       if os.path.exists(bibtex):\r
+>     File "/usr/lib/python2.7/genericpath.py", line 18, in exists\r
+>       os.stat(path)\r
+>   TypeError: must be encoded string without NULL bytes, not str\r
+>   ----------------------------\r
+\r
+Yikes.  Sorry about that.  Clearly more error checking is needed.\r
+\r
+The problem here is that PDFs should passed in through the --file=3D\r
+option, while source library URLs or bibtex files should be passed in\r
+through --source=3D.\r
+\r
+>   $ xapers show, then i moved around a bit\r
+>\r
+>   ----------------------------\r
+>   Traceback (most recent call last):\r
+>     File "/home/pazz/.local/bin/xapers", line 228, in <module>\r
+>       xapers.nci.UI(xroot, cmd=3Dargs)\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/xapers/nci/ui.py"=\r
+, line 73, in __init__\r
+>       self.mainloop.run()\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/main_loop.py", line 272, in run\r
+>       self.screen.run_wrapper(self._run)\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/raw_display.py", line 242, in run_wrapper\r
+>       return fn()\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/main_loop.py", line 337, in _run\r
+>       self.event_loop.run()\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/main_loop.py", line 708, in run\r
+>       self._loop()\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/main_loop.py", line 787, in _loop\r
+>       self._watch_files[fd]()\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/main_loop.py", line 388, in _update\r
+>       self.process_input(keys)\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/main_loop.py", line 488, in process_input\r
+>       k =3D self._topmost_widget.keypress(self.screen_size, k)\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/container.py", line 1120, in keypress\r
+>       return self.body.keypress( (maxcol, remaining), key )\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/xapers/nci/search=\r
+.py", line 304, in keypress\r
+>       eval(cmd)\r
+>     File "<string>", line 1, in <module>\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/xapers/nci/search=\r
+.py", line 155, in nextEntry\r
+>       self.listbox.set_focus(pos + 1)\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/listbox.py", line 567, in set_focus\r
+>       self.body.set_focus(position)\r
+>     File "/home/pazz/.local/lib/python2.7/site-packages/urwid-1.2.0_dev-p=\r
+y2.7-linux-x86_64.egg/urwid/listbox.py", line 178, in set_focus\r
+>       raise IndexError, "No widget at position %s" % (position,)\r
+>   IndexError: No widget at position 1\r
+>   ----------------------------\r
+\r
+Hrm.  Don't know what this is about.  I'll look into it.  Sorry again!\r
+\r
+> * did you already set something up to report bugs? github issues, a malin=\r
+g list?\r
+\r
+No, not yet.  I wanted to gauge interest first.  Maybe I'll go ahead and\r
+set something up on github.  In the meantime please just report bugs to\r
+be directly and I'll note them in the TODO.\r
+\r
+> Can't wait until someone forks alot to use this. I've been waiting for\r
+> someone (else) to start a project like this for some time now :)\r
+\r
+Well actually the curses UI is ripped almost entirely from alot already!\r
+It clearly needs some more work, though.\r
+\r
+Thanks for the feedback and interest!\r
+\r
+jamie.\r
+\r
+--=-=-=\r
+Content-Type: application/pgp-signature\r
+\r
+-----BEGIN PGP SIGNATURE-----\r
+Version: GnuPG v1.4.12 (GNU/Linux)\r
+\r
+iQIcBAEBCAAGBQJRbE/tAAoJEO00zqvie6q8qLkP/iZqSDRGq2/6zHy9eVA9OpQ5\r
++lhp0zbxvuvmgZ1KaAlyO9P4+a1fA1KnNxCwvt7DCj9SANDGEpqXwyW+XS3ypl75\r
+C9ab/XU9ckyhr3ZM5EdZb/tb9WN04M0vIe+JeaOrAwFfsWt1aOZ4ysRsZmVjZki2\r
+jvaXEufuO9KqyCwIF0UIqUsgOyVsfVmE5u5hUql9YaWaK6khmekkg/ncb8azL8YK\r
+CsVw1ztTUblXLsYoi8RtkZnbJ+/4GR/guJ6Luf2Z5AMZkxbLrrklIyD3DtV59Z6q\r
+Oby6MA3c6zvdf9HNMOcAhstsbnEy9e98amo65MvCu38WmKVQbvwMhEKv1K/t2dqx\r
+dDsyqT7QTpTW0/50Q8MEWuk1XwGCywUZvopHSp1SL4K5jhKiD0Dfm9aPj5khS6TI\r
+KYO8QXQqKtvP+yX1pViXfxzt6Zbc3WYirRwVf3R+UZtjd0L/uSeKg8aP3XdmNOKQ\r
+oLkyMYRrODyHywQ5UzMM9LbZEMGDFwBOJjwTwONVzTCLKtUKV+iSmqq6HwiFeGAu\r
+WDN5dbZV4o6+NAotGPkTJjSHEnOLJTwwq7/y44G1qs7UlGRq3cehcJPVjtcSx0+k\r
+E/gNHsMBQLUFZNIDz1HLoRG/FaBlpAhkupeFik6H6nal+MS625TD7zoFAfqOZzXq\r
+zjP3kQavu5TQgoEICm1o\r
+=tanp\r
+-----END PGP SIGNATURE-----\r
+--=-=-=--\r