[openstack-dev] HACKING and new-style relative imports
mordred at inaugust.com
Tue Jul 9 16:31:42 UTC 2013
On 07/09/2013 10:55 AM, Joe Gordon wrote:
> On Tue, Jul 9, 2013 at 1:28 PM, Kieran Spear <kispear at gmail.com
> <mailto:kispear at gmail.com>> wrote:
> Hi all,
> There's a review up to make Horizon pass H304 (no relative imports):
> 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?
> "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."
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.
More information about the OpenStack-dev