On 1 October 2012 16:52, Itamar Turner-Trauring <span dir="ltr">&lt;<a href="mailto:itamar@futurefoundries.com" target="_blank">itamar@futurefoundries.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br><br><div class="gmail_quote"><div class="im">On Mon, Oct 1, 2012 at 5:38 AM, Paul Wiseman <span dir="ltr">&lt;<a href="mailto:poalman@gmail.com" target="_blank">poalman@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br><div>I made an api for the web requests- the call isn&#39;t so straightforward, all the information is sent in POST formatted a certain way and there&#39;s also a credentials part with a token and other bits with secrets used to auth the request. So for instance I call the list dir method in the api and get back a Response type object based on the web response. Is there still way I can defer the returning of that web call, or would I need to tear the api apart to use twisted deferred objects internally? or is this something Agent could deal with?</div>

</blockquote></div><div><br>Agent could certainly deal with this; alternatively, if you&#39;re using a blocking API you could use deferToThread (make sure the function you call that way doesn&#39;t touch any global state or call any Twisted APIs.) <br>

</div></div><div class="HOEnZb"><div class="h5"><br>-- <br>Itamar Turner-Trauring, Future Foundries LLC<br><a href="http://futurefoundries.com/" target="_blank">http://futurefoundries.com/</a> — Twisted consulting, training and support.<br>
<br>
</div></div><br>_______________________________________________<br>
Twisted-Python mailing list<br>
<a href="mailto:Twisted-Python@twistedmatrix.com">Twisted-Python@twistedmatrix.com</a><br>
<a href="http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python" target="_blank">http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python</a><br>
<br></blockquote></div><br><div>This is twisting my brain slightly.</div><div><br></div><div>what if I have more than 1 blocking call to make in the list dir call?</div><div><br></div><div>One area that is especially confusing for me is where I have those blocking webcalls in a recursive method.</div>
<div><br></div><div>Because the api needs a folder&#39;s unique id to return a folder list, if for instance someone requests a file/folder 10 levels deep, the list dir will need to walk up the path until it finds a cached node that it has an id for, and then walk back down the path listing the folders using the api.</div>
<div><br></div><div>I read about chained deferreds and I think that might be the way to go but I&#39;m not sure how I&#39;d chain them together as 1 webcall needs the id from its parent folder they all need to be executed in a chain, but return down the recursive method stack</div>
<div><br></div><div>Are there any examples of how I could make a recursive function with deferreds?</div>