[Python-Dev] PEP 246, redux
Alex Martelli
aleax at aleax.it
Wed Jan 12 19:04:04 CET 2005
On 2005 Jan 12, at 18:58, Phillip J. Eby wrote:
...
>> I have some data about people coming in from LDAP and the like, which
>> I want to record in that SQL DB -- the incoming data is held in types
>> that implement IPerson, so I write an adapter IPerson -> IFullname
>> for the purpose.
>
> This doesn't answer my question. Obviously it makes sense to adapt in
> this fashion, but not IMPLICITLY and AUTOMATICALLY. That's the
> distinction I'm trying to make. I have no issue with writing an
> adapter like 'PersonAsFullName' for this use case; I just don't think
> you should *register* it for automatic use any time you pass a Person
> to something that takes a FullName.
I'm adapting incoming data that can be of any of a huge variety of
concrete types with different interfaces. *** I DO NOT WANT TO
TYPECHECK THE INCOMING DATA *** to know what adapter or converter to
apply -- *** THAT'S THE WHOLE POINT *** of PEP 246. I can't believe
we're misunderstanding each other about this -- there MUST be
miscommunication going on!
>> So, I'm not sure why you appear to argue for conversion against
>> adaptation, or explicit typechecking against the avoidance thereof
>> which is such a big part of adapt's role in life.
>
> Okay, I see where we are not communicating; where I've been saying
> "conversion", you are taking this to mean, "don't write an adapter",
> but what I mean is "don't *register* the adapter for implicit
> adaptation; explicitly use it in the place where you need it.
"Adaptation is not conversion" is how I THOUGHT we had agreed to
rephrase my unfortunate "adaptation is not casting" -- so if you're
using conversion to mean adaptation, I'm nonplussed.
Needing to be explicit and therefore to typechecking/typeswitching to
pick which adapter to apply is just what I don't *WANT* to do, what I
don't want *ANYBODY* to have to do EVER, and the very reason I'm
spending time and energy on PEP 246. So, how would you propose I know
which adapter I need, without spreading typechecks all over my
bedraggled *CODE*?!?!
Alex
More information about the Python-Dev
mailing list