<aname="L2"></a><ttclass="py-lineno"> 2</tt><ttclass="py-line"><ttclass="py-comment"></tt><ttclass="py-comment"># This file is part of pybliographer</tt></tt>
<aname="L7"></a><ttclass="py-lineno"> 7</tt><ttclass="py-line"><ttclass="py-comment"></tt><ttclass="py-comment"># This program is free software; you can redistribute it and/or</tt></tt>
<aname="L8"></a><ttclass="py-lineno"> 8</tt><ttclass="py-line"><ttclass="py-comment"></tt><ttclass="py-comment"># modify it under the terms of the GNU General Public License</tt></tt>
<aname="L9"></a><ttclass="py-lineno"> 9</tt><ttclass="py-line"><ttclass="py-comment"></tt><ttclass="py-comment"># as published by the Free Software Foundation; either version 2 </tt></tt>
<aname="L10"></a><ttclass="py-lineno"> 10</tt><ttclass="py-line"><ttclass="py-comment"></tt><ttclass="py-comment"># of the License, or (at your option) any later version.</tt></tt>
<aname="L12"></a><ttclass="py-lineno"> 12</tt><ttclass="py-line"><ttclass="py-comment"></tt><ttclass="py-comment"># This program is distributed in the hope that it will be useful,</tt></tt>
<aname="L13"></a><ttclass="py-lineno"> 13</tt><ttclass="py-line"><ttclass="py-comment"></tt><ttclass="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt></tt>
<aname="L14"></a><ttclass="py-lineno"> 14</tt><ttclass="py-line"><ttclass="py-comment"></tt><ttclass="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</tt></tt>
<aname="L15"></a><ttclass="py-lineno"> 15</tt><ttclass="py-line"><ttclass="py-comment"></tt><ttclass="py-comment"># GNU General Public License for more details. </tt></tt>
<aname="L17"></a><ttclass="py-lineno"> 17</tt><ttclass="py-line"><ttclass="py-comment"></tt><ttclass="py-comment"># You should have received a copy of the GNU General Public License</tt></tt>
<aname="L18"></a><ttclass="py-lineno"> 18</tt><ttclass="py-line"><ttclass="py-comment"></tt><ttclass="py-comment"># along with this program; if not, write to the Free Software</tt></tt>
<aname="L19"></a><ttclass="py-lineno"> 19</tt><ttclass="py-line"><ttclass="py-comment"></tt><ttclass="py-comment"># Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.</tt></tt>
</div><divid="Unambiguous-collapsed"style="display:none;"pad="+++"indent="++++"></div><divid="Unambiguous-expanded"><aname="L36"></a><ttclass="py-lineno"> 36</tt><ttclass="py-line"><ttclass="py-docstring">""" Base class to handle caching of generated keys. Ensures that</tt></tt>
<aname="L37"></a><ttclass="py-lineno"> 37</tt><ttclass="py-line"><ttclass="py-docstring"> the same uid will always get the same key."""</tt></tt>
</div><divid="Alpha-collapsed"style="display:none;"pad="+++"indent="++++"></div><divid="Alpha-expanded"><aname="L63"></a><ttclass="py-lineno"> 63</tt><ttclass="py-line"><ttclass="py-docstring">""" Base class to add a disambiguation letter after generated keys</tt></tt>
<aname="L64"></a><ttclass="py-lineno"> 64</tt><ttclass="py-line"><ttclass="py-docstring"> that clash with already generated ones."""</tt></tt>
</div><divid="Numeric-collapsed"style="display:none;"pad="+++"indent="++++"></div><divid="Numeric-expanded"><aname="L85"></a><ttclass="py-lineno"> 85</tt><ttclass="py-line"><ttclass="py-docstring">""" Return a numeric key for documents, in the order in which they</tt></tt>
<aname="L86"></a><ttclass="py-lineno"> 86</tt><ttclass="py-line"><ttclass="py-docstring"> are requested."""</tt></tt>
</div><divid="document_order-collapsed"style="display:none;"pad="+++"indent="++++"></div><divid="document_order-expanded"><aname="L100"></a><ttclass="py-lineno">100</tt><ttclass="py-line"><ttclass="py-docstring">""" Return citations in their order of appearance in the</tt></tt>
<aname="L101"></a><ttclass="py-lineno">101</tt><ttclass="py-line"><ttclass="py-docstring"> document. This is the order in which they are presented in input,</tt></tt>
<aname="L102"></a><ttclass="py-lineno">102</tt><ttclass="py-line"><ttclass="py-docstring"> except that we don't want duplicates. """</tt></tt>