px
pypx

coolname

v5.0.0

Random name and slug generator

46 KB Python 3.10+ py3-none-anyBSD-2-Clause
Diff
$ uv add coolname

==============================

Random Name and Slug Generator

pypi build status coverage documentation

Do you want random human-readable strings?

>>> from coolname import generate_slug
>>> generate_slug()
'tiny-optimal-crocodile-of-progress'
>>> generate_slug()
'cherubic-leopard-of-delightful-serendipity'
>>> generate_slug()
'wealthy-athletic-swift-of-tempest'

Features

  • Generate slugs, ready to use, Django-compatible.
>>> from coolname import generate_slug
>>> generate_slug()
'qualified-agama-of-absolute-kindness'
  • Generate names as sequences and do whatever you want with them.
>>> from coolname import generate
>>> generate()
['beneficial', 'bronze', 'bee', 'of', 'glee']
>>> ' '.join(generate())
'limber transparent toad of luck'
>>> ''.join(x.capitalize() for x in generate())
'CalmRefreshingTerrierOfAttraction'
  • Generate names of specific length: 2, 3 or 4 words.
>>> generate_slug(2)
'mottled-crab'
>>> generate_slug(3)
'fantastic-acoustic-whale'
>>> generate_slug(4)
'military-diamond-tuatara-of-endeavor'

Note: without argument, it returns a random length, but probability of 4‑word name is much higher. Prepositions and articles (of, from, the) are not counted as words.

  • Use in command line:
$ coolname
prophetic-tireless-bullfrog-of-novelty
$ coolname 3 -n 2 -s '_'
wildebeest_of_original_champagne
ara_of_imminent_luck
  • Over 10\ 10\ random names.

===== ============== ======================================= Words Combinations Example ===== ============== ======================================= 4 10\ 10\ talented-enigmatic-bee-of-hurricane 3 10\ 8\ ambitious-turaco-of-joviality 2 10\ 5\ prudent-armadillo ===== ============== =======================================

>>> from coolname import get_combinations_count
>>> get_combinations_count()
83930205085
  • Hand-picked vocabulary. sexy and demonic are about the most "offensive" words here -

but there is only a pinch of them, for spice. Most words are either neutral, such as red, or positive, such as brave. And subject is always some animal, bird, fish, or insect - you can't be more neutral than Mother Nature.

>>> from coolname import RandomGenerator
>>> generator = RandomGenerator({
...   'all': {
...     'type': 'cartesian',
...     'lists': ['first_name', 'last_name']
...   },
...   'first_name': {
...     'type': 'words',
...     'words': ['james', 'john']
...   },
...   'last_name': {
...     'type': 'words',
...     'words': ['smith', 'brown']
...   }
... })
>>> generator.generate_slug()
'james-brown'

Installation

pip install coolname

coolname is written in pure Python and has no dependencies. It works on any modern Python version (3.10+), including PyPy.

Details

Version
5.0.0
License
BSD-2-Clause
Python
>=3.10
Maintainer
Alexander Lukanin <[email protected]>

Release Cadence

5
releases in the past year
avg 318 days between releases

Maintainers