Python package to generate random human-readable strings, e.g. project and experiment names
Project description
py-friendly-words
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.3.tar.gz
(3.6 kB
view hashes)
Built Distribution
Close
Hashes for friendlywords-1.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ee655d8e9970c261e6a79e32de5b629ead2a43624adc392e8c6bf724518f9c0 |
|
MD5 | df066e809af0dc2ce8c6de4d1c8c2509 |
|
BLAKE2b-256 | f1dae69ccafaffd886b93c6bd6ad33a5895db6321d0daf30843dbe7c9d19c754 |