Hi,<br><br><div class="gmail_quote">On Tue, May 1, 2012 at 4:34 AM, Vincent Picavet <span dir="ltr">&lt;<a href="mailto:vincent.ml@oslandia.com" target="_blank">vincent.ml@oslandia.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
&gt; I would suggest that we use PEP8 - many editors will parse this and<br>
&gt; there are checking tools that can be run from the command line. I<br>
&gt; would also suggest we use 4 space indents so we can process code using<br>
&gt; pyindent. I know it isnt very consistent with QGIS C++ coding standard<br>
&gt; but many python coders are used to these standards and they are easy<br>
&gt; to check and enforce.<br>
<br>
+1 for using PEP8 as more tools and projects use it.<br>
I don&#39;t think the c++ consistency it is a problem : different language,<br>
different coding standards.<br>
<br>
&gt; I think it would be great to extend our CODING doc to include python<br>
&gt; guidelines. I have already worked on similar guidelines for another<br>
&gt; project [1] which we could easily adapt.<br>
<br>
+1<br></blockquote><div><br>Some of you may know this, but I have incorporated a style/coding checker into my soon-to-be-released Plugin Editor plugin. It currently checks against PEP8.py and an embedded version of Pylint.<br>
<br>I have also made several design decisions regarding PEP compliance and general coding style. I would very much like any input on these decisions, with regards to anticipated coding standards.<br><br>1) The default (smallest) size of the editor window is ~83 characters, with an edge line at 80, depending upon font and zoom level used. I am releasing the editor with 3 free fonts tested to ensure correct sizing across platforms. By default, I hope this helps plugin developers keep their code under 80 characters [0].<br>
<br>2) The PEP8.py checker is used &#39;as is,&#39; while the Pylint setup&#39;s pylintrc has been augmented to allow mixed case methods, etc., often found in PyQt development. I have provided the default pylintrc, the augmented one and a diff below [1]. I would appreciate any other changes to the pylintrc_pyqt I can incorporate for QGIS plugin coding standards.<br>
<br>3) There is currently an error with Pylint (and or PyQt) where Pylint chokes if PyQt4.QtCore is imported before QtGui. I am currently recommending that QtGui&#39;s import is placed first to avoid the flaw [2].<br><br>
Having run all of the core and many user plugins through the checkers, one item sticks out every time: line length. Practically no plugin file keeps within the 79 character line PEP standard. My only suggestion is that for QGIS standards, a more &#39;modern&#39; line length cap might be considered. Maybe 100 or even 120? Or should the 79 char style be adhered to?<br>
<br><br>[0] <a href="http://dl.dropbox.com/u/4058089/qgis/checkers/plugin_editor_80char-line.png">http://dl.dropbox.com/u/4058089/qgis/checkers/plugin_editor_80char-line.png</a><br>[1] <a href="http://dl.dropbox.com/u/4058089/qgis/checkers/pylintrc_pyqt.zip">http://dl.dropbox.com/u/4058089/qgis/checkers/pylintrc_pyqt.zip</a><br>
[2] <a href="http://dl.dropbox.com/u/4058089/qgis/checkers/plugin_editor_pylint-error.png">http://dl.dropbox.com/u/4058089/qgis/checkers/plugin_editor_pylint-error.png</a><br><br>Regards,<br><br>Larry Shaffer<br>Dakota Cartography<br>
Black Hills, South Dakota<br> </div></div>