+ __import_file(patchfile, options, patch)
+
+ if filename:
+ f.close()
+
+def __import_mbox(filename, options):
+ """Import a series from an mbox file
+ """
+ if filename:
+ f = file(filename, 'rb')
+ else:
+ f = StringIO(sys.stdin.read())
+
+ try:
+ mbox = UnixMailbox(f, email.message_from_file)
+ except Exception, ex:
+ raise CmdException, 'error parsing the mbox file: %s' % str(ex)
+
+ for msg in mbox:
+ message, author_name, author_email, author_date, diff = \
+ __parse_mail(msg)
+ __create_patch(None, message, author_name, author_email,
+ author_date, diff, options)
+
+ f.close()
+
+def __import_url(url, options):
+ """Import a patch from a URL
+ """
+ import urllib
+ import tempfile
+
+ if not url:
+ parser.error('URL argument required')
+
+ patch = os.path.basename(urllib.unquote(url))
+ filename = os.path.join(tempfile.gettempdir(), patch)
+ urllib.urlretrieve(url, filename)
+ __import_file(filename, options)