Fwd: [PEAK] Rules clarification

Sergey Schetinin maluke at gmail.com
Thu Feb 28 00:21:59 EST 2008


Thanks for your reply.
 I think it would be reasonable to assume that if the second parameter
 to <when> is a type it should be treated the same as a tuple with that
 single value. This should illustrate what I'm talking about:

 from peak.rules import *

 @around(when, (object, type)) # this shouldn't be necessary IMO
 def when_type(func, type, *args):
    return when(func, (type,), *args)

 @abstract
 def x(a):
    return a

 @when(x, int)
 def xint(a):
    return a+1

 assert x(1) == 2




 On Thu, Feb 28, 2008 at 6:56 AM, Phillip J. Eby <pje at telecommunity.com> wrote:
 > Sorry I didn't reply to this sooner; I meant to think about it before
 >  replying and then it scrolled out of my immediate view and I
forgot about it.
 >
 >
 >
 >  At 06:47 PM 2/15/2008 +0200, Sergey Schetinin wrote:
 >  >I've noticed that "when" function accepts anything as it's second
 >  >parameter (not just tuples),
 >
 >  Yes; all that is required is that it be something which can "imply" a
 >  type tuple (i.e. using the peak.rules.implies() function).
 >
 >
 >
 >  >  what does this declaration would mean
 >  >then (maybe nothing and it should throw an exception?)
 >  >
 >  > >>> from peak.rules import *
 >  > >>> @abstract
 >  >... def test(foo):
 >  >...     pass
 >  >...
 >  > >>> @when(test, int) # <--------- this is what I'm talking about
 >  >... def test_int(foo):
 >  >...     print foo
 >  >...
 >
 >  It indeed means nothing.  Whether it should throw an exception is a
 >  more complex problem.  Right now, the default for testing implication
 >  between two different types is to say that neither implies the
 >  other.  This is a sensible default, except for where it's misleading
 >  in this case.  So I could add a specific rule to catch it and throw
 >  an exception, but I'm wondering how many such special cases would
need adding.
 >
 >





--
 Best Regards,
 Sergey Schetinin

 http://s3bk.com/ -- S3 Backup
 http://word-to-html.com/ -- Word to HTML Converter



-- 
Best Regards,
Sergey Schetinin

http://s3bk.com/ -- S3 Backup
http://word-to-html.com/ -- Word to HTML Converter



More information about the PEAK mailing list