+ command_help()
+
+
+def get_parser(verbose=True):
+ """Returns an OptionParser prepopulated with the global options.
+
+ `verbose` is whether or not the options should be verbose by default.
+ """
+ parser = OptionParser()
+ parser.add_option('-e', '--engine', dest='engine_uri', default=None)
+ parser.add_option('-i', '--index', dest='index_dir', default=None)
+ parser.add_option('-q', '--quiet', dest='verbose', default=verbose, action='store_false')
+ parser.add_option('-v', '--verbose', dest='verbose', default=verbose, action='store_true')
+ return parser
+
+def get_session(options):
+ """Given a parsed options object, connects to the database and returns a
+ session.
+ """
+
+ engine_uri = options.engine_uri
+ got_from = 'command line'
+
+ if engine_uri is None:
+ engine_uri, got_from = defaults.get_default_db_uri_with_origin()
+
+ session = pokedex.db.connect(engine_uri)
+
+ if options.verbose:
+ print "Connected to database %(engine)s (from %(got_from)s)" \
+ % dict(engine=session.bind.url, got_from=got_from)
+
+ return session
+
+def get_lookup(options, session=None, recreate=False):
+ """Given a parsed options object, opens the whoosh index and returns a
+ PokedexLookup object.
+ """
+
+ if recreate and not session:
+ raise ValueError("get_lookup() needs an explicit session to regen the index")
+
+ index_dir = options.index_dir
+ got_from = 'command line'
+
+ if index_dir is None:
+ index_dir, got_from = defaults.get_default_index_dir_with_origin()
+
+ if options.verbose:
+ print "Opened lookup index %(index_dir)s (from %(got_from)s)" \
+ % dict(index_dir=index_dir, got_from=got_from)
+
+ lookup = pokedex.lookup.PokedexLookup(index_dir, session=session)
+
+ if recreate:
+ lookup.rebuild_index()
+
+ return lookup
+
+def get_csv_directory(options):
+ """Prints and returns the csv directory we're about to use."""
+
+ if not options.verbose:
+ return
+
+ csvdir = options.directory
+ got_from = 'command line'
+
+ if csvdir is None:
+ csvdir, got_from = defaults.get_default_csv_dir_with_origin()