~ubuntu-branches/ubuntu/raring/screenlets/raring

« back to all changes in this revision

Viewing changes to docs/epydoc/screenlets.plugins.Convert-pysrc.html

  • Committer: Package Import Robot
  • Author(s): Julien Lavergne
  • Date: 2012-02-12 22:47:27 UTC
  • mto: This revision was merged to the branch mainline in revision 25.
  • Revision ID: package-import@ubuntu.com-20120212224727-kjobpgxp3tmw95qd
Tags: upstream-0.1.6
ImportĀ upstreamĀ versionĀ 0.1.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
      <th class="navbar" align="right" width="100%">
35
35
        <table border="0" cellpadding="0" cellspacing="0">
36
36
          <tr><th class="navbar" align="center"
37
 
            >Screenlets 0.1.4</th>
 
37
            >Screenlets 0.1.6</th>
38
38
          </tr></table></th>
39
39
  </tr>
40
40
</table>
62
62
</table>
63
63
<h1 class="epydoc">Source Code for <a href="screenlets.plugins.Convert-module.html">Module screenlets.plugins.Convert</a></h1>
64
64
<pre class="py-src">
65
 
<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># The base Converter class. Not to be used directly.</tt> </tt>
66
 
<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"># For a commented example on how to write general converter modules, see the </tt> </tt>
67
 
<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"># file BaseConverter.py. But first, please, read below if a RatioConverter isn't </tt> </tt>
68
 
<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"># well suitable for your desired task.</tt> </tt>
69
 
<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"> </tt>
70
 
<a name="Converter"></a><div id="Converter-def"><a name="L6"></a><tt class="py-lineno">  6</tt> <a class="py-toggle" href="#" id="Converter-toggle" onclick="return toggle('Converter');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="screenlets.plugins.Convert.Converter-class.html">Converter</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
71
 
</div><div id="Converter-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Converter-expanded"><a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line">        <tt class="py-docstring">"""The base class for the converters. The converters look after maintaining </tt> </tt>
72
 
<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-docstring">        the list of currently shown values - initialising, accepting keyboard input, </tt> </tt>
73
 
<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-docstring">        etc.."""</tt> </tt>
74
 
<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"> </tt>
75
 
<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line">        <tt class="py-comment"># the name of the class</tt> </tt>
76
 
<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line">        <tt id="link-0" class="py-name" targets="Variable screenlets.Screenlet.__name__=screenlets.Screenlet-class.html#__name__,Variable screenlets.ScreenletTheme.__name__=screenlets.ScreenletTheme-class.html#__name__,Variable screenlets.plugins.Amarok.AmarokAPI.__name__=screenlets.plugins.Amarok.AmarokAPI-class.html#__name__,Variable screenlets.plugins.Audacious.AudaciousAPI.__name__=screenlets.plugins.Audacious.AudaciousAPI-class.html#__name__,Variable screenlets.plugins.Banshee.BansheeAPI.__name__=screenlets.plugins.Banshee.BansheeAPI-class.html#__name__,Variable screenlets.plugins.BaseConverter.BaseConverter.__name__=screenlets.plugins.BaseConverter.BaseConverter-class.html#__name__,Variable screenlets.plugins.Convert.Converter.__name__=screenlets.plugins.Convert.Converter-class.html#__name__,Variable screenlets.plugins.Convert.RatioConverter.__name__=screenlets.plugins.Convert.RatioConverter-class.html#__name__,Variable screenlets.plugins.Exaile.ExaileAPI.__name__=screenlets.plugins.Exaile.ExaileAPI-class.html#__name__,Variable screenlets.plugins.GenericPlayer.GenericAPI.__name__=screenlets.plugins.GenericPlayer.GenericAPI-class.html#__name__,Variable screenlets.plugins.Juk.JukAPI.__name__=screenlets.plugins.Juk.JukAPI-class.html#__name__,Variable screenlets.plugins.Kaffeine.KaffeineAPI.__name__=screenlets.plugins.Kaffeine.KaffeineAPI-class.html#__name__,Variable screenlets.plugins.LastFMProxy.LastFMProxyAPI.__name__=screenlets.plugins.LastFMProxy.LastFMProxyAPI-class.html#__name__,Variable screenlets.plugins.LengthConverter.LengthConverter.__name__=screenlets.plugins.LengthConverter.LengthConverter-class.html#__name__,Variable screenlets.plugins.Listen.ListenAPI.__name__=screenlets.plugins.Listen.ListenAPI-class.html#__name__,Variable screenlets.plugins.Quodlibet.QuodlibetAPI.__name__=screenlets.plugins.Quodlibet.QuodlibetAPI-class.html#__name__,Variable screenlets.plugins.Rhythmbox.RhythmboxAPI.__name__=screenlets.plugins.Rhythmbox.RhythmboxAPI-class.html#__name__,Variable screenlets.plugins.SizeConverter.SizeConverter.__name__=screenlets.plugins.SizeConverter.SizeConverter-class.html#__name__,Variable screenlets.plugins.Sonata.SonataAPI.__name__=screenlets.plugins.Sonata.SonataAPI-class.html#__name__,Variable screenlets.plugins.Songbird.SongbirdAPI.__name__=screenlets.plugins.Songbird.SongbirdAPI-class.html#__name__,Variable screenlets.plugins.TemperatureConverter.TemperatureConverter.__name__=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#__name__"><a title="screenlets.Screenlet.__name__
 
65
<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># This program is free software: you can redistribute it and/or modify</tt> </tt>
 
66
<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
 
67
<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"># the Free Software Foundation, either version 3 of the License, or</tt> </tt>
 
68
<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"># (at your option) any later version.</tt> </tt>
 
69
<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"># </tt> </tt>
 
70
<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"># This program is distributed in the hope that it will be useful,</tt> </tt>
 
71
<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
 
72
<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
 
73
<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
 
74
<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"># </tt> </tt>
 
75
<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
 
76
<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"># along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
 
77
<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"> </tt>
 
78
<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"># The base Converter class. Not to be used directly.</tt> </tt>
 
79
<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"># For a commented example on how to write general converter modules, see the </tt> </tt>
 
80
<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment"># file BaseConverter.py. But first, please, read below if a RatioConverter isn't </tt> </tt>
 
81
<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"># well suitable for your desired task.</tt> </tt>
 
82
<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"> </tt>
 
83
<a name="Converter"></a><div id="Converter-def"><a name="L19"></a><tt class="py-lineno"> 19</tt> <a class="py-toggle" href="#" id="Converter-toggle" onclick="return toggle('Converter');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="screenlets.plugins.Convert.Converter-class.html">Converter</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
84
</div><div id="Converter-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Converter-expanded"><a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line">        <tt class="py-docstring">"""The base class for the converters. The converters look after maintaining </tt> </tt>
 
85
<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-docstring">        the list of currently shown values - initialising, accepting keyboard input, </tt> </tt>
 
86
<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-docstring">        etc.."""</tt> </tt>
 
87
<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"> </tt>
 
88
<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line">        <tt class="py-comment"># the name of the class</tt> </tt>
 
89
<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">        <tt id="link-0" class="py-name" targets="Variable screenlets.Screenlet.__name__=screenlets.Screenlet-class.html#__name__,Variable screenlets.ScreenletTheme.__name__=screenlets.ScreenletTheme-class.html#__name__,Variable screenlets.plugins.Amarok.AmarokAPI.__name__=screenlets.plugins.Amarok.AmarokAPI-class.html#__name__,Variable screenlets.plugins.Audacious.AudaciousAPI.__name__=screenlets.plugins.Audacious.AudaciousAPI-class.html#__name__,Variable screenlets.plugins.Banshee.BansheeAPI.__name__=screenlets.plugins.Banshee.BansheeAPI-class.html#__name__,Variable screenlets.plugins.BaseConverter.BaseConverter.__name__=screenlets.plugins.BaseConverter.BaseConverter-class.html#__name__,Variable screenlets.plugins.Convert.Converter.__name__=screenlets.plugins.Convert.Converter-class.html#__name__,Variable screenlets.plugins.Convert.RatioConverter.__name__=screenlets.plugins.Convert.RatioConverter-class.html#__name__,Variable screenlets.plugins.Exaile.ExaileAPI.__name__=screenlets.plugins.Exaile.ExaileAPI-class.html#__name__,Variable screenlets.plugins.GenericPlayer.GenericAPI.__name__=screenlets.plugins.GenericPlayer.GenericAPI-class.html#__name__,Variable screenlets.plugins.Juk.JukAPI.__name__=screenlets.plugins.Juk.JukAPI-class.html#__name__,Variable screenlets.plugins.Kaffeine.KaffeineAPI.__name__=screenlets.plugins.Kaffeine.KaffeineAPI-class.html#__name__,Variable screenlets.plugins.LastFMProxy.LastFMProxyAPI.__name__=screenlets.plugins.LastFMProxy.LastFMProxyAPI-class.html#__name__,Variable screenlets.plugins.LengthConverter.LengthConverter.__name__=screenlets.plugins.LengthConverter.LengthConverter-class.html#__name__,Variable screenlets.plugins.Listen.ListenAPI.__name__=screenlets.plugins.Listen.ListenAPI-class.html#__name__,Variable screenlets.plugins.Quodlibet.QuodlibetAPI.__name__=screenlets.plugins.Quodlibet.QuodlibetAPI-class.html#__name__,Variable screenlets.plugins.Rhythmbox.RhythmboxAPI.__name__=screenlets.plugins.Rhythmbox.RhythmboxAPI-class.html#__name__,Variable screenlets.plugins.SizeConverter.SizeConverter.__name__=screenlets.plugins.SizeConverter.SizeConverter-class.html#__name__,Variable screenlets.plugins.Sonata.SonataAPI.__name__=screenlets.plugins.Sonata.SonataAPI-class.html#__name__,Variable screenlets.plugins.Songbird.SongbirdAPI.__name__=screenlets.plugins.Songbird.SongbirdAPI-class.html#__name__,Variable screenlets.plugins.TemperatureConverter.TemperatureConverter.__name__=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#__name__"><a title="screenlets.Screenlet.__name__
77
90
screenlets.ScreenletTheme.__name__
78
91
screenlets.plugins.Amarok.AmarokAPI.__name__
79
92
screenlets.plugins.Audacious.AudaciousAPI.__name__
94
107
screenlets.plugins.Sonata.SonataAPI.__name__
95
108
screenlets.plugins.Songbird.SongbirdAPI.__name__
96
109
screenlets.plugins.TemperatureConverter.TemperatureConverter.__name__" class="py-name" href="#" onclick="return doclink('link-0', '__name__', 'link-0');">__name__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Converter'</tt> </tt>
97
 
<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line">        <tt class="py-comment"># a short description to be used for selecting the converter</tt> </tt>
98
 
<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line">        <tt id="link-1" class="py-name" targets="Variable screenlets.plugins.BaseConverter.BaseConverter.__title__=screenlets.plugins.BaseConverter.BaseConverter-class.html#__title__,Variable screenlets.plugins.Convert.Converter.__title__=screenlets.plugins.Convert.Converter-class.html#__title__,Variable screenlets.plugins.Convert.RatioConverter.__title__=screenlets.plugins.Convert.RatioConverter-class.html#__title__,Variable screenlets.plugins.LengthConverter.LengthConverter.__title__=screenlets.plugins.LengthConverter.LengthConverter-class.html#__title__,Variable screenlets.plugins.SizeConverter.SizeConverter.__title__=screenlets.plugins.SizeConverter.SizeConverter-class.html#__title__,Variable screenlets.plugins.TemperatureConverter.TemperatureConverter.__title__=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#__title__"><a title="screenlets.plugins.BaseConverter.BaseConverter.__title__
 
110
<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line">        <tt class="py-comment"># a short description to be used for selecting the converter</tt> </tt>
 
111
<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">        <tt id="link-1" class="py-name" targets="Variable screenlets.plugins.BaseConverter.BaseConverter.__title__=screenlets.plugins.BaseConverter.BaseConverter-class.html#__title__,Variable screenlets.plugins.Convert.Converter.__title__=screenlets.plugins.Convert.Converter-class.html#__title__,Variable screenlets.plugins.Convert.RatioConverter.__title__=screenlets.plugins.Convert.RatioConverter-class.html#__title__,Variable screenlets.plugins.LengthConverter.LengthConverter.__title__=screenlets.plugins.LengthConverter.LengthConverter-class.html#__title__,Variable screenlets.plugins.SizeConverter.SizeConverter.__title__=screenlets.plugins.SizeConverter.SizeConverter-class.html#__title__,Variable screenlets.plugins.TemperatureConverter.TemperatureConverter.__title__=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#__title__"><a title="screenlets.plugins.BaseConverter.BaseConverter.__title__
99
112
screenlets.plugins.Convert.Converter.__title__
100
113
screenlets.plugins.Convert.RatioConverter.__title__
101
114
screenlets.plugins.LengthConverter.LengthConverter.__title__
102
115
screenlets.plugins.SizeConverter.SizeConverter.__title__
103
116
screenlets.plugins.TemperatureConverter.TemperatureConverter.__title__" class="py-name" href="#" onclick="return doclink('link-1', '__title__', 'link-1');">__title__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Base'</tt> </tt>
104
 
<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"> </tt>
105
 
<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line">        <tt class="py-comment"># the number of fields shown on the display between 2 and 4</tt> </tt>
106
 
<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line">        <tt id="link-2" class="py-name" targets="Variable screenlets.plugins.BaseConverter.BaseConverter.num_fields=screenlets.plugins.BaseConverter.BaseConverter-class.html#num_fields,Variable screenlets.plugins.Convert.Converter.num_fields=screenlets.plugins.Convert.Converter-class.html#num_fields,Variable screenlets.plugins.LengthConverter.LengthConverter.num_fields=screenlets.plugins.LengthConverter.LengthConverter-class.html#num_fields,Variable screenlets.plugins.SizeConverter.SizeConverter.num_fields=screenlets.plugins.SizeConverter.SizeConverter-class.html#num_fields,Variable screenlets.plugins.TemperatureConverter.TemperatureConverter.num_fields=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#num_fields"><a title="screenlets.plugins.BaseConverter.BaseConverter.num_fields
 
117
<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"> </tt>
 
118
<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">        <tt class="py-comment"># the number of fields shown on the display between 2 and 4</tt> </tt>
 
119
<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">        <tt id="link-2" class="py-name" targets="Variable screenlets.plugins.BaseConverter.BaseConverter.num_fields=screenlets.plugins.BaseConverter.BaseConverter-class.html#num_fields,Variable screenlets.plugins.Convert.Converter.num_fields=screenlets.plugins.Convert.Converter-class.html#num_fields,Variable screenlets.plugins.LengthConverter.LengthConverter.num_fields=screenlets.plugins.LengthConverter.LengthConverter-class.html#num_fields,Variable screenlets.plugins.SizeConverter.SizeConverter.num_fields=screenlets.plugins.SizeConverter.SizeConverter-class.html#num_fields,Variable screenlets.plugins.TemperatureConverter.TemperatureConverter.num_fields=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#num_fields"><a title="screenlets.plugins.BaseConverter.BaseConverter.num_fields
107
120
screenlets.plugins.Convert.Converter.num_fields
108
121
screenlets.plugins.LengthConverter.LengthConverter.num_fields
109
122
screenlets.plugins.SizeConverter.SizeConverter.num_fields
110
123
screenlets.plugins.TemperatureConverter.TemperatureConverter.num_fields" class="py-name" href="#" onclick="return doclink('link-2', 'num_fields', 'link-2');">num_fields</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
111
 
<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line">        <tt class="py-comment"># field captions up to 4 chars long</tt> </tt>
112
 
<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line">        <tt id="link-3" class="py-name" targets="Variable screenlets.plugins.BaseConverter.BaseConverter.field_names=screenlets.plugins.BaseConverter.BaseConverter-class.html#field_names,Variable screenlets.plugins.Convert.Converter.field_names=screenlets.plugins.Convert.Converter-class.html#field_names,Variable screenlets.plugins.LengthConverter.LengthConverter.field_names=screenlets.plugins.LengthConverter.LengthConverter-class.html#field_names,Variable screenlets.plugins.SizeConverter.SizeConverter.field_names=screenlets.plugins.SizeConverter.SizeConverter-class.html#field_names,Variable screenlets.plugins.TemperatureConverter.TemperatureConverter.field_names=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#field_names"><a title="screenlets.plugins.BaseConverter.BaseConverter.field_names
 
124
<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">        <tt class="py-comment"># field captions up to 4 chars long</tt> </tt>
 
125
<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">        <tt id="link-3" class="py-name" targets="Variable screenlets.plugins.BaseConverter.BaseConverter.field_names=screenlets.plugins.BaseConverter.BaseConverter-class.html#field_names,Variable screenlets.plugins.Convert.Converter.field_names=screenlets.plugins.Convert.Converter-class.html#field_names,Variable screenlets.plugins.LengthConverter.LengthConverter.field_names=screenlets.plugins.LengthConverter.LengthConverter-class.html#field_names,Variable screenlets.plugins.SizeConverter.SizeConverter.field_names=screenlets.plugins.SizeConverter.SizeConverter-class.html#field_names,Variable screenlets.plugins.TemperatureConverter.TemperatureConverter.field_names=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#field_names"><a title="screenlets.plugins.BaseConverter.BaseConverter.field_names
113
126
screenlets.plugins.Convert.Converter.field_names
114
127
screenlets.plugins.LengthConverter.LengthConverter.field_names
115
128
screenlets.plugins.SizeConverter.SizeConverter.field_names
116
129
screenlets.plugins.TemperatureConverter.TemperatureConverter.field_names" class="py-name" href="#" onclick="return doclink('link-3', 'field_names', 'link-3');">field_names</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
117
 
<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line">        <tt class="py-comment"># zero-based index of field having input focus</tt> </tt>
118
 
<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line">        <tt id="link-4" class="py-name" targets="Variable screenlets.plugins.Convert.Converter.active_field=screenlets.plugins.Convert.Converter-class.html#active_field"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-4', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
119
 
<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">        <tt class="py-comment"># the list of currently shown 'values'. They should always be strings.</tt> </tt>
120
 
<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line">        <tt id="link-5" class="py-name" targets="Variable screenlets.plugins.Convert.Converter.values=screenlets.plugins.Convert.Converter-class.html#values"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-5', 'values', 'link-5');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
121
 
<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line">        <tt class="py-comment"># replace: True = replace all the input by next keypress</tt> </tt>
122
 
<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">        <tt id="link-6" class="py-name" targets="Variable screenlets.plugins.Convert.Converter.replace=screenlets.plugins.Convert.Converter-class.html#replace"><a title="screenlets.plugins.Convert.Converter.replace" class="py-name" href="#" onclick="return doclink('link-6', 'replace', 'link-6');">replace</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
123
 
<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"> </tt>
124
 
<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">        <tt class="py-comment"># initialize the list of values and fill it with defaults (strings!). </tt> </tt>
125
 
<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">        <tt class="py-comment"># Override this if you don't want then be '0's.</tt> </tt>
126
 
<a name="Converter.__init__"></a><div id="Converter.__init__-def"><a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="Converter.__init__-toggle" onclick="return toggle('Converter.__init__');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.Converter-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
127
 
</div><div id="Converter.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="Converter.__init__-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-7', 'values', 'link-5');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
128
 
<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="screenlets.plugins.BaseConverter.BaseConverter.num_fields
 
130
<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">        <tt class="py-comment"># zero-based index of field having input focus</tt> </tt>
 
131
<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">        <tt id="link-4" class="py-name" targets="Variable screenlets.plugins.Convert.Converter.active_field=screenlets.plugins.Convert.Converter-class.html#active_field"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-4', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
 
132
<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">        <tt class="py-comment"># the list of currently shown 'values'. They should always be strings.</tt> </tt>
 
133
<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">        <tt id="link-5" class="py-name" targets="Variable screenlets.plugins.Convert.Converter.values=screenlets.plugins.Convert.Converter-class.html#values"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-5', 'values', 'link-5');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
134
<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">        <tt class="py-comment"># replace: True = replace all the input by next keypress</tt> </tt>
 
135
<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt id="link-6" class="py-name" targets="Variable screenlets.plugins.Convert.Converter.replace=screenlets.plugins.Convert.Converter-class.html#replace"><a title="screenlets.plugins.Convert.Converter.replace" class="py-name" href="#" onclick="return doclink('link-6', 'replace', 'link-6');">replace</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
 
136
<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"> </tt>
 
137
<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">        <tt class="py-comment"># initialize the list of values and fill it with defaults (strings!). </tt> </tt>
 
138
<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">        <tt class="py-comment"># Override this if you don't want then be '0's.</tt> </tt>
 
139
<a name="Converter.__init__"></a><div id="Converter.__init__-def"><a name="L42"></a><tt class="py-lineno"> 42</tt> <a class="py-toggle" href="#" id="Converter.__init__-toggle" onclick="return toggle('Converter.__init__');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.Converter-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
140
</div><div id="Converter.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="Converter.__init__-expanded"><a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-7', 'values', 'link-5');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
141
<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="screenlets.plugins.BaseConverter.BaseConverter.num_fields
129
142
screenlets.plugins.Convert.Converter.num_fields
130
143
screenlets.plugins.LengthConverter.LengthConverter.num_fields
131
144
screenlets.plugins.SizeConverter.SizeConverter.num_fields
132
145
screenlets.plugins.TemperatureConverter.TemperatureConverter.num_fields" class="py-name" href="#" onclick="return doclink('link-8', 'num_fields', 'link-2');">num_fields</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
133
 
<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-9', 'values', 'link-5');">values</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'0'</tt><tt class="py-op">)</tt> </tt>
134
 
<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-10', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
135
 
</div><a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">         </tt>
136
 
<a name="Converter.on_key_press"></a><div id="Converter.on_key_press-def"><a name="L35"></a><tt class="py-lineno"> 35</tt> <a class="py-toggle" href="#" id="Converter.on_key_press-toggle" onclick="return toggle('Converter.on_key_press');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.Converter-class.html#on_key_press">on_key_press</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
137
 
</div><div id="Converter.on_key_press-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="Converter.on_key_press-expanded"><a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">                <tt class="py-docstring">"""If accepted, appends the pressed key to the value in the currently </tt> </tt>
138
 
<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-docstring">                active field."""</tt> </tt>
139
 
<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">                <tt class="py-name">translate_dict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'comma'</tt><tt class="py-op">:</tt> <tt class="py-string">'.'</tt><tt class="py-op">,</tt> <tt class="py-string">'period'</tt><tt class="py-op">:</tt> <tt class="py-string">'.'</tt><tt class="py-op">,</tt> <tt class="py-string">'Add'</tt><tt class="py-op">:</tt> <tt class="py-string">'+'</tt><tt class="py-op">,</tt> <tt class="py-string">'plus'</tt><tt class="py-op">:</tt> <tt class="py-string">'+'</tt><tt class="py-op">,</tt>  </tt>
140
 
<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">                                <tt class="py-string">'Subtract'</tt><tt class="py-op">:</tt> <tt class="py-string">'-'</tt><tt class="py-op">,</tt> <tt class="py-string">'minus'</tt><tt class="py-op">:</tt> <tt class="py-string">'-'</tt><tt class="py-op">}</tt> </tt>
141
 
<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">key</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'KP_'</tt><tt class="py-op">:</tt> </tt>
142
 
<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">                        <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-op">]</tt>           <tt class="py-comment"># keys from numerical keypad come as digits</tt> </tt>
143
 
<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">translate_dict</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
144
 
<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">                        <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">translate_dict</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
145
 
<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'BackSpace'</tt><tt class="py-op">:</tt>  <tt class="py-comment"># try to guess :-)</tt> </tt>
146
 
<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-11', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-12', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-13', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-14', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
147
 
<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'Escape'</tt><tt class="py-op">:</tt>   <tt class="py-comment"># clean the field</tt> </tt>
148
 
<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-15', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-16', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
149
 
<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'Down'</tt><tt class="py-op">:</tt>             <tt class="py-comment"># move field focus</tt> </tt>
150
 
<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-17', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="screenlets.plugins.BaseConverter.BaseConverter.num_fields
 
146
<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-9', 'values', 'link-5');">values</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'0'</tt><tt class="py-op">)</tt> </tt>
 
147
<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-10', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
 
148
</div><a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">         </tt>
 
149
<a name="Converter.on_key_press"></a><div id="Converter.on_key_press-def"><a name="L48"></a><tt class="py-lineno"> 48</tt> <a class="py-toggle" href="#" id="Converter.on_key_press-toggle" onclick="return toggle('Converter.on_key_press');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.Converter-class.html#on_key_press">on_key_press</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
150
</div><div id="Converter.on_key_press-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="Converter.on_key_press-expanded"><a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">                <tt class="py-docstring">"""If accepted, appends the pressed key to the value in the currently </tt> </tt>
 
151
<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"><tt class="py-docstring">                active field."""</tt> </tt>
 
152
<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">                <tt class="py-name">translate_dict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'comma'</tt><tt class="py-op">:</tt> <tt class="py-string">'.'</tt><tt class="py-op">,</tt> <tt class="py-string">'period'</tt><tt class="py-op">:</tt> <tt class="py-string">'.'</tt><tt class="py-op">,</tt> <tt class="py-string">'Add'</tt><tt class="py-op">:</tt> <tt class="py-string">'+'</tt><tt class="py-op">,</tt> <tt class="py-string">'plus'</tt><tt class="py-op">:</tt> <tt class="py-string">'+'</tt><tt class="py-op">,</tt>  </tt>
 
153
<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">                                <tt class="py-string">'Subtract'</tt><tt class="py-op">:</tt> <tt class="py-string">'-'</tt><tt class="py-op">,</tt> <tt class="py-string">'minus'</tt><tt class="py-op">:</tt> <tt class="py-string">'-'</tt><tt class="py-op">}</tt> </tt>
 
154
<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">key</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'KP_'</tt><tt class="py-op">:</tt> </tt>
 
155
<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">                        <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-op">]</tt>           <tt class="py-comment"># keys from numerical keypad come as digits</tt> </tt>
 
156
<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">translate_dict</tt><tt class="py-op">.</tt><tt class="py-name">has_key</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
157
<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">                        <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">translate_dict</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
 
158
<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'BackSpace'</tt><tt class="py-op">:</tt>  <tt class="py-comment"># try to guess :-)</tt> </tt>
 
159
<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-11', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-12', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-13', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-14', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
 
160
<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'Escape'</tt><tt class="py-op">:</tt>   <tt class="py-comment"># clean the field</tt> </tt>
 
161
<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-15', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-16', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
 
162
<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'Down'</tt><tt class="py-op">:</tt>             <tt class="py-comment"># move field focus</tt> </tt>
 
163
<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-17', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">&lt;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="screenlets.plugins.BaseConverter.BaseConverter.num_fields
151
164
screenlets.plugins.Convert.Converter.num_fields
152
165
screenlets.plugins.LengthConverter.LengthConverter.num_fields
153
166
screenlets.plugins.SizeConverter.SizeConverter.num_fields
154
167
screenlets.plugins.TemperatureConverter.TemperatureConverter.num_fields" class="py-name" href="#" onclick="return doclink('link-18', 'num_fields', 'link-2');">num_fields</a></tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
155
 
<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-19', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
156
 
<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="screenlets.plugins.Convert.Converter.replace" class="py-name" href="#" onclick="return doclink('link-20', 'replace', 'link-6');">replace</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt>     <tt class="py-comment"># after a change, don't append next pressed </tt> </tt>
157
 
<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">                                <tt class="py-keyword">return</tt> <tt class="py-name">True</tt>                     <tt class="py-comment"># key but start over</tt> </tt>
158
 
<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
159
 
<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'Up'</tt><tt class="py-op">:</tt> </tt>
160
 
<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-21', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
161
 
<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-22', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
162
 
<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="screenlets.plugins.Convert.Converter.replace" class="py-name" href="#" onclick="return doclink('link-23', 'replace', 'link-6');">replace</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
163
 
<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">                                <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
164
 
<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
165
 
<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'Tab'</tt><tt class="py-op">:</tt> </tt>
166
 
<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-24', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
167
 
<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-25', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">%=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="screenlets.plugins.BaseConverter.BaseConverter.num_fields
 
168
<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-19', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
 
169
<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="screenlets.plugins.Convert.Converter.replace" class="py-name" href="#" onclick="return doclink('link-20', 'replace', 'link-6');">replace</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt>     <tt class="py-comment"># after a change, don't append next pressed </tt> </tt>
 
170
<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">                                <tt class="py-keyword">return</tt> <tt class="py-name">True</tt>                     <tt class="py-comment"># key but start over</tt> </tt>
 
171
<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
 
172
<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'Up'</tt><tt class="py-op">:</tt> </tt>
 
173
<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-21', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
 
174
<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-22', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">-=</tt> <tt class="py-number">1</tt> </tt>
 
175
<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="screenlets.plugins.Convert.Converter.replace" class="py-name" href="#" onclick="return doclink('link-23', 'replace', 'link-6');">replace</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
 
176
<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">                                <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
 
177
<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
 
178
<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'Tab'</tt><tt class="py-op">:</tt> </tt>
 
179
<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-24', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
 
180
<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-25', 'active_field', 'link-4');">active_field</a></tt> <tt class="py-op">%=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="screenlets.plugins.BaseConverter.BaseConverter.num_fields
168
181
screenlets.plugins.Convert.Converter.num_fields
169
182
screenlets.plugins.LengthConverter.LengthConverter.num_fields
170
183
screenlets.plugins.SizeConverter.SizeConverter.num_fields
171
184
screenlets.plugins.TemperatureConverter.TemperatureConverter.num_fields" class="py-name" href="#" onclick="return doclink('link-26', 'num_fields', 'link-2');">num_fields</a></tt> </tt>
172
 
<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="screenlets.plugins.Convert.Converter.replace" class="py-name" href="#" onclick="return doclink('link-27', 'replace', 'link-6');">replace</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
173
 
<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
174
 
<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt>           <tt class="py-comment"># leave other keys unchanged</tt> </tt>
175
 
<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method screenlets.plugins.BaseConverter.BaseConverter.filter_key()=screenlets.plugins.BaseConverter.BaseConverter-class.html#filter_key,Method screenlets.plugins.Convert.Converter.filter_key()=screenlets.plugins.Convert.Converter-class.html#filter_key,Method screenlets.plugins.Convert.RatioConverter.filter_key()=screenlets.plugins.Convert.RatioConverter-class.html#filter_key,Method screenlets.plugins.TemperatureConverter.TemperatureConverter.filter_key()=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#filter_key"><a title="screenlets.plugins.BaseConverter.BaseConverter.filter_key
 
185
<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="screenlets.plugins.Convert.Converter.replace" class="py-name" href="#" onclick="return doclink('link-27', 'replace', 'link-6');">replace</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
 
186
<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
 
187
<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt>           <tt class="py-comment"># leave other keys unchanged</tt> </tt>
 
188
<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Method screenlets.plugins.BaseConverter.BaseConverter.filter_key()=screenlets.plugins.BaseConverter.BaseConverter-class.html#filter_key,Method screenlets.plugins.Convert.Converter.filter_key()=screenlets.plugins.Convert.Converter-class.html#filter_key,Method screenlets.plugins.Convert.RatioConverter.filter_key()=screenlets.plugins.Convert.RatioConverter-class.html#filter_key,Method screenlets.plugins.TemperatureConverter.TemperatureConverter.filter_key()=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#filter_key"><a title="screenlets.plugins.BaseConverter.BaseConverter.filter_key
176
189
screenlets.plugins.Convert.Converter.filter_key
177
190
screenlets.plugins.Convert.RatioConverter.filter_key
178
191
screenlets.plugins.TemperatureConverter.TemperatureConverter.filter_key" class="py-name" href="#" onclick="return doclink('link-28', 'filter_key', 'link-28');">filter_key</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
179
 
<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">                                <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
180
 
<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="screenlets.plugins.Convert.Converter.replace" class="py-name" href="#" onclick="return doclink('link-29', 'replace', 'link-6');">replace</a></tt><tt class="py-op">:</tt> </tt>
181
 
<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-30', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-31', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
182
 
<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">                        <tt class="py-comment"># limit input length to 10 characters</tt> </tt>
183
 
<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">                        <tt class="py-keyword">elif</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-32', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-33', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">10</tt><tt class="py-op">:</tt> </tt>
184
 
<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-34', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-35', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> \ </tt>
185
 
<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">                                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-36', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-37', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">key</tt> </tt>
186
 
<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="screenlets.plugins.Convert.Converter.replace" class="py-name" href="#" onclick="return doclink('link-38', 'replace', 'link-6');">replace</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
187
 
<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method screenlets.plugins.Convert.Converter.neaten_input()=screenlets.plugins.Convert.Converter-class.html#neaten_input"><a title="screenlets.plugins.Convert.Converter.neaten_input" class="py-name" href="#" onclick="return doclink('link-39', 'neaten_input', 'link-39');">neaten_input</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
188
 
<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Method screenlets.plugins.BaseConverter.BaseConverter.convert()=screenlets.plugins.BaseConverter.BaseConverter-class.html#convert,Method screenlets.plugins.Convert.Converter.convert()=screenlets.plugins.Convert.Converter-class.html#convert,Method screenlets.plugins.Convert.RatioConverter.convert()=screenlets.plugins.Convert.RatioConverter-class.html#convert,Method screenlets.plugins.TemperatureConverter.TemperatureConverter.convert()=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#convert,Method screenlets.plugins.mpdclient2.response_fetcher.convert()=screenlets.plugins.mpdclient2.response_fetcher-class.html#convert"><a title="screenlets.plugins.BaseConverter.BaseConverter.convert
 
192
<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">                                <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
 
193
<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="screenlets.plugins.Convert.Converter.replace" class="py-name" href="#" onclick="return doclink('link-29', 'replace', 'link-6');">replace</a></tt><tt class="py-op">:</tt> </tt>
 
194
<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-30', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-31', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
 
195
<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">                        <tt class="py-comment"># limit input length to 10 characters</tt> </tt>
 
196
<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">                        <tt class="py-keyword">elif</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-32', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-33', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">10</tt><tt class="py-op">:</tt> </tt>
 
197
<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-34', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-35', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> \ </tt>
 
198
<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">                                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-36', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-37', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-name">key</tt> </tt>
 
199
<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="screenlets.plugins.Convert.Converter.replace" class="py-name" href="#" onclick="return doclink('link-38', 'replace', 'link-6');">replace</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
 
200
<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name" targets="Method screenlets.plugins.Convert.Converter.neaten_input()=screenlets.plugins.Convert.Converter-class.html#neaten_input"><a title="screenlets.plugins.Convert.Converter.neaten_input" class="py-name" href="#" onclick="return doclink('link-39', 'neaten_input', 'link-39');">neaten_input</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
201
<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Method screenlets.plugins.BaseConverter.BaseConverter.convert()=screenlets.plugins.BaseConverter.BaseConverter-class.html#convert,Method screenlets.plugins.Convert.Converter.convert()=screenlets.plugins.Convert.Converter-class.html#convert,Method screenlets.plugins.Convert.RatioConverter.convert()=screenlets.plugins.Convert.RatioConverter-class.html#convert,Method screenlets.plugins.TemperatureConverter.TemperatureConverter.convert()=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#convert,Method screenlets.plugins.mpdclient2.response_fetcher.convert()=screenlets.plugins.mpdclient2.response_fetcher-class.html#convert"><a title="screenlets.plugins.BaseConverter.BaseConverter.convert
189
202
screenlets.plugins.Convert.Converter.convert
190
203
screenlets.plugins.Convert.RatioConverter.convert
191
204
screenlets.plugins.TemperatureConverter.TemperatureConverter.convert
192
205
screenlets.plugins.mpdclient2.response_fetcher.convert" class="py-name" href="#" onclick="return doclink('link-40', 'convert', 'link-40');">convert</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
193
 
<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
194
 
</div><a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"> </tt>
195
 
<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-comment"># You can use this function instead of str or fixed-width % - it leaves </tt> </tt>
196
 
<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt class="py-comment"># 3 digits after the decimal point for floats, and no decimal part if the </tt> </tt>
197
 
<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">        <tt class="py-comment"># number is integer.</tt> </tt>
198
 
<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-comment"># Serves good if the same converter can be used for both ints ant floats,</tt> </tt>
199
 
<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">        <tt class="py-comment"># so that the user doesn't get '1.000' when not necessary, also for showing</tt> </tt>
200
 
<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-comment"># '0' instead of '0.000' in all cases.</tt> </tt>
201
 
<a name="Converter.str"></a><div id="Converter.str-def"><a name="L85"></a><tt class="py-lineno"> 85</tt> <a class="py-toggle" href="#" id="Converter.str-toggle" onclick="return toggle('Converter.str');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.Converter-class.html#str">str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
202
 
</div><div id="Converter.str-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="Converter.str-expanded"><a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">val</tt> <tt class="py-op">==</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
203
 
<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt id="link-41" class="py-name" targets="Method screenlets.plugins.Convert.Converter.str()=screenlets.plugins.Convert.Converter-class.html#str"><a title="screenlets.plugins.Convert.Converter.str" class="py-name" href="#" onclick="return doclink('link-41', 'str', 'link-41');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
204
 
<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
205
 
<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-string">'%.3f'</tt> <tt class="py-op">%</tt> <tt class="py-name">val</tt> </tt>
206
 
</div><a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"> </tt>
207
 
<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-comment"># Overridable functions:</tt> </tt>
208
 
<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"> </tt>
209
 
<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-comment"># neaten_input: see the docstring</tt> </tt>
210
 
<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-comment"># Return value: none</tt> </tt>
211
 
<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-comment"># If you don't want such function, override it in your converter with pass.</tt> </tt>
212
 
<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-comment"># If you override it by something more complicated, be careful not to modify </tt> </tt>
213
 
<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-comment"># the current value so that it breaks the input.</tt> </tt>
214
 
<a name="Converter.neaten_input"></a><div id="Converter.neaten_input-def"><a name="L98"></a><tt class="py-lineno"> 98</tt> <a class="py-toggle" href="#" id="Converter.neaten_input-toggle" onclick="return toggle('Converter.neaten_input');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.Converter-class.html#neaten_input">neaten_input</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
215
 
</div><div id="Converter.neaten_input-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="Converter.neaten_input-expanded"><a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">                <tt class="py-docstring">"""Replaces an empty value with '0' and again removes leading '0' in </tt> </tt>
216
 
<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"><tt class="py-docstring">                a non-empty string."""</tt> </tt>
217
 
<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">                <tt class="py-comment"># This version is aware of the possibility of negative input values,</tt> </tt>
218
 
<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">                <tt class="py-comment"># but you must allow + and - keys in filter_key and avoid an error when </tt> </tt>
219
 
<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">                <tt class="py-comment"># the input is '-'. See TemperatureConverter for an example.</tt> </tt>
220
 
<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-42', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-43', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt> <tt class="py-keyword">or</tt> \ </tt>
221
 
<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-44', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-45', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'+'</tt><tt class="py-op">:</tt> </tt>
222
 
<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">                                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-46', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-47', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'0'</tt> </tt>
223
 
<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-48', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-49', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'-'</tt><tt class="py-op">:</tt> </tt>
224
 
<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-50', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-51', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'-'</tt> </tt>
225
 
<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-52', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-53', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">1</tt> <tt class="py-keyword">and</tt> \ </tt>
226
 
<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-54', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-55', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'0'</tt><tt class="py-op">:</tt> </tt>
227
 
<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-56', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-57', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-58', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-59', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
228
 
</div><a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"> </tt>
229
 
<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">        <tt class="py-comment"># filter_key: decides if pressed key can be appended to current value.</tt> </tt>
230
 
<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-comment"># "key" is the GDK name of the key pressed by user</tt> </tt>
231
 
<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-comment"># Return value: True - accept key, False - reject it.</tt> </tt>
232
 
<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt class="py-comment"># There is no way to modify the value of key.</tt> </tt>
233
 
<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt class="py-comment"># Be prepared for various "keys", e.g., 'apostrophe' must not match 'a'.</tt> </tt>
234
 
<a name="Converter.filter_key"></a><div id="Converter.filter_key-def"><a name="L118"></a><tt class="py-lineno">118</tt> <a class="py-toggle" href="#" id="Converter.filter_key-toggle" onclick="return toggle('Converter.filter_key');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.Converter-class.html#filter_key">filter_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
235
 
</div><div id="Converter.filter_key-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="Converter.filter_key-expanded"><a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">                <tt class="py-docstring">"""Decides whether to accept pressed key."""</tt> </tt>
236
 
<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
237
 
</div><a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"> </tt>
238
 
<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt class="py-comment"># convert: actualizes field values to reflect input</tt> </tt>
239
 
<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-comment"># Return value: none</tt> </tt>
240
 
<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">        <tt class="py-comment"># Active value can be modified, but not so that it breaks the input.</tt> </tt>
241
 
<a name="Converter.convert"></a><div id="Converter.convert-def"><a name="L125"></a><tt class="py-lineno">125</tt> <a class="py-toggle" href="#" id="Converter.convert-toggle" onclick="return toggle('Converter.convert');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.Converter-class.html#convert">convert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
242
 
</div><div id="Converter.convert-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="Converter.convert-expanded"><a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">                <tt class="py-docstring">"""Recalculates field values after changes."""</tt> </tt>
243
 
<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">                <tt class="py-keyword">pass</tt> </tt>
244
 
</div></div><a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"> </tt>
245
 
<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"> </tt>
246
 
<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"><tt class="py-comment"># A subclass of Converter representing numerical converters whose field are </tt> </tt>
247
 
<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-comment"># bound by a simple linear relation. It cares about float value input and output </tt> </tt>
248
 
<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-comment"># and conversion, so the developer who wants to use it doesn't need to provide </tt> </tt>
249
 
<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"><tt class="py-comment"># any functions. Besides the __anything__, num_fields and field_names variables, </tt> </tt>
250
 
<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-comment"># he must only provide a list describing desired ratios (see below).</tt> </tt>
251
 
<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-comment"># Not to be used directly. See LengthConverter for a commented example.</tt> </tt>
252
 
<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"> </tt>
253
 
<a name="RatioConverter"></a><div id="RatioConverter-def"><a name="L137"></a><tt class="py-lineno">137</tt> <a class="py-toggle" href="#" id="RatioConverter-toggle" onclick="return toggle('RatioConverter');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="screenlets.plugins.Convert.RatioConverter-class.html">RatioConverter</a><tt class="py-op">(</tt><tt class="py-base-class">Converter</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
254
 
</div><div id="RatioConverter-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="RatioConverter-expanded"><a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">        <tt class="py-docstring">"""A base class of converters having linear dependances between their </tt> </tt>
255
 
<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-docstring">        fields."""</tt> </tt>
256
 
<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"> </tt>
257
 
<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">        <tt id="link-60" class="py-name"><a title="screenlets.Screenlet.__name__
 
206
<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
 
207
</div><a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"> </tt>
 
208
<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-comment"># You can use this function instead of str or fixed-width % - it leaves </tt> </tt>
 
209
<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-comment"># 3 digits after the decimal point for floats, and no decimal part if the </tt> </tt>
 
210
<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-comment"># number is integer.</tt> </tt>
 
211
<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-comment"># Serves good if the same converter can be used for both ints ant floats,</tt> </tt>
 
212
<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-comment"># so that the user doesn't get '1.000' when not necessary, also for showing</tt> </tt>
 
213
<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-comment"># '0' instead of '0.000' in all cases.</tt> </tt>
 
214
<a name="Converter.str"></a><div id="Converter.str-def"><a name="L98"></a><tt class="py-lineno"> 98</tt> <a class="py-toggle" href="#" id="Converter.str-toggle" onclick="return toggle('Converter.str');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.Converter-class.html#str">str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
215
</div><div id="Converter.str-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="Converter.str-expanded"><a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">val</tt> <tt class="py-op">==</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
216
<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt id="link-41" class="py-name" targets="Method screenlets.plugins.Convert.Converter.str()=screenlets.plugins.Convert.Converter-class.html#str"><a title="screenlets.plugins.Convert.Converter.str" class="py-name" href="#" onclick="return doclink('link-41', 'str', 'link-41');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">val</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 
217
<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
218
<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-string">'%.3f'</tt> <tt class="py-op">%</tt> <tt class="py-name">val</tt> </tt>
 
219
</div><a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"> </tt>
 
220
<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-comment"># Overridable functions:</tt> </tt>
 
221
<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"> </tt>
 
222
<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-comment"># neaten_input: see the docstring</tt> </tt>
 
223
<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-comment"># Return value: none</tt> </tt>
 
224
<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt class="py-comment"># If you don't want such function, override it in your converter with pass.</tt> </tt>
 
225
<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt class="py-comment"># If you override it by something more complicated, be careful not to modify </tt> </tt>
 
226
<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">        <tt class="py-comment"># the current value so that it breaks the input.</tt> </tt>
 
227
<a name="Converter.neaten_input"></a><div id="Converter.neaten_input-def"><a name="L111"></a><tt class="py-lineno">111</tt> <a class="py-toggle" href="#" id="Converter.neaten_input-toggle" onclick="return toggle('Converter.neaten_input');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.Converter-class.html#neaten_input">neaten_input</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
228
</div><div id="Converter.neaten_input-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="Converter.neaten_input-expanded"><a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">                <tt class="py-docstring">"""Replaces an empty value with '0' and again removes leading '0' in </tt> </tt>
 
229
<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"><tt class="py-docstring">                a non-empty string."""</tt> </tt>
 
230
<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">                <tt class="py-comment"># This version is aware of the possibility of negative input values,</tt> </tt>
 
231
<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">                <tt class="py-comment"># but you must allow + and - keys in filter_key and avoid an error when </tt> </tt>
 
232
<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">                <tt class="py-comment"># the input is '-'. See TemperatureConverter for an example.</tt> </tt>
 
233
<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-42', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-43', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt> <tt class="py-keyword">or</tt> \ </tt>
 
234
<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-44', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-45', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'+'</tt><tt class="py-op">:</tt> </tt>
 
235
<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">                                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-46', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-47', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'0'</tt> </tt>
 
236
<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-48', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-49', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'-'</tt><tt class="py-op">:</tt> </tt>
 
237
<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-50', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-51', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'-'</tt> </tt>
 
238
<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-52', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-53', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">1</tt> <tt class="py-keyword">and</tt> \ </tt>
 
239
<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">                                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-54', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-55', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'0'</tt><tt class="py-op">:</tt> </tt>
 
240
<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-56', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-57', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-58', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-59', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
 
241
</div><a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"> </tt>
 
242
<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">        <tt class="py-comment"># filter_key: decides if pressed key can be appended to current value.</tt> </tt>
 
243
<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-comment"># "key" is the GDK name of the key pressed by user</tt> </tt>
 
244
<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-comment"># Return value: True - accept key, False - reject it.</tt> </tt>
 
245
<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">        <tt class="py-comment"># There is no way to modify the value of key.</tt> </tt>
 
246
<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-comment"># Be prepared for various "keys", e.g., 'apostrophe' must not match 'a'.</tt> </tt>
 
247
<a name="Converter.filter_key"></a><div id="Converter.filter_key-def"><a name="L131"></a><tt class="py-lineno">131</tt> <a class="py-toggle" href="#" id="Converter.filter_key-toggle" onclick="return toggle('Converter.filter_key');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.Converter-class.html#filter_key">filter_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
248
</div><div id="Converter.filter_key-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="Converter.filter_key-expanded"><a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">                <tt class="py-docstring">"""Decides whether to accept pressed key."""</tt> </tt>
 
249
<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
 
250
</div><a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"> </tt>
 
251
<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">        <tt class="py-comment"># convert: actualizes field values to reflect input</tt> </tt>
 
252
<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">        <tt class="py-comment"># Return value: none</tt> </tt>
 
253
<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">        <tt class="py-comment"># Active value can be modified, but not so that it breaks the input.</tt> </tt>
 
254
<a name="Converter.convert"></a><div id="Converter.convert-def"><a name="L138"></a><tt class="py-lineno">138</tt> <a class="py-toggle" href="#" id="Converter.convert-toggle" onclick="return toggle('Converter.convert');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.Converter-class.html#convert">convert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
255
</div><div id="Converter.convert-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="Converter.convert-expanded"><a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">                <tt class="py-docstring">"""Recalculates field values after changes."""</tt> </tt>
 
256
<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">                <tt class="py-keyword">pass</tt> </tt>
 
257
</div></div><a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"> </tt>
 
258
<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line"> </tt>
 
259
<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"><tt class="py-comment"># A subclass of Converter representing numerical converters whose field are </tt> </tt>
 
260
<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"><tt class="py-comment"># bound by a simple linear relation. It cares about float value input and output </tt> </tt>
 
261
<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"><tt class="py-comment"># and conversion, so the developer who wants to use it doesn't need to provide </tt> </tt>
 
262
<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"><tt class="py-comment"># any functions. Besides the __anything__, num_fields and field_names variables, </tt> </tt>
 
263
<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"><tt class="py-comment"># he must only provide a list describing desired ratios (see below).</tt> </tt>
 
264
<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"><tt class="py-comment"># Not to be used directly. See LengthConverter for a commented example.</tt> </tt>
 
265
<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"> </tt>
 
266
<a name="RatioConverter"></a><div id="RatioConverter-def"><a name="L150"></a><tt class="py-lineno">150</tt> <a class="py-toggle" href="#" id="RatioConverter-toggle" onclick="return toggle('RatioConverter');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="screenlets.plugins.Convert.RatioConverter-class.html">RatioConverter</a><tt class="py-op">(</tt><tt class="py-base-class">Converter</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
267
</div><div id="RatioConverter-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="RatioConverter-expanded"><a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">        <tt class="py-docstring">"""A base class of converters having linear dependances between their </tt> </tt>
 
268
<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-docstring">        fields."""</tt> </tt>
 
269
<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"> </tt>
 
270
<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">        <tt id="link-60" class="py-name"><a title="screenlets.Screenlet.__name__
258
271
screenlets.ScreenletTheme.__name__
259
272
screenlets.plugins.Amarok.AmarokAPI.__name__
260
273
screenlets.plugins.Audacious.AudaciousAPI.__name__
275
288
screenlets.plugins.Sonata.SonataAPI.__name__
276
289
screenlets.plugins.Songbird.SongbirdAPI.__name__
277
290
screenlets.plugins.TemperatureConverter.TemperatureConverter.__name__" class="py-name" href="#" onclick="return doclink('link-60', '__name__', 'link-0');">__name__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'RatioConverter'</tt> </tt>
278
 
<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt id="link-61" class="py-name"><a title="screenlets.plugins.BaseConverter.BaseConverter.__title__
 
291
<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">        <tt id="link-61" class="py-name"><a title="screenlets.plugins.BaseConverter.BaseConverter.__title__
279
292
screenlets.plugins.Convert.Converter.__title__
280
293
screenlets.plugins.Convert.RatioConverter.__title__
281
294
screenlets.plugins.LengthConverter.LengthConverter.__title__
282
295
screenlets.plugins.SizeConverter.SizeConverter.__title__
283
296
screenlets.plugins.TemperatureConverter.TemperatureConverter.__title__" class="py-name" href="#" onclick="return doclink('link-61', '__title__', 'link-1');">__title__</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Base / Ratio'</tt> </tt>
284
 
<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"> </tt>
285
 
<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">        <tt class="py-comment"># The list of relative weights of the individual fields. The length of this </tt> </tt>
286
 
<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-comment"># list must be equal to num_fields. The ratio between two fields will be </tt> </tt>
287
 
<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">        <tt class="py-comment"># inverse to the ratio of corresponding entries in this list. For example, </tt> </tt>
288
 
<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">        <tt class="py-comment"># see LengthConverter. One may ask whether not to better use relative </tt> </tt>
289
 
<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">        <tt class="py-comment"># ratios, i.e., ratios between fields = ratio between entries, the answer is </tt> </tt>
290
 
<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">        <tt class="py-comment"># that this approach is more intuitive. You would set 1 for some unit and </tt> </tt>
291
 
<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">        <tt class="py-comment"># 1000 for the corresponding kilo-unit this way.</tt> </tt>
292
 
<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">        <tt class="py-comment"># The above implies that the values in this list are relative to whichever </tt> </tt>
293
 
<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">        <tt class="py-comment"># one you would choose, e.g., [10, 5, 1] (will be converted to float) is </tt> </tt>
294
 
<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">        <tt class="py-comment"># equivalent to [2.0, 1.0, 0.2]. Actually, integer (exact) values are </tt> </tt>
295
 
<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">        <tt class="py-comment"># preferred if they reflect the logic of the conversion.</tt> </tt>
296
 
<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">        <tt id="link-62" class="py-name" targets="Variable screenlets.plugins.Convert.RatioConverter.weights=screenlets.plugins.Convert.RatioConverter-class.html#weights,Variable screenlets.plugins.LengthConverter.LengthConverter.weights=screenlets.plugins.LengthConverter.LengthConverter-class.html#weights,Variable screenlets.plugins.SizeConverter.SizeConverter.weights=screenlets.plugins.SizeConverter.SizeConverter-class.html#weights"><a title="screenlets.plugins.Convert.RatioConverter.weights
 
297
<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"> </tt>
 
298
<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">        <tt class="py-comment"># The list of relative weights of the individual fields. The length of this </tt> </tt>
 
299
<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">        <tt class="py-comment"># list must be equal to num_fields. The ratio between two fields will be </tt> </tt>
 
300
<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">        <tt class="py-comment"># inverse to the ratio of corresponding entries in this list. For example, </tt> </tt>
 
301
<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">        <tt class="py-comment"># see LengthConverter. One may ask whether not to better use relative </tt> </tt>
 
302
<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">        <tt class="py-comment"># ratios, i.e., ratios between fields = ratio between entries, the answer is </tt> </tt>
 
303
<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">        <tt class="py-comment"># that this approach is more intuitive. You would set 1 for some unit and </tt> </tt>
 
304
<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">        <tt class="py-comment"># 1000 for the corresponding kilo-unit this way.</tt> </tt>
 
305
<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">        <tt class="py-comment"># The above implies that the values in this list are relative to whichever </tt> </tt>
 
306
<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">        <tt class="py-comment"># one you would choose, e.g., [10, 5, 1] (will be converted to float) is </tt> </tt>
 
307
<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">        <tt class="py-comment"># equivalent to [2.0, 1.0, 0.2]. Actually, integer (exact) values are </tt> </tt>
 
308
<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">        <tt class="py-comment"># preferred if they reflect the logic of the conversion.</tt> </tt>
 
309
<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">        <tt id="link-62" class="py-name" targets="Variable screenlets.plugins.Convert.RatioConverter.weights=screenlets.plugins.Convert.RatioConverter-class.html#weights,Variable screenlets.plugins.LengthConverter.LengthConverter.weights=screenlets.plugins.LengthConverter.LengthConverter-class.html#weights,Variable screenlets.plugins.SizeConverter.SizeConverter.weights=screenlets.plugins.SizeConverter.SizeConverter-class.html#weights"><a title="screenlets.plugins.Convert.RatioConverter.weights
297
310
screenlets.plugins.LengthConverter.LengthConverter.weights
298
311
screenlets.plugins.SizeConverter.SizeConverter.weights" class="py-name" href="#" onclick="return doclink('link-62', 'weights', 'link-62');">weights</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
299
 
<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"> </tt>
300
 
<a name="RatioConverter.filter_key"></a><div id="RatioConverter.filter_key-def"><a name="L157"></a><tt class="py-lineno">157</tt> <a class="py-toggle" href="#" id="RatioConverter.filter_key-toggle" onclick="return toggle('RatioConverter.filter_key');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.RatioConverter-class.html#filter_key">filter_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
301
 
</div><div id="RatioConverter.filter_key-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="RatioConverter.filter_key-expanded"><a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">                <tt class="py-comment"># Accept digits</tt> </tt>
302
 
<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt class="py-name">isdigit</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
303
 
<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
304
 
<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">                <tt class="py-comment"># Also accept a decimal point if there is no one yet</tt> </tt>
305
 
<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'.'</tt><tt class="py-op">:</tt> </tt>
306
 
<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-string">'.'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-63', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-64', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
307
 
<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
308
 
<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
309
 
</div><a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"> </tt>
310
 
<a name="RatioConverter.convert"></a><div id="RatioConverter.convert-def"><a name="L167"></a><tt class="py-lineno">167</tt> <a class="py-toggle" href="#" id="RatioConverter.convert-toggle" onclick="return toggle('RatioConverter.convert');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.RatioConverter-class.html#convert">convert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
311
 
</div><div id="RatioConverter.convert-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="RatioConverter.convert-expanded"><a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">                <tt class="py-comment"># A multiply-then-divide approach is used to help avoiding little</tt> </tt>
312
 
<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">                <tt class="py-comment"># inaccuracies arising in operations like (3/10)*100.</tt> </tt>
313
 
<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">                <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-65', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-66', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> \ </tt>
314
 
<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">                                <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="screenlets.plugins.Convert.RatioConverter.weights
 
312
<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"> </tt>
 
313
<a name="RatioConverter.filter_key"></a><div id="RatioConverter.filter_key-def"><a name="L170"></a><tt class="py-lineno">170</tt> <a class="py-toggle" href="#" id="RatioConverter.filter_key-toggle" onclick="return toggle('RatioConverter.filter_key');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.RatioConverter-class.html#filter_key">filter_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
314
</div><div id="RatioConverter.filter_key-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="RatioConverter.filter_key-expanded"><a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">                <tt class="py-comment"># Accept digits</tt> </tt>
 
315
<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt class="py-name">isdigit</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
316
<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
 
317
<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">                <tt class="py-comment"># Also accept a decimal point if there is no one yet</tt> </tt>
 
318
<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">key</tt> <tt class="py-op">==</tt> <tt class="py-string">'.'</tt><tt class="py-op">:</tt> </tt>
 
319
<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-string">'.'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-63', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-64', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 
320
<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
321
<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
 
322
</div><a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"> </tt>
 
323
<a name="RatioConverter.convert"></a><div id="RatioConverter.convert-def"><a name="L180"></a><tt class="py-lineno">180</tt> <a class="py-toggle" href="#" id="RatioConverter.convert-toggle" onclick="return toggle('RatioConverter.convert');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.plugins.Convert.RatioConverter-class.html#convert">convert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
324
</div><div id="RatioConverter.convert-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="RatioConverter.convert-expanded"><a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">                <tt class="py-comment"># A multiply-then-divide approach is used to help avoiding little</tt> </tt>
 
325
<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">                <tt class="py-comment"># inaccuracies arising in operations like (3/10)*100.</tt> </tt>
 
326
<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">                <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-65', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-66', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> \ </tt>
 
327
<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">                                <tt class="py-op">*</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="screenlets.plugins.Convert.RatioConverter.weights
315
328
screenlets.plugins.LengthConverter.LengthConverter.weights
316
329
screenlets.plugins.SizeConverter.SizeConverter.weights" class="py-name" href="#" onclick="return doclink('link-67', 'weights', 'link-62');">weights</a></tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-68', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">]</tt> </tt>
317
 
<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="screenlets.plugins.BaseConverter.BaseConverter.num_fields
 
330
<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="screenlets.plugins.BaseConverter.BaseConverter.num_fields
318
331
screenlets.plugins.Convert.Converter.num_fields
319
332
screenlets.plugins.LengthConverter.LengthConverter.num_fields
320
333
screenlets.plugins.SizeConverter.SizeConverter.num_fields
321
334
screenlets.plugins.TemperatureConverter.TemperatureConverter.num_fields" class="py-name" href="#" onclick="return doclink('link-69', 'num_fields', 'link-2');">num_fields</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
322
 
<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">i</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-70', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">:</tt> </tt>
323
 
<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">                                <tt class="py-keyword">continue</tt> </tt>
324
 
<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-71', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="screenlets.plugins.Convert.Converter.str" class="py-name" href="#" onclick="return doclink('link-72', 'str', 'link-41');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="screenlets.plugins.Convert.RatioConverter.weights
 
335
<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">i</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="screenlets.plugins.Convert.Converter.active_field" class="py-name" href="#" onclick="return doclink('link-70', 'active_field', 'link-4');">active_field</a></tt><tt class="py-op">:</tt> </tt>
 
336
<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">                                <tt class="py-keyword">continue</tt> </tt>
 
337
<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="screenlets.plugins.Convert.Converter.values" class="py-name" href="#" onclick="return doclink('link-71', 'values', 'link-5');">values</a></tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="screenlets.plugins.Convert.Converter.str" class="py-name" href="#" onclick="return doclink('link-72', 'str', 'link-41');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">val</tt> <tt class="py-op">/</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="screenlets.plugins.Convert.RatioConverter.weights
325
338
screenlets.plugins.LengthConverter.LengthConverter.weights
326
339
screenlets.plugins.SizeConverter.SizeConverter.weights" class="py-name" href="#" onclick="return doclink('link-73', 'weights', 'link-62');">weights</a></tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
327
 
</div></div><a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">        <tt class="py-comment"># Note: if you don't like the Converter.str() function used above which </tt> </tt>
328
 
<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">        <tt class="py-comment"># tries to always display integers as integers, you can provide your own, </tt> </tt>
329
 
<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">        <tt class="py-comment"># e.g., def str(self, val): return '%.3f' % val</tt> </tt>
330
 
<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 
340
</div></div><a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">        <tt class="py-comment"># Note: if you don't like the Converter.str() function used above which </tt> </tt>
 
341
<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">        <tt class="py-comment"># tries to always display integers as integers, you can provide your own, </tt> </tt>
 
342
<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">        <tt class="py-comment"># e.g., def str(self, val): return '%.3f' % val</tt> </tt>
 
343
<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line"> </tt><script type="text/javascript">
331
344
<!--
332
345
expandto(location.href);
333
346
// -->
358
371
      <th class="navbar" align="right" width="100%">
359
372
        <table border="0" cellpadding="0" cellspacing="0">
360
373
          <tr><th class="navbar" align="center"
361
 
            >Screenlets 0.1.4</th>
 
374
            >Screenlets 0.1.6</th>
362
375
          </tr></table></th>
363
376
  </tr>
364
377
</table>
365
378
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
366
379
  <tr>
367
380
    <td align="left" class="footer">
368
 
    Generated by Epydoc 3.0.1 on Mon Jun  6 10:56:41 2011
 
381
    Generated by Epydoc 3.0.1 on Wed Jan  4 16:58:27 2012
369
382
    </td>
370
383
    <td align="right" class="footer">
371
384
      <a target="mainFrame" href="http://epydoc.sourceforge.net"