Source code for iblutil.random

import random

ANIMALS = [
    'aardvark',
    'albatross',
    'alligator',
    'alpaca',
    'ant',
    'anteater',
    'antelope',
    'ape',
    'armadillo',
    'donkey',
    'baboon',
    'badger',
    'barracuda',
    'bat',
    'bear',
    'beaver',
    'bee',
    'beetle',
    'bison',
    'boar',
    'buffalo',
    'butterfly',
    'camel',
    'canary',
    'capybara',
    'caribou',
    'cassowary',
    'cat',
    'caterpillar',
    'cattle',
    'chamois',
    'cheetah',
    'chicken',
    'chimpanzee',
    'chinchilla',
    'chough',
    'clam',
    'cobra',
    'cockroach',
    'cod',
    'cormorant',
    'coyote',
    'crab',
    'crane',
    'crocodile',
    'crow',
    'curlew',
    'deer',
    'dinosaur',
    'dog',
    'dogfish',
    'dolphin',
    'dotterel',
    'dove',
    'dragonfly',
    'duck',
    'dugong',
    'dunlin',
    'eagle',
    'echidna',
    'eel',
    'eland',
    'elephant',
    'elk',
    'emu',
    'falcon',
    'ferret',
    'finch',
    'fish',
    'flamingo',
    'fly',
    'fox',
    'frog',
    'gaur',
    'gazelle',
    'gerbil',
    'giraffe',
    'gnat',
    'gnu',
    'goat',
    'goldfinch',
    'goldfish',
    'goose',
    'gorilla',
    'goshawk',
    'grasshopper',
    'grouse',
    'guanaco',
    'gull',
    'hamster',
    'hare',
    'hawk',
    'hedgehog',
    'heron',
    'herring',
    'hippopotamus',
    'hornet',
    'horse',
    'hummingbird',
    'hyena',
    'ibex',
    'ibis',
    'jackal',
    'jaguar',
    'jay',
    'jellyfish',
    'kangaroo',
    'kingfisher',
    'koala',
    'kookabura',
    'kouprey',
    'kudu',
    'lapwing',
    'lark',
    'lemur',
    'leopard',
    'lion',
    'llama',
    'lobster',
    'locust',
    'loris',
    'louse',
    'lyrebird',
    'magpie',
    'mallard',
    'manatee',
    'mandrill',
    'mantis',
    'marten',
    'meerkat',
    'mink',
    'mole',
    'mongoose',
    'monkey',
    'moose',
    'mosquito',
    'mouse',
    'mule',
    'narwhal',
    'newt',
    'nightingale',
    'octopus',
    'okapi',
    'opossum',
    'oryx',
    'ostrich',
    'otter',
    'owl',
    'oyster',
    'panther',
    'parrot',
    'partridge',
    'peafowl',
    'pelican',
    'penguin',
    'pheasant',
    'pig',
    'pigeon',
    'pony',
    'porcupine',
    'porpoise',
    'quail',
    'quelea',
    'quetzal',
    'rabbit',
    'raccoon',
    'rail',
    'ram',
    'rat',
    'raven',
    'reindeer',
    'rhinoceros',
    'rook',
    'salamander',
    'salmon',
    'sandpiper',
    'sardine',
    'scorpion',
    'seahorse',
    'seal',
    'shark',
    'sheep',
    'shrew',
    'skunk',
    'snail',
    'snake',
    'sparrow',
    'spider',
    'spoonbill',
    'squid',
    'squirrel',
    'starling',
    'stingray',
    'stinkbug',
    'stork',
    'swallow',
    'swan',
    'tapir',
    'tarsier',
    'termite',
    'tiger',
    'toad',
    'trout',
    'turkey',
    'turtle',
    'viper',
    'vulture',
    'wallaby',
    'walrus',
    'wasp',
    'weasel',
    'whale',
    'wolf',
    'wolverine',
    'wombat',
    'woodcock',
    'woodpecker',
    'worm',
    'wren',
    'yak',
    'zebra',
    'zorilla',
    'axolotl',
    'bandicoot',
    'basilisk',
    'beluga',
    'binturong',
    'blackbird',
    'bluebird',
    'bobcat',
    'budgerigar',
    'bullfrog',
    'bumblebee',
    'bunting',
    'buzzard',
    'caiman',
    'cardinal',
    'catfish',
    'centipede',
    'chameleon',
    'chimpanzee',
    'chipmunk',
    'cicada',
    'cockatoo',
    'condor',
    'copperhead',
    'coral',
    'cougar',
    'cowbird',
    'crayfish',
    'cricket',
    'cuttlefish',
    'dachshund',
    'dingo',
    'dormouse',
    'duckbill',
    'egret',
    'ermine',
    'falcon',
    'fennec',
    'firefly',
    'flounder',
    'flycatcher',
    'gazelle',
    'gecko',
    'gibbon',
    'gopher',
    'grackle',
    'greyhound',
    'grizzly',
    'groundhog',
    'guppy',
    'harrier',
    'hedgehog',
    'heron',
    'herring',
    'hornet',
    'hummingbird',
    'hyena',
    'iguana',
    'impala',
    'indri',
    'jacana',
    'jackrabbit',
    'jaguar',
    'javelin',
    'jellyfish',
    'junco',
    'kestrel',
    'kingfisher',
    'kiwi',
    'koala',
    'kookaburra',
    'krill',
    'ladybug',
    'lamprey',
    'lemming',
    'leopard',
    'lionfish',
    'lizard',
    'llama',
    'lobster',
    'locust',
    'lorikeet',
    'lynx',
    'macaque',
    'macaw',
    'magpie',
    'mallard',
    'mammoth',
    'manatee',
    'mandrill',
    'marlin',
    'marmot',
    'mastodon',
    'meadowlark',
    'meerkat',
    'millipede',
    'mockingbird',
    'mongoose',
    'monitor',
    'moray',
    'moth',
    'mouse',
    'mudpuppy',
    'muskrat',
    'nautilus',
    'needlefish',
    'nematode',
    'newt',
    'nighthawk',
    'numbat',
    'nuthatch',
    'ocelot',
    'octopus',
    'opossum',
    'orangutan',
    'oriole',
    'osprey',
    'ostrich',
    'otter',
    'ovenbird',
    'owl',
    'oyster',
    'paddlefish',
    'panda',
    'pangolin',
    'panther',
    'parakeet',
    'parrot',
    'peacock',
    'peafowl',
    'pelican',
    'penguin',
    'pheasant',
    'pigeon',
    'pika',
    'pike',
    'piranha',
    'platypus',
    'plover',
    'polecat',
    'porcupine',
    'porpoise',
    'possum',
    'prawn',
    'puffin',
    'puma',
    'python',
    'quagga',
    'quail',
    'quetzal',
    'quokka',
    'quoll',
    'rabbit',
    'raccoon',
    'rattlesnake',
    'raven',
    'reindeer',
    'rhea',
    'rhinoceros',
    'roadrunner',
    'robin',
    'rooster',
    'sailfish',
    'salamander',
    'salmon',
    'sandpiper',
    'scallop',
    'scorpion',
    'seagull',
    'seahorse',
    'seal',
    'serval',
    'shearwater',
    'shrimp',
    'silkworm',
    'silverfish',
    'skink',
    'skunk',
    'sloth',
    'slug',
    'snail',
    'snake',
    'snipe',
    'sparrow',
    'sphinx',
    'spider',
    'spoonbill',
    'squid',
    'squirrel',
    'starfish',
    'starling',
    'stegosaurus',
    'stingray',
    'stork',
    'sturgeon',
    'sunfish',
    'swallow',
    'swan',
    'swift',
    'swordfish',
    'tadpole',
    'takin',
    'tanager',
    'tapir',
    'tarantula',
    'tarsier',
    'termite',
    'tern',
    'thrush',
    'thylacine',
    'tiger',
    'titmouse',
    'toad',
    'tortoise',
    'toucan',
    'triceratops',
    'trout',
    'tuna',
    'turkey',
    'turtle',
    'umbrellabird',
    'unicorn',
    'urial',
    'vicuna',
    'viper',
    'vole',
    'vulture',
    'wallaby',
    'walrus',
    'warbler',
    'warthog',
    'wasp',
    'waterbuck',
    'weasel',
    'weevil',
    'whale',
    'wildebeest',
    'wolf',
    'wolverine',
    'wombat',
    'woodchuck',
    'woodpecker',
    'worm',
    'wren',
    'xerus',
    'yak',
    'yellowjacket',
    'zebra',
    'zebu',
    'zonkey',
    'zorse',
]

COLOURS = [
    'amber',
    'amethyst',
    'apricot',
    'aqua',
    'aquamarine',
    'auburn',
    'azure',
    'beige',
    'bisque',
    'black',
    'blue',
    'blueviolet',
    'brass',
    'bronze',
    'brown',
    'burgundy',
    'cardinal',
    'carmine',
    'celadon',
    'cerulean',
    'champagne',
    'charcoal',
    'chartreuse',
    'chocolate',
    'cinnamon',
    'cobalt',
    'copper',
    'coral',
    'cornflower',
    'crimson',
    'cyan',
    'denim',
    'ecru',
    'emerald',
    'fuchsia',
    'gold',
    'goldenrod',
    'gray',
    'green',
    'greenyellow',
    'grey',
    'hotpink',
    'indigo',
    'ivory',
    'jade',
    'khaki',
    'lavender',
    'lemon',
    'lilac',
    'lime',
    'linen',
    'magenta',
    'mahogany',
    'maroon',
    'mauve',
    'midnightblue',
    'mint',
    'mulberry',
    'mustard',
    'navy',
    'ochre',
    'olive',
    'olivedrab',
    'orange',
    'orangered',
    'orchid',
    'peach',
    'periwinkle',
    'pink',
    'plum',
    'puce',
    'purple',
    'raspberry',
    'red',
    'rose',
    'rosybrown',
    'royalblue',
    'ruby',
    'rust',
    'saffron',
    'salmon',
    'sand',
    'sandybrown',
    'sapphire',
    'scarlet',
    'seagreen',
    'seashell',
    'sienna',
    'silver',
    'skyblue',
    'slateblue',
    'slategray',
    'snow',
    'steelblue',
    'tan',
    'tangerine',
    'taupe',
    'teal',
    'thistle',
    'tomato',
    'turquoise',
    'umber',
    'violet',
    'viridian',
    'wheat',
    'white',
    'wisteria',
    'yellow',
    'yellowgreen',
    'alabaster',
    'almond',
    'amaranth',
    'ambergris',
    'aquamarine',
    'ash',
    'avocado',
    'azure',
    'banana',
    'beet',
    'bistre',
    'bittersweet',
    'blackberry',
    'blond',
    'blood',
    'blueberry',
    'blush',
    'bone',
    'brick',
    'bronze',
    'butterscotch',
    'cadet',
    'caramel',
    'carrot',
    'cayenne',
    'cerise',
    'chestnut',
    'cider',
    'cinnabar',
    'claret',
    'clover',
    'coffee',
    'cognac',
    'coral',
    'cranberry',
    'cream',
    'daffodil',
    'dandelion',
    'eggplant',
    'eggshell',
    'flax',
    'flaxen',
    'forest',
    'ginger',
    'grapefruit',
    'grass',
    'hazel',
    'heather',
    'heliotrope',
    'honey',
    'honeydew',
    'huckleberry',
    'hunter',
    'imperial',
    'iris',
    'jasmine',
    'lapis',
    'latte',
    'laurel',
    'lava',
    'lavender',
    'lemon',
    'licorice',
    'lilac',
    'lime',
    'linen',
    'liver',
    'malachite',
    'mango',
    'melon',
    'midnight',
    'mint',
    'mocha',
    'moss',
    'mulberry',
    'mushroom',
    'mustard',
    'myrtle',
    'nutmeg',
    'oatmeal',
    'obsidian',
    'onyx',
    'papaya',
    'paprika',
    'peach',
    'pear',
    'pearl',
    'peony',
    'pepper',
    'persimmon',
    'pewter',
    'pine',
    'pistachio',
    'platinum',
    'plum',
    'poppy',
    'porcelain',
    'pumpkin',
    'quartz',
    'raisin',
    'raspberry',
    'raven',
    'rosewood',
    'russet',
    'rust',
    'sable',
    'saffron',
    'sage',
    'salmon',
    'sand',
    'sangria',
    'sapphire',
    'scarlet',
    'sepia',
    'shamrock',
    'slate',
    'smoke',
    'snow',
    'spearmint',
    'straw',
    'strawberry',
    'tangerine',
    'terracotta',
    'thistle',
    'titanium',
    'topaz',
    'truffle',
    'tulip',
    'tumbleweed',
    'vanilla',
    'vermilion',
    'violet',
    'walnut',
    'watermelon',
    'wenge',
    'wheat',
    'wine',
    'wisteria',
    'xanadu',
    'zaffre',
    'zinnwaldite',
]

ADJECTIVES = [
    'abrupt',
    'acidic',
    'adorable',
    'adventurous',
    'aggressive',
    'agitated',
    'alert',
    'aloof',
    'amiable',
    'amused',
    'annoyed',
    'antsy',
    'anxious',
    'appalling',
    'appetizing',
    'apprehensive',
    'arrogant',
    'ashamed',
    'astonishing',
    'attractive',
    'average',
    'batty',
    'beefy',
    'bewildered',
    'biting',
    'bitter',
    'bizarre',
    'bland',
    'blobby',
    'bloated',
    'blotchy',
    'blurry',
    'blushing',
    'bogus',
    'boisterous',
    'bony',
    'boorish',
    'bored',
    'bouncy',
    'brainy',
    'brash',
    'brave',
    'brawny',
    'bumpy',
    'burly',
    'bustling',
    'buttery',
    'buzzing',
    'cagey',
    'calculating',
    'callous',
    'cantankerous',
    'capricious',
    'careful',
    'careless',
    'caring',
    'cautious',
    'charming',
    'cheerful',
    'cheeky',
    'cheesy',
    'chewy',
    'chilly',
    'chubby',
    'circular',
    'clammy',
    'classy',
    'clean',
    'clear',
    'clever',
    'clumsy',
    'cocky',
    'coherent',
    'cold',
    'colorful',
    'colossal',
    'combative',
    'comfortable',
    'condemned',
    'condescending',
    'confused',
    'contemplative',
    'convincing',
    'convoluted',
    'cooperative',
    'corny',
    'costly',
    'courageous',
    'crabby',
    'creamy',
    'creepy',
    'crispy',
    'critical',
    'crooked',
    'crunchy',
    'curious',
    'curly',
    'curved',
    'cynical',
    'daffy',
    'damaged',
    'damp',
    'dangerous',
    'dapper',
    'daring',
    'dark',
    'dashing',
    'dazzling',
    'debonair',
    'decisive',
    'decorous',
    'defensive',
    'defiant',
    'delicious',
    'delightful',
    'demanding',
    'demonic',
    'dense',
    'deranged',
    'determined',
    'devoted',
    'didactic',
    'different',
    'difficult',
    'diligent',
    'direful',
    'dirty',
    'disagreeable',
    'discreet',
    'disgusted',
    'disgusting',
    'disillusioned',
    'dispensable',
    'distinct',
    'distorted',
    'dizzy',
    'domineering',
    'dopey',
    'doting',
    'doubtful',
    'drab',
    'drained',
    'dull',
    'dusty',
    'dynamic',
    'dysfunctional',
    'eager',
    'earsplitting',
    'eccentric',
    'ecstatic',
    'edible',
    'educated',
    'elastic',
    'elated',
    'elderly',
    'electric',
    'elegant',
    'elfin',
    'elite',
    'embarrassed',
    'embellished',
    'eminent',
    'emotional',
    'enchanted',
    'enchanting',
    'encouraging',
    'energetic',
    'enormous',
    'enthusiastic',
    'envious',
    'equable',
    'erratic',
    'ethereal',
    'evanescent',
    'evasive',
    'excited',
    'exciting',
    'exotic',
    'expensive',
    'exuberant',
    'exultant',
    'fabulous',
    'faded',
    'fainthearted',
    'faithful',
    'fallacious',
    'false',
    'familiar',
    'famous',
    'fanatical',
    'fancy',
    'fantastic',
    'fascinated',
    'fastidious',
    'fat',
    'fearful',
    'fearless',
    'feeble',
    'feigned',
    'festive',
    'fetid',
    'fierce',
    'filthy',
    'finicky',
    'flagrant',
    'flaky',
    'flashy',
    'flat',
    'flawless',
    'flimsy',
    'flippant',
    'flowery',
    'fluffy',
    'fluttering',
    'foamy',
    'foolish',
    'forgetful',
    'fortunate',
    'frail',
    'frantic',
    'freezing',
    'fresh',
    'fretful',
    'friendly',
    'frightened',
    'frightening',
    'frothy',
    'frustrating',
    'fuzzy',
    'gabby',
    'gainful',
    'gamy',
    'gaping',
    'garish',
    'garrulous',
    'gaudy',
    'gelatinous',
    'gelid',
    'ghastly',
    'ghostly',
    'giddy',
    'gigantic',
    'giggly',
    'glamorous',
    'gleaming',
    'glib',
    'glistening',
    'glittering',
    'gloomy',
    'glorious',
    'glossy',
    'glum',
    'godly',
    'goofy',
    'gorgeous',
    'graceful',
    'grandiose',
    'grateful',
    'gratis',
    'gray',
    'greasy',
    'great',
    'greedy',
    'green',
    'grieving',
    'groovy',
    'grotesque',
    'grouchy',
    'grubby',
    'gruesome',
    'grumpy',
    'guarded',
    'guiltless',
    'gullible',
    'gusty',
    'guttural',
    'habitual',
    'hairy',
    'half',
    'hallowed',
    'halting',
    'handsome',
    'handsomely',
    'handy',
    'hanging',
    'hapless',
    'happy',
    'harassed',
    'hard',
    'harmonious',
    'harsh',
    'hateful',
    'heady',
    'healthy',
    'heartbreaking',
    'heavenly',
    'heavy',
    'hellish',
    'helpful',
    'helpless',
    'hesitant',
    'hideous',
    'highfalutin',
    'hilarious',
    'hissing',
    'hoarse',
    'holistic',
    'hollow',
    'homeless',
    'homely',
    'honorable',
    'horrible',
    'horrific',
    'hospitable',
    'hot',
    'hulking',
    'humorous',
    'hungry',
    'hurried',
    'hurt',
    'hushed',
    'husky',
    'hypnotic',
    'hysterical',
    'icky',
    'icy',
    'idiotic',
    'ignorant',
    'ill',
    'illegal',
    'illustrious',
    'imaginary',
    'immense',
    'imminent',
    'impartial',
    'imperfect',
    'impolite',
    'important',
    'imported',
    'impossible',
    'incandescent',
    'incompetent',
    'inconclusive',
    'incredible',
    'inquisitive',
    'insidious',
    'instinctive',
    'intelligent',
    'interesting',
    'internal',
    'invincible',
    'irate',
    'irritating',
    'itchy',
    'jaded',
    'jagged',
    'jazzy',
    'jealous',
    'jittery',
    'jobless',
    'jolly',
    'joyous',
    'judicious',
    'juicy',
    'jumbled',
    'jumpy',
    'juvenile',
    'kaput',
    'keen',
    'knotty',
    'knowing',
    'knowledgeable',
    'known',
    'labored',
    'lackadaisical',
    'lacking',
    'lame',
    'lamentable',
    'languid',
    'large',
    'laughable',
    'lazy',
    'lean',
    'learned',
    'left',
    'legal',
    'lethal',
    'level',
    'lewd',
    'light',
    'likeable',
    'limping',
    'literate',
    'little',
    'lively',
    'livid',
    'living',
    'lonely',
    'longing',
    'loose',
    'lopsided',
    'loud',
    'loutish',
    'lovely',
    'loving',
    'low',
    'lowly',
    'lucky',
    'ludicrous',
    'lumpy',
    'lush',
    'luxuriant',
    'lying',
    'lyrical',
    'macabre',
    'macho',
    'maddening',
    'madly',
    'magenta',
    'magical',
    'magnificent',
    'majestic',
    'makeshift',
    'malicious',
    'mammoth',
    'maniacal',
    'many',
    'marked',
    'massive',
    'materialistic',
    'mature',
    'mean',
    'measly',
    'meaty',
    'medical',
    'meek',
    'mellow',
    'melodic',
    'melted',
    'merciful',
    'mere',
    'messy',
    'mighty',
    'military',
    'milky',
    'mindless',
    'miniature',
    'minor',
    'miscreant',
    'misty',
    'mixed',
    'moaning',
    'modern',
    'moldy',
    'momentous',
    'motionless',
    'mountainous',
    'muddled',
    'mundane',
    'murky',
    'mushy',
    'mute',
    'mysterious',
    'naive',
    'nappy',
    'narrow',
    'nasty',
    'naughty',
    'nauseating',
    'nebulous',
    'needless',
    'needy',
    'neighborly',
    'nervous',
    'new',
    'nice',
    'nifty',
    'nimble',
    'nippy',
    'noiseless',
    'noisy',
    'nonchalant',
    'nondescript',
    'nonstop',
    'nostalgic',
    'nosy',
    'noxious',
    'null',
    'numberless',
    'numerous',
    'nutritious',
    'nutty',
    'oafish',
    'obedient',
    'obeisant',
    'obese',
    'obnoxious',
    'obscene',
    'obsequious',
    'observant',
    'obsolete',
    'obtainable',
    'oceanic',
    'odd',
    'offbeat',
    'old',
    'omniscient',
    'onerous',
    'open',
    'opposite',
    'optimal',
    'orange',
    'ordinary',
    'organic',
    'ossified',
    'outgoing',
    'outrageous',
    'outstanding',
    'oval',
    'overconfident',
    'overjoyed',
    'overrated',
    'overt',
    'overwrought',
    'painful',
    'painstaking',
    'pale',
    'paltry',
    'panicky',
    'panoramic',
    'parallel',
    'parched',
    'parsimonious',
    'past',
    'pastoral',
    'pathetic',
    'peaceful',
    'penitent',
    'perfect',
    'periodic',
    'permissible',
    'perpetual',
    'petite',
    'phobic',
    'physical',
    'picayune',
    'piquant',
    'placid',
    'plain',
    'plant',
    'plastic',
    'plausible',
    'pleasant',
    'plucky',
    'pointless',
    'poised',
    'polite',
    'political',
    'poor',
    'possessive',
    'possible',
    'powerful',
    'precious',
    'premium',
    'present',
    'pretty',
    'previous',
    'pricey',
    'prickly',
    'private',
    'probable',
    'productive',
    'profuse',
    'protective',
    'proud',
    'psychedelic',
    'psychotic',
    'public',
    'puffy',
    'pumped',
    'puny',
    'purple',
    'purring',
    'pushy',
    'puzzled',
    'puzzling',
    'quack',
    'quaint',
    'quarrelsome',
    'questionable',
    'quick',
    'quickest',
    'quiet',
    'quirky',
    'quixotic',
    'quizzical',
    'rabid',
    'racial',
    'ragged',
    'rainy',
    'rambunctious',
    'rampant',
    'rapid',
    'rare',
    'raspy',
    'ratty',
    'ready',
    'real',
    'rebel',
    'receptive',
    'recondite',
    'redundant',
    'reflective',
    'regular',
    'relieved',
    'remarkable',
    'reminiscent',
    'repulsive',
    'resolute',
    'resonant',
    'responsible',
    'rhetorical',
    'rich',
    'righteous',
    'rightful',
    'rigid',
    'ripe',
    'ritzy',
    'roasted',
    'robust',
    'romantic',
    'roomy',
    'rotten',
    'rough',
    'round',
    'royal',
    'ruddy',
    'rude',
    'rural',
    'rustic',
    'ruthless',
    'sable',
    'sad',
    'safe',
    'salty',
    'same',
    'sassy',
    'satisfying',
    'savory',
    'scandalous',
    'scarce',
    'scared',
    'scary',
    'scattered',
    'scientific',
    'scintillating',
    'scrawny',
    'screeching',
    'second',
    'secret',
    'secretive',
    'sedate',
    'seemly',
    'selective',
    'selfish',
    'separate',
    'serious',
    'shaggy',
    'shaky',
    'shallow',
    'sharp',
    'shiny',
    'shivering',
    'shocking',
    'short',
    'shrill',
    'shut',
    'shy',
    'sick',
    'silent',
    'silky',
    'silly',
    'simple',
    'simplistic',
    'sincere',
    'sinful',
    'skillful',
    'skinny',
    'sleepy',
    'slim',
    'slimy',
    'slippery',
    'sloppy',
    'slow',
    'small',
    'smelly',
    'smiling',
    'smoggy',
    'smooth',
    'sneaky',
    'snobbish',
    'snotty',
    'soft',
    'soggy',
    'solid',
    'somber',
    'sophisticated',
    'sordid',
    'sore',
    'sour',
    'sparkling',
    'special',
    'spectacular',
    'spicy',
    'spiffy',
    'spiky',
    'spiritual',
    'spiteful',
    'splendid',
    'spooky',
    'spotless',
    'spotted',
    'spotty',
    'spurious',
    'squalid',
    'square',
    'squealing',
    'squeamish',
    'staking',
    'stale',
    'standing',
    'statuesque',
    'steadfast',
    'steady',
    'steep',
    'stereotyped',
    'sticky',
    'stiff',
    'stimulating',
    'stingy',
    'stormy',
]


[docs] def sillyname(): """ Generate a human readable name by combining a random adjective, a random colour, and a random animal. There are 87_623_250 possible combinations :return: str: A silly name. """ name = f'{random.choice(ADJECTIVES)}-{random.choice(COLOURS)}-{random.choice(ANIMALS)}' return name
[docs] def name_from_int(number: int): """ Generate a human readable name by converting a hash value into an integer, then mapping it to a random index in the list of names. There are 87_623_250 possible combinations :param number: int: integer - will be capped to the maximum value. :return: str: A 3 words name. """ int_value = number % (len(ADJECTIVES) * len(COLOURS) * len(ANIMALS)) ia = int_value // (len(COLOURS) * len(ANIMALS)) ib = (int_value % (len(COLOURS) * len(ANIMALS))) // len(ANIMALS) ic = int_value % len(ANIMALS) return f'{ADJECTIVES[ia]}-{COLOURS[ib]}-{ANIMALS[ic]}'
[docs] def name_from_hash(hash): return name_from_int(int(hash.hexdigest(), 16))