Metadata-Version: 2.1
Name: coolname
Version: 1.1.0
Summary: Random name and slug generator
Home-page: https://github.com/alexanderlukanin13/coolname
Author: Alexander Lukanin
Author-email: alexander.lukanin.13@gmail.com
License: BSD
Keywords: coolname
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
License-File: LICENSE

==============================
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()
    'big-maize-lori-of-renovation'
    >>> generate_slug()
    'tunneling-amaranth-rhino-of-holiness'
    >>> generate_slug()
    'soft-cuddly-shrew-of-expertise'

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.*

* 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(4)
        60610181372

* 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, including PyPy.


.. |pypi| image:: https://img.shields.io/pypi/v/coolname.svg
    :target: https://pypi.python.org/pypi/coolname
    :alt: pypi

.. |build| image:: https://api.travis-ci.org/alexanderlukanin13/coolname.svg?branch=master
    :target: https://travis-ci.org/alexanderlukanin13/coolname?branch=master
    :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




Release history
===============

1.1.0 (2018-08-02)
------------------

* 32-bit Python is supported.

1.0.4 (2018-02-17)
------------------

* **Breaking changes:**

    - Renamed ``RandomNameGenerator`` to ``RandomGenerator``.

    - ``randomize`` was removed, because it was just an alias to ``random.seed``.

* `Phrase lists <https://coolname.readthedocs.io/en/latest/customization.html#phrases-list>`_
  give you even more freedom when creating custom generators.

* You can seed or even replace the underlying ``random.Random`` instance, see
  `Randomization <https://coolname.readthedocs.io/en/latest/randomization.html>`_.

* Change the default generator using ``COOLNAME_DATA_DIR`` and ``COOLNAME_DATA_MODULE``. This also saves memory!

* Total number of combinations = 60 billions.


For earlier releases, see `History <https://coolname.readthedocs.io/en/latest/history.html>`_
