Burn the backslashes!

On a more serious note, I think these need to be taken on a case by case
basis. Certainly unhelpful it test code though.
On 21 Sep 2013 18:50, "Aymeric Augustin" <[email protected]>
wrote:

> Hello,
>
> I think we went overboard in this commit:
> https://github.com/django/django/commit/165f44aa
>
> Specifically, I consider it's a regression in three areas.
>
>
> 1) Readability
>
> After the patch, indentation no longer matches the logical structure of
> the program. For example:
>
> -        with self.settings(USE_L10N=True, USE_THOUSAND_SEPARATOR=False):
> -            with translation.override('en'):
> -                self.humanize_tester(test_list, result_list, 'intcomma')
> +        with self.settings(USE_L10N=True, USE_THOUSAND_SEPARATOR=False), \
> +                translation.override('en'):
> +            self.humanize_tester(test_list, result_list, 'intcomma')
>
> The new version is longer than the old one (by two characters) and
> visually harder to parse.
>
>
> 2) Readability (bis)
>
> After the patch, distinct operations end up on the same line, obfuscating
> the intent of the code. For example :
>
> -        with six.assertRaisesRegex(self, Exception, "Oops"):
> -            with transaction.atomic():
> -                Reporter.objects.create(first_name="Haddock")
> -                raise Exception("Oops, that's his last name")
> +        with six.assertRaisesRegex(self, Exception, "Oops"),
> transaction.atomic():
> +            Reporter.objects.create(first_name="Haddock")
> +            raise Exception("Oops, that's his last name")
>
> In the old version, the first line is a test assertion and the second line
> is the code exercised by the test. I find it confusing to put both on the
> same line.
>
>
> 3) Consistency
>
> Django always uses implicit line continuations instead of backslashes.
> This commits introduces several explicit line continuations with
> backslashes that can't be turned into implicit ones.
>
>
> To be fair, sometimes the new version is more readable :
>
> -        with translation.override('ja'):
> -            with self.settings(USE_L10N=True):
> -                self.humanize_tester([100], ['100'], 'intcomma')
> +        with translation.override('ja'), self.settings(USE_L10N=True):
> +            self.humanize_tester([100], ['100'], 'intcomma')
>
> But whenever the with statement spills over two lines, which happens in a
> majority of cases, I find it worse than two with statements. It's
> especially bad in the transactions tests — I worked in this area today.
>
> --
> Aymeric.
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/django-developers.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-developers.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to