Premier commit : Code et doc (état de publication)
[gedit/flake8] / doc / build / html / _modules / flake8_integration / settings.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4
5 <html xmlns="http://www.w3.org/1999/xhtml">
6   <head>
7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8     
9     <title>flake8_integration.settings &mdash; gedit Flake8 integration 0.1 documentation</title>
10     
11     <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
12     <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
13     
14     <script type="text/javascript">
15       var DOCUMENTATION_OPTIONS = {
16         URL_ROOT:    '../../',
17         VERSION:     '0.1',
18         COLLAPSE_INDEX: false,
19         FILE_SUFFIX: '.html',
20         HAS_SOURCE:  true
21       };
22     </script>
23     <script type="text/javascript" src="../../_static/jquery.js"></script>
24     <script type="text/javascript" src="../../_static/underscore.js"></script>
25     <script type="text/javascript" src="../../_static/doctools.js"></script>
26     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
27     <link rel="top" title="gedit Flake8 integration 0.1 documentation" href="../../index.html" />
28     <link rel="up" title="Module code" href="../index.html" /> 
29   </head>
30   <body>
31     <div class="related">
32       <h3>Navigation</h3>
33       <ul>
34         <li class="right" style="margin-right: 10px">
35           <a href="../../genindex.html" title="General Index"
36              accesskey="I">index</a></li>
37         <li class="right" >
38           <a href="../../py-modindex.html" title="Python Module Index"
39              >modules</a> |</li>
40         <li><a href="../../index.html">gedit Flake8 integration 0.1 documentation</a> &raquo;</li>
41           <li><a href="../index.html" accesskey="U">Module code</a> &raquo;</li> 
42       </ul>
43     </div>  
44
45     <div class="document">
46       <div class="documentwrapper">
47         <div class="bodywrapper">
48           <div class="body">
49             
50   <h1>Source code for flake8_integration.settings</h1><div class="highlight"><pre>
51 <span class="c">#-*- coding: utf-8 -*-</span>
52
53 <span class="sd">&quot;&quot;&quot;Module used to define how to manage settings and their persistence</span>
54
55 <span class="sd">:author: Sébastien CHAZALLET &lt;s.chazallet@gmail.com&gt;</span>
56 <span class="sd">:organization: InsPyration EURL</span>
57 <span class="sd">:copyright: Copyright © InsPyration EURL &lt;www.inspyration.org&gt;</span>
58 <span class="sd">:license: GPL 3 &lt;http://www.gnu.org/licenses/gpl.html&gt;</span>
59
60 <span class="sd">:version: 0.1</span>
61 <span class="sd">&quot;&quot;&quot;</span>
62
63 <span class="kn">from</span> <span class="nn">gettext</span> <span class="kn">import</span> <span class="n">gettext</span> <span class="k">as</span> <span class="n">_</span>
64
65 <span class="kn">from</span> <span class="nn">gi.repository</span> <span class="kn">import</span> <span class="n">Gio</span>
66
67 <span class="n">FLAKE8_KEY_BASE</span> <span class="o">=</span> <span class="s">&#39;org.gnome.gedit.plugins.flake8_integration&#39;</span>
68
69 <span class="n">FLAKE8_KEY_W191</span> <span class="o">=</span> <span class="s">&quot;w191&quot;</span>
70 <span class="n">FLAKE8_KEY_W291</span> <span class="o">=</span> <span class="s">&quot;w291&quot;</span>
71 <span class="n">FLAKE8_KEY_W292</span> <span class="o">=</span> <span class="s">&quot;w292&quot;</span>
72 <span class="n">FLAKE8_KEY_W293</span> <span class="o">=</span> <span class="s">&quot;w293&quot;</span>
73 <span class="n">FLAKE8_KEY_W391</span> <span class="o">=</span> <span class="s">&quot;w391&quot;</span>
74
75 <span class="n">FLAKE8_IGNORED_KEYS</span> <span class="o">=</span> <span class="p">(</span><span class="n">FLAKE8_KEY_W191</span><span class="p">,</span> <span class="n">FLAKE8_KEY_W291</span><span class="p">,</span> <span class="n">FLAKE8_KEY_W292</span><span class="p">,</span>
76                        <span class="n">FLAKE8_KEY_W293</span><span class="p">,</span> <span class="n">FLAKE8_KEY_W391</span><span class="p">)</span>
77
78 <span class="n">CONFIG_OPTIONS</span> <span class="o">=</span> <span class="p">{</span><span class="n">FLAKE8_KEY_W191</span><span class="p">:</span> <span class="n">_</span><span class="p">(</span><span class="s">&quot;w191: identation contains tabs&quot;</span><span class="p">),</span>
79                   <span class="n">FLAKE8_KEY_W291</span><span class="p">:</span> <span class="n">_</span><span class="p">(</span><span class="s">&quot;w291: trailling whitespace&quot;</span><span class="p">),</span>
80                   <span class="n">FLAKE8_KEY_W292</span><span class="p">:</span> <span class="n">_</span><span class="p">(</span><span class="s">&quot;w292: no new line at end of file&quot;</span><span class="p">),</span>
81                   <span class="n">FLAKE8_KEY_W293</span><span class="p">:</span> <span class="n">_</span><span class="p">(</span><span class="s">&quot;w293: blank line contains whitespace&quot;</span><span class="p">),</span>
82                   <span class="n">FLAKE8_KEY_W391</span><span class="p">:</span> <span class="n">_</span><span class="p">(</span><span class="s">&quot;w391: blank line at end of file&quot;</span><span class="p">)}</span>
83
84 <span class="n">FLAKE8_KEY_COMPLEXITY</span> <span class="o">=</span> <span class="s">&quot;complexity&quot;</span>
85
86
87 <div class="viewcode-block" id="SettingsManager"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.settings.SettingsManager">[docs]</a><span class="k">class</span> <span class="nc">SettingsManager</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
88     <span class="sd">&quot;&quot;&quot;Allow to manage local settings and it persistent storage&quot;&quot;&quot;</span>
89
90 <div class="viewcode-block" id="SettingsManager.__init__"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.settings.SettingsManager.__init__">[docs]</a>    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
91         <span class="sd">&quot;&quot;&quot;Initialize Settings Manager</span>
92
93 <span class="sd">        :type  self: SettingsManager</span>
94 <span class="sd">        :param self: Current manager</span>
95
96 <span class="sd">        :rtype: None</span>
97 <span class="sd">        &quot;&quot;&quot;</span>
98
99         <span class="c">#_settings allow persistent storage of configuration</span>
100         <span class="bp">self</span><span class="o">.</span><span class="n">_settings</span> <span class="o">=</span> <span class="n">Gio</span><span class="o">.</span><span class="n">Settings</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="n">FLAKE8_KEY_BASE</span><span class="p">)</span>
101         <span class="c">#settings contains configuration usable in the plugin</span>
102         <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="o">=</span> <span class="p">{}</span>
103         <span class="c"># pull local settings from persistent storage</span>
104         <span class="bp">self</span><span class="o">.</span><span class="n">pull_settings</span><span class="p">()</span>
105 </div>
106 <div class="viewcode-block" id="SettingsManager.pull_settings"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.settings.SettingsManager.pull_settings">[docs]</a>    <span class="k">def</span> <span class="nf">pull_settings</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
107         <span class="sd">&quot;&quot;&quot;Pull operation update local settings from persistent storage</span>
108
109 <span class="sd">        :type  self: SettingsManager</span>
110 <span class="sd">        :param self: Current manager</span>
111
112 <span class="sd">        :rtype: None</span>
113 <span class="sd">        &quot;&quot;&quot;</span>
114
115         <span class="c"># pull ignore list</span>
116         <span class="k">for</span> <span class="n">tag</span> <span class="ow">in</span> <span class="n">FLAKE8_IGNORED_KEYS</span><span class="p">:</span>
117             <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="n">tag</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_settings</span><span class="o">.</span><span class="n">get_boolean</span><span class="p">(</span><span class="n">tag</span><span class="p">)</span>
118         <span class="c"># pull complexity</span>
119         <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="n">FLAKE8_KEY_COMPLEXITY</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_settings</span><span class="o">.</span><span class="n">get_int</span><span class="p">(</span>
120             <span class="n">FLAKE8_KEY_COMPLEXITY</span><span class="p">)</span>
121 </div>
122 <div class="viewcode-block" id="SettingsManager.push_settings"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.settings.SettingsManager.push_settings">[docs]</a>    <span class="k">def</span> <span class="nf">push_settings</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
123         <span class="sd">&quot;&quot;&quot;Push operation allow persistent storage update from local settings</span>
124
125 <span class="sd">        :type  self: SettingsManager</span>
126 <span class="sd">        :param self: Current manager</span>
127
128 <span class="sd">        :rtype: None</span>
129 <span class="sd">        &quot;&quot;&quot;</span>
130
131         <span class="c"># push ignore list</span>
132         <span class="k">for</span> <span class="n">tag</span> <span class="ow">in</span> <span class="n">FLAKE8_IGNORED_KEYS</span><span class="p">:</span>
133             <span class="bp">self</span><span class="o">.</span><span class="n">_settings</span><span class="o">.</span><span class="n">set_boolean</span><span class="p">(</span><span class="n">tag</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="n">tag</span><span class="p">])</span>
134         <span class="c"># push complexity</span>
135         <span class="bp">self</span><span class="o">.</span><span class="n">_settings</span><span class="o">.</span><span class="n">set_int</span><span class="p">(</span><span class="n">FLAKE8_KEY_COMPLEXITY</span><span class="p">,</span>
136                                <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="n">FLAKE8_KEY_COMPLEXITY</span><span class="p">])</span>
137 </div>
138 <div class="viewcode-block" id="SettingsManager.update_setting"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.settings.SettingsManager.update_setting">[docs]</a>    <span class="k">def</span> <span class="nf">update_setting</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="o">=</span><span class="p">{}):</span>
139         <span class="sd">&quot;&quot;&quot;Updating settings allow to update local and persistent settings</span>
140
141 <span class="sd">        :type  self: SettingsManager</span>
142 <span class="sd">        :param self: Current manager</span>
143 <span class="sd">        :type  values: dict</span>
144 <span class="sd">        :param values: values to store persistently</span>
145
146 <span class="sd">        :rtype: None</span>
147 <span class="sd">        &quot;&quot;&quot;</span>
148         <span class="c"># update local settings</span>
149         <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">values</span><span class="p">)</span>
150         <span class="c"># push local settings to persistent storage</span>
151         <span class="bp">self</span><span class="o">.</span><span class="n">push_settings</span><span class="p">()</span>
152 </div>
153 <div class="viewcode-block" id="SettingsManager.get_ignore_keys"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.settings.SettingsManager.get_ignore_keys">[docs]</a>    <span class="k">def</span> <span class="nf">get_ignore_keys</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
154         <span class="sd">&quot;&quot;&quot;Allow to share information about keys used to store ignore list</span>
155
156 <span class="sd">        :type  self: SettingsManager</span>
157 <span class="sd">        :param self: Current manager</span>
158
159 <span class="sd">        :rtype: list of str</span>
160 <span class="sd">        :return: list of ignore keys</span>
161 <span class="sd">        &quot;&quot;&quot;</span>
162         <span class="k">return</span> <span class="n">FLAKE8_IGNORED_KEYS</span>
163 </div>
164 <div class="viewcode-block" id="SettingsManager.get_ignore_items"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.settings.SettingsManager.get_ignore_items">[docs]</a>    <span class="k">def</span> <span class="nf">get_ignore_items</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
165         <span class="sd">&quot;&quot;&quot;Allow to share information about keys used to store ignore list</span>
166
167 <span class="sd">        :type  self: SettingsManager</span>
168 <span class="sd">        :param self: Current manager</span>
169
170 <span class="sd">        :rtype: list of tuple of str</span>
171 <span class="sd">        :return: list of (ignore key, ignore label)</span>
172 <span class="sd">        &quot;&quot;&quot;</span>
173         <span class="k">return</span> <span class="n">CONFIG_OPTIONS</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
174 </div>
175 <div class="viewcode-block" id="SettingsManager.get_complexity_key"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.settings.SettingsManager.get_complexity_key">[docs]</a>    <span class="k">def</span> <span class="nf">get_complexity_key</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
176         <span class="sd">&quot;&quot;&quot;Allow to share information about key used to store complexity</span>
177
178 <span class="sd">        :type  self: SettingsManager</span>
179 <span class="sd">        :param self: Current manager</span>
180
181 <span class="sd">        :rtype: str</span>
182 <span class="sd">        :return: name of the complexity key</span>
183 <span class="sd">        &quot;&quot;&quot;</span>
184         <span class="k">return</span> <span class="n">FLAKE8_KEY_COMPLEXITY</span>
185 </div>
186 <div class="viewcode-block" id="SettingsManager.is_in_ignore_list"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.settings.SettingsManager.is_in_ignore_list">[docs]</a>    <span class="k">def</span> <span class="nf">is_in_ignore_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
187         <span class="sd">&quot;&quot;&quot;Answer to &quot;Is tag in ignore list ?&quot; question</span>
188
189 <span class="sd">        :type  self: SettingsManager</span>
190 <span class="sd">        :param self: Current manager</span>
191 <span class="sd">        :type  key: str</span>
192 <span class="sd">        :param key: flake8 key as defined in FLAKE8_IGNORED_KEYS</span>
193
194 <span class="sd">        :rtype: bool</span>
195 <span class="sd">        :return: True if the key is in ignore list, False otherwise</span>
196 <span class="sd">        &quot;&quot;&quot;</span>
197         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
198 </div>
199 <div class="viewcode-block" id="SettingsManager.get_ignore_list"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.settings.SettingsManager.get_ignore_list">[docs]</a>    <span class="k">def</span> <span class="nf">get_ignore_list</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
200         <span class="sd">&quot;&quot;&quot;Get the user defined warning keys to ignore</span>
201
202 <span class="sd">        :type  self: SettingsManager</span>
203 <span class="sd">        :param self: Current manager</span>
204
205 <span class="sd">        :rtype: list of str</span>
206 <span class="sd">        :return: list of warning keys</span>
207 <span class="sd">        &quot;&quot;&quot;</span>
208         <span class="k">return</span> <span class="p">[</span><span class="n">tag</span> <span class="k">for</span> <span class="n">tag</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
209                 <span class="k">if</span> <span class="n">tag</span> <span class="ow">in</span> <span class="n">FLAKE8_IGNORED_KEYS</span> <span class="ow">and</span> <span class="n">value</span> <span class="ow">is</span> <span class="bp">True</span><span class="p">]</span>
210 </div>
211 <div class="viewcode-block" id="SettingsManager.get_complexity"><a class="viewcode-back" href="../../flake8_integration.html#flake8_integration.settings.SettingsManager.get_complexity">[docs]</a>    <span class="k">def</span> <span class="nf">get_complexity</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
212         <span class="sd">&quot;&quot;&quot;Get the user defined complexity parameter</span>
213
214 <span class="sd">        :type  self: SettingsManager</span>
215 <span class="sd">        :param self: Current manager</span>
216
217 <span class="sd">        :rtype: int</span>
218 <span class="sd">        :return: complexity</span>
219 <span class="sd">        &quot;&quot;&quot;</span>
220         <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="n">FLAKE8_KEY_COMPLEXITY</span><span class="p">]</span></div></div>
221 </pre></div>
222
223           </div>
224         </div>
225       </div>
226       <div class="sphinxsidebar">
227         <div class="sphinxsidebarwrapper">
228 <div id="searchbox" style="display: none">
229   <h3>Quick search</h3>
230     <form class="search" action="../../search.html" method="get">
231       <input type="text" name="q" />
232       <input type="submit" value="Go" />
233       <input type="hidden" name="check_keywords" value="yes" />
234       <input type="hidden" name="area" value="default" />
235     </form>
236     <p class="searchtip" style="font-size: 90%">
237     Enter search terms or a module, class or function name.
238     </p>
239 </div>
240 <script type="text/javascript">$('#searchbox').show(0);</script>
241         </div>
242       </div>
243       <div class="clearer"></div>
244     </div>
245     <div class="related">
246       <h3>Navigation</h3>
247       <ul>
248         <li class="right" style="margin-right: 10px">
249           <a href="../../genindex.html" title="General Index"
250              >index</a></li>
251         <li class="right" >
252           <a href="../../py-modindex.html" title="Python Module Index"
253              >modules</a> |</li>
254         <li><a href="../../index.html">gedit Flake8 integration 0.1 documentation</a> &raquo;</li>
255           <li><a href="../index.html" >Module code</a> &raquo;</li> 
256       </ul>
257     </div>
258     <div class="footer">
259         &copy; Copyright 2013, Sébastien CHAZALLET.
260       Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2b1.
261     </div>
262   </body>
263 </html>