<div dir="ltr">Hi Roman,<div><br></div><div>There is already a renderer function which is similar simplification of the renderable pattern.</div><div>You can do</div><div><br></div><div>renderer(lambda _: datetime.date.today().isoformat()</div><div>renderer(lambda b: os.path.relpath(p.getProperty('buildir'))</div><div><br></div><div>The latter is a little bit more chars than your solution, but probably more easy to follow.</div><div><a href="http://docs.buildbot.net/latest/manual/cfg-properties.html#renderer">http://docs.buildbot.net/latest/manual/cfg-properties.html#renderer</a><br></div><div><br></div><div>Regards</div><div>Pierre</div></div><br><div class="gmail_quote"><div dir="ltr">Le mer. 30 sept. 2015 à 21:16, Роман Донченко <<a href="mailto:dpb@corrigendum.ru">dpb@corrigendum.ru</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
I wrote a class to simplify transforming renderables with arbitrary<br>
functions. I think it's useful enough to include in Buildbot itself. What<br>
do you think?<br>
<br>
class Transform(object):<br>
     implements(IRenderable)<br>
<br>
     def __init__(self, function, *args, **kwargs):<br>
         self.function = function<br>
         self.args = args<br>
         self.kwargs = kwargs<br>
<br>
     @defer.inlineCallbacks<br>
     def getRenderingFor(self, iprops):<br>
         rfunction = yield iprops.render(self.function)<br>
         rargs = yield iprops.render(self.args)<br>
         rkwargs = yield iprops.render(self.kwargs)<br>
         defer.returnValue(rfunction(*rargs, **rkwargs))<br>
<br>
Example uses:<br>
<br>
Transform(lambda: datetime.date.today().isoformat()) # get build date as a<br>
renderable<br>
Transform(os.path.realpath, Property('builddir'))<br>
Transform(os.path.relpath, my_file, start=Property('builddir'))<br>
<br>
Roman.<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></div>