annotate wordstream/dissociate.py @ 21:c05704d14958 default tip

py3
author Jeff Hammel <k0scist@gmail.com>
date Wed, 02 Feb 2022 16:15:36 +0000
parents 50b319ad87b8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
df84e61ae1e4 add dissociation
k0s <k0scist@gmail.com>
parents:
diff changeset
1 #!/usr/bin/env python
df84e61ae1e4 add dissociation
k0s <k0scist@gmail.com>
parents:
diff changeset
2
df84e61ae1e4 add dissociation
k0s <k0scist@gmail.com>
parents:
diff changeset
3 import random
df84e61ae1e4 add dissociation
k0s <k0scist@gmail.com>
parents:
diff changeset
4 import sys
df84e61ae1e4 add dissociation
k0s <k0scist@gmail.com>
parents:
diff changeset
5
df84e61ae1e4 add dissociation
k0s <k0scist@gmail.com>
parents:
diff changeset
6 from optparse import OptionParser
df84e61ae1e4 add dissociation
k0s <k0scist@gmail.com>
parents:
diff changeset
7 from pprint import pprint
16
50b319ad87b8 cleanup
Jeff Hammel <k0scist@gmail.com>
parents: 5
diff changeset
8 from .api import Corpus
50b319ad87b8 cleanup
Jeff Hammel <k0scist@gmail.com>
parents: 5
diff changeset
9
2
df84e61ae1e4 add dissociation
k0s <k0scist@gmail.com>
parents:
diff changeset
10
3
e21f53582267 adding final dissociation stuff
k0s <k0scist@gmail.com>
parents: 2
diff changeset
11 def dissociate(corpus, output=sys.stdout):
e21f53582267 adding final dissociation stuff
k0s <k0scist@gmail.com>
parents: 2
diff changeset
12 while corpus:
21
Jeff Hammel <k0scist@gmail.com>
parents: 16
diff changeset
13 word = random.choice(list(corpus.keys()))
3
e21f53582267 adding final dissociation stuff
k0s <k0scist@gmail.com>
parents: 2
diff changeset
14 inedible = True
e21f53582267 adding final dissociation stuff
k0s <k0scist@gmail.com>
parents: 2
diff changeset
15 while corpus.get(word):
e21f53582267 adding final dissociation stuff
k0s <k0scist@gmail.com>
parents: 2
diff changeset
16 inedible = False
21
Jeff Hammel <k0scist@gmail.com>
parents: 16
diff changeset
17 print((output, word))
3
e21f53582267 adding final dissociation stuff
k0s <k0scist@gmail.com>
parents: 2
diff changeset
18 word = corpus.eat(word)
e21f53582267 adding final dissociation stuff
k0s <k0scist@gmail.com>
parents: 2
diff changeset
19 if inedible: # eat it anyway
e21f53582267 adding final dissociation stuff
k0s <k0scist@gmail.com>
parents: 2
diff changeset
20 corpus.eat(word)
16
50b319ad87b8 cleanup
Jeff Hammel <k0scist@gmail.com>
parents: 5
diff changeset
21
3
e21f53582267 adding final dissociation stuff
k0s <k0scist@gmail.com>
parents: 2
diff changeset
22
e21f53582267 adding final dissociation stuff
k0s <k0scist@gmail.com>
parents: 2
diff changeset
23 def main(args=sys.argv[1:]):
5
0c2b1fe8f53f update documentation a little
k0s <k0scist@gmail.com>
parents: 3
diff changeset
24 parser = OptionParser('%prog <path_or_url> <path_or_url> <...>')
2
df84e61ae1e4 add dissociation
k0s <k0scist@gmail.com>
parents:
diff changeset
25 options, args = parser.parse_args()
df84e61ae1e4 add dissociation
k0s <k0scist@gmail.com>
parents:
diff changeset
26
df84e61ae1e4 add dissociation
k0s <k0scist@gmail.com>
parents:
diff changeset
27 corpus = Corpus()
5
0c2b1fe8f53f update documentation a little
k0s <k0scist@gmail.com>
parents: 3
diff changeset
28 if args:
0c2b1fe8f53f update documentation a little
k0s <k0scist@gmail.com>
parents: 3
diff changeset
29 corpus.feed_stuff(*args)
0c2b1fe8f53f update documentation a little
k0s <k0scist@gmail.com>
parents: 3
diff changeset
30 else:
0c2b1fe8f53f update documentation a little
k0s <k0scist@gmail.com>
parents: 3
diff changeset
31 corpus.feed_stream(sys.stdin.read())
2
df84e61ae1e4 add dissociation
k0s <k0scist@gmail.com>
parents:
diff changeset
32 corpus.scramble()
3
e21f53582267 adding final dissociation stuff
k0s <k0scist@gmail.com>
parents: 2
diff changeset
33 dissociate(corpus)
2
df84e61ae1e4 add dissociation
k0s <k0scist@gmail.com>
parents:
diff changeset
34
df84e61ae1e4 add dissociation
k0s <k0scist@gmail.com>
parents:
diff changeset
35 if __name__ == '__main__':
3
e21f53582267 adding final dissociation stuff
k0s <k0scist@gmail.com>
parents: 2
diff changeset
36 main()