コード例 #1
0
def main():
    arguments = docopt(__doc__, version=__version__)

    quantity = int(arguments['--quantity'])

    chain = MarkovChain(
        min_length=int(arguments['--min']),
        max_length=int(arguments['--max']),
    )

    words = sort_words(arguments, list(islice(chain.unique_word(), quantity)))

    if arguments['--json']:
        output = {'quantity': quantity}
        output['names'] = words
        print(json.dumps(output))
    else:
        init(autoreset=True)

        for i, word in enumerate(words):
            if i == quantity:
                break

            line = '{:>3}. {:<12}'.format(i + 1, word)

            if arguments['--nocolour']:
                print(line)
            else:
                # alternate row colours
                colour = Fore.BLUE if i % 2 == 0 else Fore.CYAN
                print(Style.BRIGHT + colour + line)
コード例 #2
0
def main():
    arguments = docopt(__doc__, version=__version__)

    quantity = int(arguments['--quantity'])

    chain = MarkovChain(
        min_length=int(arguments['--min']),
        max_length=int(arguments['--max']),
    )

    words = sort_words(arguments, list(islice(chain.unique_word(), quantity)))

    if arguments['--json']:
        output = {'quantity': quantity}
        output['names'] = words
        print(json.dumps(output))
    else:
        init(autoreset=True)

        for i, word in enumerate(words):
            if i == quantity:
                break

            line = '{:>3}. {:<12}'.format(i + 1, word)

            if arguments['--nocolour']:
                print(line)
            else:
                # alternate row colours
                colour = Fore.BLUE if i % 2 == 0 else Fore.CYAN
                print(Style.BRIGHT + colour + line)
コード例 #3
0
ファイル: test_main.py プロジェクト: Danzabar/Name-of-Thrones
 def test_reverse_length(self):
     self.assertEqual(
         sort_words({
             '--length': True,
             '--reverse': True
         }, self.words),
         ['marillion', 'viserys', 'tyrion', 'hodor', 'xaro'],
     )
コード例 #4
0
ファイル: test_main.py プロジェクト: Danzabar/Name-of-Thrones
 def test_reverse_alpha(self):
     self.assertEqual(
         sort_words({
             '--alphabetical': True,
             '--reverse': True
         }, self.words),
         ['xaro', 'viserys', 'tyrion', 'marillion', 'hodor'],
     )
コード例 #5
0
ファイル: test_main.py プロジェクト: Danzabar/Name-of-Thrones
 def test_length_sorting(self):
     self.assertEqual(
         sort_words({'--length': True}, self.words),
         ['xaro', 'hodor', 'tyrion', 'viserys', 'marillion'],
     )
コード例 #6
0
ファイル: test_main.py プロジェクト: Danzabar/Name-of-Thrones
 def test_alpha_sorting(self):
     self.assertEqual(
         sort_words({'--alphabetical': True}, self.words),
         ['hodor', 'marillion', 'tyrion', 'viserys', 'xaro'],
     )
コード例 #7
0
ファイル: test_main.py プロジェクト: Danzabar/Name-of-Thrones
 def test_no_sorting(self):
     self.assertEqual(sort_words({}, self.words), self.words)
コード例 #8
0
 def test_reverse_length(self):
     self.assertEqual(
         sort_words({'--length': True, '--reverse': True}, self.words),
         ['marillion', 'viserys', 'tyrion', 'hodor', 'xaro'],
     )
コード例 #9
0
 def test_reverse_alpha(self):
     self.assertEqual(
         sort_words({'--alphabetical': True, '--reverse': True}, self.words),
         ['xaro', 'viserys', 'tyrion', 'marillion', 'hodor'],
     )
コード例 #10
0
 def test_length_sorting(self):
     self.assertEqual(
         sort_words({'--length': True}, self.words),
         ['xaro', 'hodor', 'tyrion', 'viserys', 'marillion'],
     )
コード例 #11
0
 def test_alpha_sorting(self):
     self.assertEqual(
         sort_words({'--alphabetical': True}, self.words),
         ['hodor', 'marillion', 'tyrion', 'viserys', 'xaro'],
     )
コード例 #12
0
 def test_no_sorting(self):
     self.assertEqual(sort_words({}, self.words), self.words)