Package: wonderwords
WonderwordsGenerate random words and sentences with ease in pythonhttps://github.com/mrmaxguns/wonderwordsmodule/workflows/Python%20package/badge.svgQuick links:GitHub repositoryPyPI pageOfficial DocumentationWonderwords is a python package useful for generating random words and
structured random sentences. It also comes with a colorful command line
interface for quickly generating random words. The latest version is availableon GitHubwhile the stable
version is availableon PyPI.Table of ContentsFeaturesInstallationUsageThe Wonderwords Python APIThe Wonderwords CLIVersioningLicenseContributingCreditsFeaturesHere's what Wonderwords is capable of:Random word generationSpecify word length, what it starts and ends with, category, and even custom
regular expressions!Use custom word lists and define custom categories of wordsBeautiful command line interfaceEasy-to-use interface and comprehensive documentationOpen source!InstallationTo install the latest version of Wonderwords, use your favorite package manager
for the Python Package Index to install thewonderwordspackage. For example
with pip:pipinstallwonderwordsTo upgrade Wonderwords with pip use:pipinstall--upgradewonderwordsTo verify that the installation worked, import Wonderwords in python:importwonderwordsIf you get aModuleNotFounderror, make sure that you have installed
Wonderwords from the step above. For further issues,open a new issue from the GitHub page.UsageThis section will briefly describe Wonderwords usage. Since Wonderwords has
a command line interface and python module, you will find two subsections.The Wonderwords Python APIThe base random word generation class is theRandomWordclass. You can
generate words with thewordmethod:fromwonderwordsimportRandomWordr=RandomWord()# generate a random wordr.word()# random word that starts with a and ends with enr.word(starts_with="a",ends_with="en")# generate a random noun or adjective, by default all parts of speech are includedr.word(include_parts_of_speech=["nouns","adjectives"])# generate a random word between the length of 3 and 8 charactersr.word(word_min_length=3,word_max_length=8)# generate a random word with a custom regular expressionr.word(regex=".*a")# you can combine multiple filtering optionsr.word(starts_with="ru",word_max_length=10,include_parts_of_speech=["verbs"])You can also get a list of all words matching some criteria using thefiltermethod:# get a list of ALL words that start with "am"r.filter(starts_with="am")# you can use all the options found in the word method:r.filter(ends_with="k",include_parts_of_speech=["verbs"],word_min_length=4)You can also generate a random list of words with therandom_wordsmethod.
This is much like the filter method, except you specify the amount of words
to return, and the words are randomly chosen. If there aren't enough words to
satisfy the amount, aNoWordsToChooseFromexception is raised:# get a list of 3 random nounsr.random_words(3,include_parts_of_speech=["nouns"])# you can use all the options found in the word methodr.random_words(5,starts_with="o",word_min_length=10)# if the amount of words you want to get is larger than the amount of words# there are, a NoWordsToChooseFrom exception is raised:r.random_words(100,starts_with="n",word_min_length=16)# there are less than 100 words that are at least 16 letters long and start with# n, so an exception is raised# you can silence the NoWordsToChooseFrom exception and return all words even# if there are less, by setting return_less_if_necessary to Truer.random_words(100,starts_with="n",word_min_length=16,return_less_if_necessary=True)Generating random sentences is easy using theRandomSentenceclass:fromwonderwordsimportRandomSentences=RandomSentence()# Get a random bare-bone sentences.bare_bone_sentence()# Get a random bare-bone sentence with a direct objects.simple_sentence()# Get a random bare-bone sentence with an adjectives.bare_bone_with_adjective()# Get a random sentence with a subject, predicate, direct object and adjectives.sentence()More advanced usage (and a tutorial!) is found in the documentation, such as
adding custom categories of words. The full documentation with all information
can be found at:https://wonderwords.readthedocs.ioThe Wonderwords CLIWonderwords provides a command line interface, too, which can be used with thewonderwordscommand. Usage:usage: wonderwords [-h] [-w] [-f] [-l LIST] [-s {bb,ss,bba,s}] [-v] [-sw STARTS_WITH] [-ew ENDS_WITH]
                   [-p {noun,verb,adjective,nouns,verbs,adjectives} [{noun,verb,adjective,nouns,verbs,adjectives} ...]] [-min WORD_MIN_LENGTH]
                   [-max WORD_MAX_LENGTH] [-r REGEX] [-d DELIMITER]

optional arguments:
  -h, --help            show this help message and exit
  -w, --word, --random-word
                        generate a random word
  -f, --filter          filter a list of words matching the criteria specified
  -l LIST, --list LIST  return a list of words of a certain length
  -s {bb,ss,bba,s}, --sentence {bb,ss,bba,s}
                        return a sentence based on the structure chosen
  -v, --version         Print the version number and exit
  -sw STARTS_WITH, --starts-with STARTS_WITH
                        specify what string the random word(s) should start with
  -ew ENDS_WITH, --ends-with ENDS_WITH
                        specify what string the random word(s) should end with
  -p {noun,verb,adjective,nouns,verbs,adjectives} [{noun,verb,adjective,nouns,verbs,adjectives} ...], --parts-of-speech {noun,verb,adjective,nouns,verbs,adjectives} [{noun,verb,adjective,nouns,verbs,adjectives} ...]
                        specify to only include certain parts of speech (by default all parts of speech are included)
  -min WORD_MIN_LENGTH, --word-min-length WORD_MIN_LENGTH
                        specify the minimum length of the word(s)
  -max WORD_MAX_LENGTH, --word-max-length WORD_MAX_LENGTH
                        specify the maximum length of the word(s)
  -r REGEX, --regex REGEX, --re REGEX, --regular-expression REGEX
                        specify a python-style regular expression that every word must match
  -d DELIMITER, --delimiter DELIMITER
                        Specify the delimiter to put between a list of words, default is ', 'The basic commands are:-w: generate a random word-f: which works much like thefilterfunction to return all words matching
a certain criteria-l LIST: get a list ofLISTrandom words-s {bb,ss,bba,s}: generate a random sentence:bb: bare bone sentencess: simple sentence (bare bone sentence with direct object)bba: bare bone sentence with adjectives: generate a simple sentence with an adjectiveVersioningDuring its early stages, Wonderwords didn't have a set versioning system and
therefore, versions beforev2.0.0-alphaare in disarray. Starting with version
2 alpha, Wonderwords usessematic versioning.LicenseWonderwords is open source and is distributed under the MIT license. See LICENSE
for more details.ContributingAll contributions are welcome and we hope Wonderwords will continue growing.
Start out by readingCONTRIBUTING.mdfor contributing guidelines and how to
get started.CreditsWonderwords has been made possible thanks to the following works:profanitylist.txtfromRobertJGabriel/Google-profanity-wordsunder theApache-2.0 license