<div dir="ltr"><div><div><div><div>Ah, I see that the distinction is deeper than just allowing asynchronous returns -- Transform works on other renderables, whereas renderer creates new renderables (which take the build `b` as an argument).<br><br></div>I like that this allows multiple renderables as input - nice design!<br><br></div>There's a risk of circular dependencies, but I think we can consider that "user error" and not do anything to try to prevent it (cycle detection would be pretty hard here!).<br><br></div>So yes, I think this would be a good addition to the property support.<br><br></div>Dustin<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Oct 4, 2015 at 10:12 AM, Роман Донченко <span dir="ltr"><<a href="mailto:dpb@corrigendum.ru" target="_blank">dpb@corrigendum.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I don't see how that would work.<br>
<br>
IMO, renderer and Transform are very different things. The former creates a new renderable based on a user-defined function; the latter combines existing renderables based on a user-defined transformation. They can't (and shouldn't) be implemented by the same function.<br>
<br>
Dustin J. Mitchell <<a href="mailto:dustin@v.igoro.us" target="_blank">dustin@v.igoro.us</a>> писал в своём письме Sun, 04 Oct 2015 16:55:46 +0300:<div class="HOEnZb"><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Could you possibly extend renderer to handle that case?<br>
<br>
Dustin<br>
<br>
On Fri, Oct 2, 2015 at 4:17 PM, Роман Донченко <<a href="mailto:dpb@corrigendum.ru" target="_blank">dpb@corrigendum.ru</a>> wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Pierre Tardy <<a href="mailto:tardyp@gmail.com" target="_blank">tardyp@gmail.com</a>> писал в своём письме Fri, 02 Oct 2015<br>
00:25:36 +0300:<br>
<br>
Hi Roman,<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
There is already a renderer function which is similar simplification of<br>
the<br>
renderable pattern.<br>
You can do<br>
<br>
renderer(lambda _: datetime.date.today().isoformat()<br>
renderer(lambda b: os.path.relpath(p.getProperty('buildir'))<br>
<br>
The latter is a little bit more chars than your solution, but probably<br>
more<br>
easy to follow.<br>
<br>
</blockquote>
<br>
I know this, but it doesn't work when the arguments are arbitrary<br>
renderables (since you have to account for the possibility that they return<br>
a Deferred). The brevity is nice to have, too.<br>
<br>
_______________________________________________<br>
devel mailing list<br>
<a href="mailto:devel@buildbot.net" target="_blank">devel@buildbot.net</a><br>
<a href="https://lists.buildbot.net/mailman/listinfo/devel" rel="noreferrer" target="_blank">https://lists.buildbot.net/mailman/listinfo/devel</a><br>
</blockquote></blockquote>
</div></div></blockquote></div><br></div>