<div dir="ltr">I'd favor weakening or removing this requirement. Besides google I've never seen any other python project which enforced this standard, and I think it's a very weak heuristic for readability.<div>
<br></div><div>Alex</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Aug 5, 2013 at 7:26 PM, Robert Collins <span dir="ltr"><<a href="mailto:robertc@robertcollins.net" target="_blank">robertc@robertcollins.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I wanted to get a temperature reading from everyone on this style guideline.<br>
<br>
My view on it is that it's a useful heuristic but shouldn't be a<br>
golden rule applied everywhere. Things like matches are designed to be<br>
used as a dsl:<br>
    self.assertThat(foo, Or(Equals("1"), Equals("2")))<br>
<br>
rather than what H302 enforces:<br>
    self.assertThat(foo, matchers.Or(matchers.Equals("1"),<br>
matchers.Equals("2")))<br>
<br>
Further, conflicting module names become harder to manage, when one<br>
could import just the thing.<br>
<br>
Some arguments for requiring imports of modules:<br>
 - makes the source of symbols obvious<br>
   - Actually, it has no impact on that as the import is still present<br>
and clear in the file. import * would obfuscate things, but I'm not<br>
arguing for that.<br>
   - and package/module names can (and are!) still ambiguous. Like<br>
'test.' - whats that? -> consult the imports.<br>
 - makes mocking more reliable<br>
   - This is arguably the case, but it's a mirage: it isn't a complete<br>
solution because modules still need to be mocked at every place they<br>
are dereferenced : only import modules helps to the extent that one<br>
never mocks modules. Either way this failure mode of mocking is<br>
usually very obvious IME : but keeping the rule as a recommendation,<br>
*particularly* when crossing layers to static resources is a good<br>
idea.<br>
 - It's in the Google Python style guide<br>
(<a href="http://google-styleguide.googlecode.com/svn/trunk/pyguide.html?showone=Imports#Imports" target="_blank">http://google-styleguide.googlecode.com/svn/trunk/pyguide.html?showone=Imports#Imports</a>)<br>
   - shrug :)<br>
<br>
What I'd like us to do is weaken it from a MUST to a MAY, unless noone<br>
cares about it at all, in which case lets just turn it off entirely.<br>
<br>
-Rob<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Robert Collins <<a href="mailto:rbtcollins@hp.com">rbtcollins@hp.com</a>><br>
Distinguished Technologist<br>
HP Converged Cloud<br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">"I disapprove of what you say, but I will defend to the death your right to say it." -- Evelyn Beatrice Hall (summarizing Voltaire)<br>
"The people's good is the highest law." -- Cicero<br><div>GPG Key fingerprint: 125F 5C67 DFE9 4084</div></div>
</div>