On 6/2/2011 11:19 AM, Barry Warsaw wrote:
On Jun 02, 2011, at 08:09 PM, guido.van.rossum wrote:

+    Continuation lines should align wrapped elements either vertically using
+    Python's implicit line joining inside parentheses, brackets and braces,
+    or using a hanging indent of double your code indention, in which case
+    there should be no argument on the first line. For example:
+
+    Yes:  # Aligned with opening delimiter
+          foo = long_function_name(var_one, var_two,
+                                   var_three, var_four)
+
+          # Double code indention for hanging indent; nothing on first line
+          foo = long_function_name(
+                  var_one, var_two, var_three,
+                  var_four)
+
+    No:   # Stuff on first line forbidden
+          foo = long_function_name(var_one, var_two,
+              var_three, var_four)
+
+          # 2-space hanging indent forbidden
+          foo = long_function_name(
+            var_one, var_two, var_three,
+            var_four)

As I mentioned to Guido, I'm not sure where the double-indent recommendation
comes from, but it's entirely possible I missed that discussion.  I agree with
the recommendations, but think a single-indentation level looks fine.  E.g.

         return dict(
             fqdn_listname=member.mailing_list,
             address=member.address.email,
             role=role,
             user=path_to('users/{0}'.format(member.user.user_id)),
             self_link=path_to('members/{0}'.format(member.member_id)),
             )

or

     return b'{0}://{1}:{2}/{3}/{4}'.format(
         ('https' if as_boolean(config.webservice.use_https) else 'http'),
         config.webservice.hostname,
         config.webservice.port,
         config.webservice.api_version,
         (resource[1:] if resource.startswith('/') else resource),
         )

-Barry

One place a double indent is extremely nice is for lines that initiate a new indentation, but are themselves continued:

if some_function(
        Some,
        Parameters,
        To,
        Pass,
        )
    If_True_Operations()

is much more readable than:

if some_function(
    Some,
    Parameters,
    To,
    Pass,
    )
    If_True_Operations()



_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to