A good idea. <br><br>In regards to having to handle failed installs of the &quot;required&quot; deps. Stuff under required should install no problem(since we would like to assume the person compiling that list would know if that dep exists and that it runs correctly),  but there still has to be some form of protection, ie, against misspellings and that slacker who wrote the build recipe without checking to see if that dep exists or that it runs correctly on their build machine.<br>
<br>I all so assume that since the installs are under virtualenv we have no need to worry about rights issues.<br><br>&quot;required&quot; fail: cause it to stop execution of client completely? and pass what the error may be.....<br>
<br>&quot;wouldn&#39;t it be nice?&quot; fail:  just make note to user and carry on<br><br>I guess we loop back to original question now, so I will read over the previous threads and get cracking on this.<br><br>Max<br><br>
<div class="gmail_quote">On Wed, Feb 10, 2010 at 11:33 PM, C. Titus Brown <span dir="ltr">&lt;<a href="mailto:ctb@msu.edu">ctb@msu.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">On Wed, Feb 10, 2010 at 11:25:07AM -0500, Rosangela Canino-Koning wrote:<br>
&gt; Backing up, how much of a failure do you want? Do you want this thing to<br>
&gt; messily grind to a halt, or do you want it to try to deal with the error<br>
&gt; somewhat gracefully?<br>
&gt;<br>
&gt; If pip failing to install a dependency is a massive deal-breaker for the<br>
&gt; whole system, which, further, you never really expect to happen, but you<br>
&gt; don&#39;t want it to fail silently, use an assert.<br>
&gt;<br>
&gt; If pip failing to install a dependency is a rare error, but you need to<br>
&gt; clean up after yourself at a higher level before shutting down, then throw<br>
&gt; an exception, and catch it upstream.<br>
&gt;<br>
&gt; Finally, if pip failing is an expected part of the program flow, and there<br>
&gt; are ways to gracefully handle the error, and continue processing, then check<br>
&gt; pip&#39;s return status (or catch it if it&#39;s an exception), do whatever, and<br>
&gt; continue processing.<br>
&gt;<br>
&gt; Any of these strategies can be implemented with either pip returning a<br>
&gt; status code, or with pip throwing an exception. It&#39;s what you do with it<br>
&gt; that really matters.<br>
<br>
</div>pip installs dependencies, so it depends on what dependencies are necessary<br>
vs &quot;good&quot;.  Most dependencies are hard dependencies, but not all.<br>
<br>
For example, if some program uses psyco to do runtime optimization, but<br>
psyco is not present, then it could still run most of the tests (just<br>
not the ones testing psyco functionality).<br>
<br>
How about giving VirtualenvContext a list of required dependencies and<br>
a separate list of &quot;wouldn&#39;t it be nice?&quot; dependencies?<br>
<font color="#888888"><br>
--titus<br>
</font></blockquote></div><br>