Skip to main content

Python package to generate random human-readable strings, e.g. project and experiment names

Project description

py-friendly-words

BADGES GO HERE

Python package to generate random human-readable strings, e.g. project and experiment names. The word lists are taken from glitchdomcom/friendly-words and the package provides a convenient way to access it, as well as methods to easily generate combinations.

The package is simple, limited, and over-engineered at the same time. In other words, a weekend night side project. If you need a stable package with more extensive customization, uniqueness guarantees, bigger and/or custom dictionaries, check out alexanderlukanin13/coolname.

Features

  • No extra dependencies
  • Optional preloading to avoid re-reading word list files
  • Customizable generation (see the examples below)
  • Custom separators
  • Can return as a list of words

Quick guide

import friendlywords as fw

# optional preloading, load all word lists into memory (~TODO measure MB)
# otherwise every generation would involve reading the files
fw.preload()

# generate random string that consists of N words (N > 0)
# if N is 1, the returned word is an object
# if N > 1, the first N-1 words are predicates
fw.generate(1)
>>> 'square'
fw.generate(4)
>>> 'southern florentine rain college'

# generate string that consists of a random predicate and random object
# p = predicate, o = object, t = team, c = collection
fw.generate('po')
>>> 'bittersweet curio'
fw.generate('pt')
>>> 'wood organization'
fw.generate('co')
>>> 'selection title'

# specify the separator
fw.generate('po', separator='-')
>>> 'better-tabletop'
fw.generate('ppp', separator=', ')
>>> 'elegant, skitter, sunny'
fw.generate(3, separator='/')
>>> 'winter/alkaline/handsaw' 

# return list of words instead of a string (ignores separator keyword)
fw.generate(5, as_list=True)
>>> ['laced', 'polyester', 'ossified', 'cyclic', 'chronometer']
fw.generate('pppoc', as_list=True)
>>> ['able', 'splendid', 'harvest', 'hedge', 'playlist']

# lists of all predicates, objects, teams or collections
fw.predicates, fw.objects, fw.teams, fw.collections
>>> ['windy', ...], ['turnip', ...], ['alliance', ...], ['album', ...]

Notes

  • You could make it reproducible by setting the random.seed().

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

friendlywords-1.0.0.tar.gz (3.6 kB view details)

Uploaded Source

File details

Details for the file friendlywords-1.0.0.tar.gz.

File metadata

  • Download URL: friendlywords-1.0.0.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.7

File hashes

Hashes for friendlywords-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a346b99ae0071ea6233b13ce6a17708b39ea60392c302f2466fb74ca8b796105
MD5 57c25eac8f0370481e6f276c9ea705a9
BLAKE2b-256 388498634f8bf14dc61da2c1765c8a6695bd4c7ae9ba31a02f6ed37c31d26039

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page