On 10 July 2013 02:31, Monty Taylor <mord...@inaugust.com> wrote: > > > On 07/09/2013 10:55 AM, Joe Gordon wrote: >> >> On Tue, Jul 9, 2013 at 1:28 PM, Kieran Spear <kisp...@gmail.com >> <mailto:kisp...@gmail.com>> wrote: >> >> Hi all, >> >> There's a review up to make Horizon pass H304 (no relative imports): >> >> https://review.openstack.org/#/c/35664/ >> >> Old-style relative imports are dangerous, but I can't think of a >> good enough reason to forbid new-style imports, e.g.: >> >> from .views import IndexView >> >> instead of >> >> from openstack_dashboard.dashboards.project.images_and_snapshots.views \ >> import IndexView >> >> particularly in Horizon where nesting is deep and you otherwise end >> up with many imports that won't fit into 80 characters. I think if >> we're going to make the change above the benefits would need to >> outweigh the effect on readability. >> >> There's some discussion on the review already, but I'd like to hear >> from a more general audience. Thoughts? >> >> >> >> http://google-styleguide.googlecode.com/svn/trunk/pyguide.html#Imports >> >> "Do not use relative names in imports. Even if the module is in the same >> package, use the full package name. This helps prevent unintentionally >> importing a package twice." >> > > From pep8: > > Relative imports for intra-package imports are highly discouraged. > Always use the absolute package path for all imports. Even now that PEP > 328 is fully implemented in Python 2.5, its style of explicit relative > imports is actively discouraged; absolute imports are more portable and > usually more readable.
In Horizon I think it's obvious that relative imports are more readable (and type-able) than the alternative. If portable is referring to moving code around, I think each style has portability benefits for both inter- and intra-package module moves, and there's a lot of overlap. It sounds like this particular paragraph has been updated to account for PEP328 without considering why new-style imports should be discouraged. There was a thread on python-dev a few years ago about the same issue: http://mail.python.org/pipermail/python-dev/2010-October/104476.html On 10/5/2010 2:21 PM, Guido van Rossum wrote: > On Tue, Oct 5, 2010 at 11:17 AM, Darren Dale<dsdale24 at gmail.com> wrote: >> The issue is implementing a PEP with nice support for relative >> imports, and then documenting that it should never be used. > > Isn't this mostly historical? Until the new relative-import syntax was > implemented there were various problems with relative imports. The > short-term solution was to recommend not using them. The long-term > solution was to implement an unambiguous syntax. Now it is time to > withdraw the anti-recommendation. Of course, without going overboard > -- I still find them an acquired taste; but they have their place. But nothing ever came of the bug: http://bugs.python.org/issue10031 > > Monty _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev