2 The Python implementation of the Zero Install injector is divided into four sub-packages:
4 - L{zeroinstall.injector} contains most of the interesting stuff for managing feeds, keys and downloads and for selecting versions
5 - L{zeroinstall.zerostore} contains low-level code for handling the implementation cache (where unpacked packages are stored)
6 - L{zeroinstall.gtkui} contains code for making GTK user-interfaces
7 - L{zeroinstall.support} contains helper code (not really specific to Zero Install)
9 @copyright: (C) 2009, Thomas Leonard
10 @see: U{http://0install.net}
15 class SafeException(Exception):
16 """An exception that can be reported to the user without a stack trace.
17 The command-line interface's C{--verbose} option will display the full stack trace."""
19 class NeedDownload(SafeException
):
20 """Thrown by L{injector.autopolicy.AutoPolicy} if we tried to start a download
21 and downloading is disabled."""
22 def __init__(self
, url
):
23 Exception.__init
__(self
, "Would download '%s'" % url
)