==============================
Random Name and Slug Generator
==============================
|pypi| |build| |coverage| |docs|
Do you want random human-readable strings?
.. code-block:: python
>>> 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.
.. code-block:: python
>>> from coolname import generate_slug
>>> generate_slug()
'qualified-agama-of-absolute-kindness'
* Generate names as sequences and do whatever you want with them.
.. code-block:: python
>>> 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.
.. code-block:: python
>>> 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:
.. code-block:: bash
$ coolname
prophetic-tireless-bullfrog-of-novelty
$ coolname 3 -n 2 -s '_'
wildebeest_of_original_champagne
ara_of_imminent_luck
* Over 10\ :sup:`10`\ random names.
===== ============== =======================================
Words Combinations Example
===== ============== =======================================
4 10\ :sup:`10`\ ``talented-enigmatic-bee-of-hurricane``
3 10\ :sup:`8`\ ``ambitious-turaco-of-joviality``
2 10\ :sup:`5`\ ``prudent-armadillo``
===== ============== =======================================
.. code-block:: python
>>> 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.
* `Easy customization <http://coolname.readthedocs.io/en/latest/customization.html>`_. Create your own rules!
.. code-block:: python
>>> 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
============
.. code-block:: bash
pip install coolname
**coolname** is written in pure Python and has no dependencies. It works on any modern Python version (3.10+), including PyPy.
.. |pypi| image:: https://img.shields.io/pypi/v/coolname.svg
:target: https://pypi.python.org/pypi/coolname
:alt: pypi
.. |build| image:: https://github.com/alexanderlukanin13/coolname/actions/workflows/ci.yml/badge.svg?branch=master
:target: https://github.com/alexanderlukanin13/coolname/actions/workflows/ci.yml
:alt: build status
.. |coverage| image:: https://coveralls.io/repos/alexanderlukanin13/coolname/badge.svg?branch=master&service=github
:target: https://coveralls.io/github/alexanderlukanin13/coolname?branch=master
:alt: coverage
.. |docs| image:: https://img.shields.io/readthedocs/coolname.svg
:target: http://coolname.readthedocs.io/en/latest/
:alt: documentation
Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.
Overall
Maintained
Code review
PyPI
Latest release
Releases this year
282 followers · starred Jul 2021
==============================
Random Name and Slug Generator
==============================
|pypi| |build| |coverage| |docs|
Do you want random human-readable strings?
.. code-block:: python
>>> 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.
.. code-block:: python
>>> from coolname import generate_slug
>>> generate_slug()
'qualified-agama-of-absolute-kindness'
* Generate names as sequences and do whatever you want with them.
.. code-block:: python
>>> 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.
.. code-block:: python
>>> 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:
.. code-block:: bash
$ coolname
prophetic-tireless-bullfrog-of-novelty
$ coolname 3 -n 2 -s '_'
wildebeest_of_original_champagne
ara_of_imminent_luck
* Over 10\ :sup:`10`\ random names.
===== ============== =======================================
Words Combinations Example
===== ============== =======================================
4 10\ :sup:`10`\ ``talented-enigmatic-bee-of-hurricane``
3 10\ :sup:`8`\ ``ambitious-turaco-of-joviality``
2 10\ :sup:`5`\ ``prudent-armadillo``
===== ============== =======================================
.. code-block:: python
>>> 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.
* `Easy customization <http://coolname.readthedocs.io/en/latest/customization.html>`_. Create your own rules!
.. code-block:: python
>>> 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
============
.. code-block:: bash
pip install coolname
**coolname** is written in pure Python and has no dependencies. It works on any modern Python version (3.10+), including PyPy.
.. |pypi| image:: https://img.shields.io/pypi/v/coolname.svg
:target: https://pypi.python.org/pypi/coolname
:alt: pypi
.. |build| image:: https://github.com/alexanderlukanin13/coolname/actions/workflows/ci.yml/badge.svg?branch=master
:target: https://github.com/alexanderlukanin13/coolname/actions/workflows/ci.yml
:alt: build status
.. |coverage| image:: https://coveralls.io/repos/alexanderlukanin13/coolname/badge.svg?branch=master&service=github
:target: https://coveralls.io/github/alexanderlukanin13/coolname?branch=master
:alt: coverage
.. |docs| image:: https://img.shields.io/readthedocs/coolname.svg
:target: http://coolname.readthedocs.io/en/latest/
:alt: documentation
Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.
Overall
Maintained
Code review
PyPI
Latest release
Releases this year
282 followers · starred Jul 2021