#!/usr/bin/python # Copyright (C) 2012 Codethink Limited # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. import cliapp import random class Namer(cliapp.Application): def add_settings(self): self.settings.string(['adjectives', 'a'], 'file with adjectives', default='adjectives.txt') self.settings.string(['nouns', 'n'], 'file with nouns', default='nouns.txt') self.settings.integer(['count', 'c'], 'how many names?', default=1) def process_args(self, args): adjectives = self.read_words(self.settings['adjectives']) nouns = self.read_words(self.settings['nouns']) for i in range(self.settings['count']): a = random.choice(adjectives) n = random.choice(nouns) self.output.write('%s %s\n' % (a, n)) def read_words(self, filename): with open(filename) as f: return [x.strip() for x in f.readlines() if x.strip()] Namer().run()