79 chars or more?
D'Arcy J.M. Cain
darcy at druid.net
Wed Aug 18 10:38:24 EDT 2010
On Wed, 18 Aug 2010 23:18:06 +1200
Lawrence D'Oliveiro <ldo at geek-central.gen.new_zealand> wrote:
> Might I suggest (guessing at the argument keywords here) :
>
> self.expiration_date = translate_date \
> (
> TheText = find(response, 'MPNExpirationDate').text,
> ToFormat ='%Y-%m-%d',
> FromFormat ='%m%d%Y'
> )
I sometimes use a backslash continuation but it always feels like a
failure to me. It's an irrational reaction and I'm not sure why I feel
like that. However, if you are going to do it in order to line up the
parenthese I would prefer this style.
self.expiration_date = translate_date \
(
TheText = find(response, 'MPNExpirationDate').text,
ToFormat ='%Y-%m-%d',
FromFormat ='%m%d%Y'
)
This way you can see not only the block structure at a glance but also
the block starter that it is part of.
>
> Presumably FromFormat should be localizable, rather than hard-coded.
>
> See, that’s the kind of thing you notice when you think about the code in
> this way.
The other thing that jumps out at me is having the input format
different than the output format. In any case you need a better date
input function. There's no reason in this day and age to force users
into a particular input form. You should think about creating a
utility function that converts any date that is unambiguous. My
scripts generally accept all of the following.
Sep 1 2010
september 1, 2010
2010-9-1 (I have never seen "Y/D/M" format)
2010/9/1
2010 9 1
12/25/2010
25/12/2010
2010/12/25
It fails on the following.
sep 31 2010 (impossible)
2010/25/12 (impossible - Y/D/M never happens)
9/1/2010 (ambiguous - there is no consistiency when year is last field)
foo (not a date)
--
D'Arcy J.M. Cain <darcy at druid.net> | Democracy is three wolves
http://www.druid.net/darcy/ | and a sheep voting on
+1 416 425 1212 (DoD#0082) (eNTP) | what's for dinner.
More information about the Python-list
mailing list