On 2005 Jan 12, at 14:44, Paul Moore wrote:

On Wed, 12 Jan 2005 00:33:22 +0100, Alex Martelli <[EMAIL PROTECTED]> wrote:
But adaptation is not transmission! It's PERFECTLY acceptable for an
adapter to facade: to show LESS information in the adapted object than
was in the original. It's PERFECTLY acceptable for an adapter to say
"this piece information is not known" when it's adapting an object for
which that information, indeed, is not known. It's only CONJOINING the
two perfectly acceptable adapters, as transitivity by adapter chain
would do automatically, that you end up with a situation that is
pragmatically undesirable: asserting that some piece of information is
not known, when the information IS indeed available -- just not by the
route automatically taken by the transitivity-system.

[Risking putting my head above the parapet here :-)]

If you have adaptations A->B, B->C, and A->C, I would assume that the
system would automatically use the direct A->C route rather than
A->B->C. I understand that this is what PyProtocols does.

Yes, it is.

Are you mistakenly thinking that shortest-possible-route semantics
aren't used? Maybe the PEP should explicitly require such semantics.

No, I'm not. I'm saying that if, by mistake, the programmer has NOT registered the A->C adapter (which would be easily coded and work perfectly), then thanks to transitivity, instead of a clear and simple error message leading to immediate diagnosis of the error, they'll get a subtle unnecessary degradation of information and resulting reduction in information quality.


PyProtocols' author claims this can't happen because if adapters A->B and B->C are registered then each adapter is always invariably claiming to be lossless and perfect. However, inconsistently with that stance, I believe that PyProtocols does give an error message if it finds two adaptation paths of equal minimum length, A->B->C or A->Z->C -- if it is truly believed that each adaptation step is lossless and perfect, it's inconsistent to consider the existence of two equal-length paths an error... either path should be perfect, so just picking either one of them should be a perfectly correct strategy.

If I'm missing the point here, I apologise. But I get the feeling that
something's getting lost in the discussions.

The discussions on this subject always and invariably get extremely long (and often somewhat heated, too), so it's quite possible that a lot is getting lost along the way, particularly to any other reader besides the two duelists. Thus, thanks for focusing on one point that might well be missed by other readers (though not by either PJE or me;-) and giving me a chance to clarify it!



Alex

_______________________________________________
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