Random Name and Slug Generator

Overview

Random Name and Slug Generator

pypi build status coverage documentation

Do you want random human-readable strings?

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

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

  • Over 1010 random names.

    Words

    Combinations

    Example

    4

    1010

    talented-enigmatic-bee-of-hurricane

    3

    108

    ambitious-turaco-of-joviality

    2

    105

    prudent-armadillo

    >>> 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. Create your own rules!

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

Comments
  • Bump pyyaml from 5.1 to 5.4 in /requirements

    Bump pyyaml from 5.1 to 5.4 in /requirements

    Bumps pyyaml from 5.1 to 5.4.

    Changelog

    Sourced from pyyaml's changelog.

    5.4 (2021-01-19)

    5.3.1 (2020-03-18)

    • yaml/pyyaml#386 -- Prevents arbitrary code execution during python/object/new constructor

    5.3 (2020-01-06)

    5.2 (2019-12-02)

    • Repair incompatibilities introduced with 5.1. The default Loader was changed, but several methods like add_constructor still used the old default yaml/pyyaml#279 -- A more flexible fix for custom tag constructors yaml/pyyaml#287 -- Change default loader for yaml.add_constructor yaml/pyyaml#305 -- Change default loader for add_implicit_resolver, add_path_resolver
    • Make FullLoader safer by removing python/object/apply from the default FullLoader yaml/pyyaml#347 -- Move constructor for object/apply to UnsafeConstructor
    • Fix bug introduced in 5.1 where quoting went wrong on systems with sys.maxunicode <= 0xffff yaml/pyyaml#276 -- Fix logic for quoting special characters
    • Other PRs: yaml/pyyaml#280 -- Update CHANGES for 5.1

    5.1.2 (2019-07-30)

    • Re-release of 5.1 with regenerated Cython sources to build properly for Python 3.8b2+

    ... (truncated)

    Commits
    • 58d0cb7 5.4 release
    • a60f7a1 Fix compatibility with Jython
    • ee98abd Run CI on PR base branch changes
    • ddf2033 constructor.timezone: _copy & deepcopy
    • fc914d5 Avoid repeatedly appending to yaml_implicit_resolvers
    • a001f27 Fix for CVE-2020-14343
    • fe15062 Add 3.9 to appveyor file for completeness sake
    • 1e1c7fb Add a newline character to end of pyproject.toml
    • 0b6b7d6 Start sentences and phrases for capital letters
    • c976915 Shell code improvements
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 3
  • generate_slug generates deterministic names

    generate_slug generates deterministic names

    Hi, I am facing a very strange issue that is coolname.generate_slug() creates deterministic names inside python package. If I import the module in Python console and try out separately, everything works the way it is supposed to. like

    $ conda activate my_env
    $ python
    > from coolname import generate_slug
    > generate_slug()
    

    Any ideas why this could be happening.

    opened by muaali 3
  • OverflowError on 32-bit Python

    OverflowError on 32-bit Python

    Hi there! I tired using coolname with 32-bit Python (on Windows, both Python 2 and Python 3) and got an OverflowError from this line originating from trying to create the default generator.

    I assume that only 64-bit versions are supported, but just a heads up since the readme doesn't mention it explicitly. Thanks!

    bug 
    opened by prurph 3
  • MD5 not supported without usedforsecurity=False in FIPS 140-2 environment

    MD5 not supported without usedforsecurity=False in FIPS 140-2 environment

    In FIPS environments, the use of md5 algorithm must use the usedforsecurity=False kwarg, otherwise it will assert with:

    │     import coolname                                                                                                                                                                                                            
    │   File "/opt/python/lib/python3.10/site-packages/coolname/__init__.py", line 7, in <module>                                                                                                                                    
    │     from .impl import generate, generate_slug, get_combinations_count,\                                                                                                                                                        
    │   File "/opt/python/lib/python3.10/site-packages/coolname/impl.py", line 565, in <module>                                                                                                                                      
    │     _default = _create_default_generator()                                                                                                                                                                                     
    │   File "/opt/python/lib/python3.10/site-packages/coolname/impl.py", line 561, in _create_default_generator                                                                                                                     
    │     return RandomGenerator(config)                                                                                                                                                                                             
    │   File "/opt/python/lib/python3.10/site-packages/coolname/impl.py", line 246, in __init__                                                                                                                                      
    │     self._lists[None] = self._lists[None].squash(True, {})                                                                                                                                                                     
    │   File "/opt/python/lib/python3.10/site-packages/coolname/impl.py", line 156, in squash                                                                                                                                        
    │     result = super().squash(hard, cache)                                                                                                                                                                                       
    │   File "/opt/python/lib/python3.10/site-packages/coolname/impl.py", line 37, in squash                                                                                                                                         
    │     self._lists = [x.squash(hard, cache) for x in self._lists]                                                                                                                                                                 
    │   File "/opt/python/lib/python3.10/site-packages/coolname/impl.py", line 37, in <listcomp>                                                                                                                                     
    │     self._lists = [x.squash(hard, cache) for x in self._lists]                                                                                                                                                                 
    │   File "/opt/python/lib/python3.10/site-packages/coolname/impl.py", line 156, in squash                                                                                                                                        
    │     result = super().squash(hard, cache)                                                                                                                                                                                       
    │   File "/opt/python/lib/python3.10/site-packages/coolname/impl.py", line 37, in squash                                                                                                                                         
    │     self._lists = [x.squash(hard, cache) for x in self._lists]                                                                                                                                                                 
    │   File "/opt/python/lib/python3.10/site-packages/coolname/impl.py", line 37, in <listcomp>                                                                                                                                     
    │     self._lists = [x.squash(hard, cache) for x in self._lists]                                                                                                                                                                 
    │   File "/opt/python/lib/python3.10/site-packages/coolname/impl.py", line 37, in squash                                                                                                                                         
    │     self._lists = [x.squash(hard, cache) for x in self._lists]                                                                                                                                                                 
    │   File "/opt/python/lib/python3.10/site-packages/coolname/impl.py", line 37, in <listcomp>                                                                                                                                     
    │     self._lists = [x.squash(hard, cache) for x in self._lists]                                                                                                                                                                 
    │   File "/opt/python/lib/python3.10/site-packages/coolname/impl.py", line 164, in squash                                                                                                                                        
    │     if result._hash in cache:  # noqa                                                                                                                                                                                          
    │   File "/opt/python/lib/python3.10/site-packages/coolname/impl.py", line 84, in _hash                                                                                                                                          
    │     md5 = hashlib.md5()                                                                                                                                                                                                         
    │ ValueError: [digital envelope routines] disabled for fips     
    

    Reference other libraries which encountered this:

    opened by szelenka 2
  • Add CLI functionality

    Add CLI functionality

    :wave: Hi. Thanks for making coolname! It is one of my favorite tools for making human readable workflow slugs. A feature request would be to add command line functionality, so that you could have something like

    $ coolname generate-slug -n 2  # accomplished-cheetah
    

    which would basically be the same as calling

    $ python -c 'from coolname import generate_slug; print(generate_slug(2))'
    

    This would also be nice as then people could get it as a global CLI tool with pipx. :sparkles:

    opened by matthewfeickert 2
  • Bump cryptography from 3.2 to 3.3.2 in /requirements

    Bump cryptography from 3.2 to 3.3.2 in /requirements

    Bumps cryptography from 3.2 to 3.3.2.

    Changelog

    Sourced from cryptography's changelog.

    3.3.2 - 2021-02-07

    
    * **SECURITY ISSUE:** Fixed a bug where certain sequences of ``update()`` calls
      when symmetrically encrypting very large payloads (>2GB) could result in an
      integer overflow, leading to buffer overflows. *CVE-2020-36242*
    

    .. _v3-3-1:

    3.3.1 - 2020-12-09

    • Re-added a legacy symbol causing problems for older pyOpenSSL users.

    .. _v3-3:

    3.3 - 2020-12-08

    
    * **BACKWARDS INCOMPATIBLE:** Support for Python 3.5 has been removed due to
      low usage and maintenance burden.
    * **BACKWARDS INCOMPATIBLE:** The
      :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` and
      :class:`~cryptography.hazmat.primitives.ciphers.aead.AESGCM` now require
      64-bit to 1024-bit (8 byte to 128 byte) initialization vectors. This change
      is to conform with an upcoming OpenSSL release that will no longer support
      sizes outside this window.
    * **BACKWARDS INCOMPATIBLE:** When deserializing asymmetric keys we now
      raise ``ValueError`` rather than ``UnsupportedAlgorithm`` when an
      unsupported cipher is used. This change is to conform with an upcoming
      OpenSSL release that will no longer distinguish between error types.
    * **BACKWARDS INCOMPATIBLE:** We no longer allow loading of finite field
      Diffie-Hellman parameters of less than 512 bits in length. This change is to
      conform with an upcoming OpenSSL release that no longer supports smaller
      sizes. These keys were already wildly insecure and should not have been used
      in any application outside of testing.
    * Updated Windows, macOS, and ``manylinux`` wheels to be compiled with
      OpenSSL 1.1.1i.
    * Python 2 support is deprecated in ``cryptography``. This is the last release
      that will support Python 2.
    * Added the
      :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey.recover_data_from_signature`
      function to
      :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`
      for recovering the signed data from an RSA signature.
    

    .. _v3-2-1:

    3.2.1 - 2020-10-27

    ... (truncated)

    Commits
    • 82b6ce2 correct buffer overflows cause by integer overflow in openssl (#5747)
    • 1ff0d50 re-add Cryptography_HAS_TLSEXT_HOSTNAME and bump for 3.3.1 (#5625)
    • 7e8fff7 Prepare for 3.3 release (#5603)
    • b5278c9 Fixed DH tests for latest CentOS FIPS OpenSSL (#5604)
    • 6693d55 Add support for RSA signature recovery (#5573)
    • 8686d52 Document that PKCS1v1.5 is not constant time (#5600)
    • 1be144a bump cffi minimum version to help out pyopenssl (#5598)
    • 96f2d96 remove legacy debugging code from setup.py (#5597)
    • 2660f93 Document that Firefox doesn't support unencrypted pkcs12 (#5596)
    • a209669 Added tls bindings for new OpenSSL APIs (#5595)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • Conda recipe?

    Conda recipe?

    Hi,

    thank you for providing this package. I'm finding it really useful.

    Would you be willing to provide a conda distribution for it, through @conda-forge for example?

    I could submit a draft recipe but would need a core developer to step up as maintainer.

    Thank you,

    V

    opened by vinisalazar 2
  • Feature request: custom words separator

    Feature request: custom words separator

    Currently, coolname.generate_slug() always uses - as a words separator. It would be nice to allow a user-defined separator.

    Example

    >>> import coolname
    >>> coolname.generate_slug('_')
    competent_earthworm_of_weird_pleasure
    
    opened by khssnv 1
  • Bump cryptography from 2.3 to 3.2 in /requirements

    Bump cryptography from 2.3 to 3.2 in /requirements

    Bumps cryptography from 2.3 to 3.2.

    Changelog

    Sourced from cryptography's changelog.

    3.2 - 2020-10-25

    
    * **SECURITY ISSUE:** Attempted to make RSA PKCS#1v1.5 decryption more constant
      time, to protect against Bleichenbacher vulnerabilities. Due to limitations
      imposed by our API, we cannot completely mitigate this vulnerability and a
      future release will contain a new API which is designed to be resilient to
      these for contexts where it is required. Credit to **Hubert Kario** for
      reporting the issue. *CVE-2020-25659*
    * Support for OpenSSL 1.0.2 has been removed. Users on older version of OpenSSL
      will need to upgrade.
    * Added basic support for PKCS7 signing (including SMIME) via
      :class:`~cryptography.hazmat.primitives.serialization.pkcs7.PKCS7SignatureBuilder`.
    

    .. _v3-1-1:

    3.1.1 - 2020-09-22

    • Updated Windows, macOS, and manylinux wheels to be compiled with OpenSSL 1.1.1h.

    .. _v3-1:

    3.1 - 2020-08-26

    
    * **BACKWARDS INCOMPATIBLE:** Removed support for ``idna`` based
      :term:`U-label` parsing in various X.509 classes. This support was originally
      deprecated in version 2.1 and moved to an extra in 2.5.
    * Deprecated OpenSSL 1.0.2 support. OpenSSL 1.0.2 is no longer supported by
      the OpenSSL project. The next version of ``cryptography`` will drop support
      for it.
    * Deprecated support for Python 3.5. This version sees very little use and will
      be removed in the next release.
    * ``backend`` arguments to functions are no longer required and the
      default backend will automatically be selected if no ``backend`` is provided.
    * Added initial support for parsing certificates from PKCS7 files with
      :func:`~cryptography.hazmat.primitives.serialization.pkcs7.load_pem_pkcs7_certificates`
      and
      :func:`~cryptography.hazmat.primitives.serialization.pkcs7.load_der_pkcs7_certificates`
      .
    * Calling ``update`` or ``update_into`` on
      :class:`~cryptography.hazmat.primitives.ciphers.CipherContext` with ``data``
      longer than 2\ :sup:`31` bytes no longer raises an ``OverflowError``. This
      also resolves the same issue in :doc:`/fernet`.
    

    .. _v3-0:

    3.0 - 2020-07-20 </tr></table>

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump pyyaml from 3.13 to 5.1 in /requirements

    Bump pyyaml from 3.13 to 5.1 in /requirements

    Bumps pyyaml from 3.13 to 5.1.

    Changelog

    Sourced from pyyaml's changelog.

    5.1 (2019-03-13)

    Commits
    • e471e86 Updates for 5.1 release
    • 9141e90 Windows Appveyor build
    • d6cbff6 Skip certain unicode tests when maxunicode not > 0xffff
    • 69103ba Update .travis.yml to use libyaml 0.2.2
    • 91c9435 Squash/merge pull request #105 from nnadeau/patch-1
    • 507a464 Make default_flow_style=False
    • 07c88c6 Allow to turn off sorting keys in Dumper
    • 611ba39 Include license file in the generated wheel package
    • 857dff1 Apply FullLoader/UnsafeLoader changes to lib3
    • 0cedb2a Deprecate/warn usage of yaml.load(input)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • default=generate_slug() in django with same result

    default=generate_slug() in django with same result

    Hi,

    what could be a reason that default=generate_slug() always results in the same slug? This is when using the django admin pages for testing, on a field that is editable (just for convenience) and not unique.

    opened by step21 1
  • Bump cryptography from 38.0.1 to 38.0.3 in /requirements

    Bump cryptography from 38.0.1 to 38.0.3 in /requirements

    Bumps cryptography from 38.0.1 to 38.0.3.

    Changelog

    Sourced from cryptography's changelog.

    38.0.3 - 2022-11-01

    
    * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.0.7,
      which resolves *CVE-2022-3602* and *CVE-2022-3786*.
    

    .. _v38-0-2:

    38.0.2 - 2022-10-11 (YANKED)

    .. attention::

    This release was subsequently yanked from PyPI due to a regression in OpenSSL.
    
    • Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.0.6.

    .. _v38-0-1:

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Feature request: name slugs from deterministic numbers

    Feature request: name slugs from deterministic numbers

    Is it difficult to extend this algorithm to handle nonrandom inputs? E.g. something like

     >> deterministic_slug(4360)
     quirky-thing-easy-memorize
      
     >> deterministic_slug(4360)
     quirky-thing-easy-memorize
    

    If unfeasible -- did you take inspiration for this concept from another project so I can bother them instead?

    opened by asemic-horizon 4
Owner
Alexander Lukanin
Alexander Lukanin
A Random Password Generator made from Python

Things you need Python Step 1 Download the python file from Releases Step 2 Go to the directory where the python file is and run it Step 3 Type the le

Kavindu Nimsara 3 May 30, 2022
Random Number Generator Analysis With Python

Random-Number-Generator-Analysis Governor's Honors Program Project to determine

Jack Prewitt 2 Jan 23, 2022
Prime Path Generator is a prime path generator used to generate prime paths.

Prime Path Generator is a prime path generator used to generate prime paths.

null 1 Nov 6, 2021
ColorController is a Pythonic interface for managing colors by english-language name and various color values.

ColorController.py Table of Contents Encode color data in various formats. 1.1: Create a ColorController object using a familiar, english-language col

Tal Zaken 2 Feb 12, 2022
Python program for Linux users to change any url to any domain name they want.

URLMask Python program for Linux users to change a URL to ANY domain. A program than can take any url and mask it to any domain name you like. E.g. ne

null 2 Jun 20, 2022
Homebase Name Changer for Fortnite: Save the World.

Homebase Name Changer This program allows you to change the Homebase name in Fortnite: Save the World. How to use it? After starting the HomebaseNameC

PRO100KatYT 7 May 21, 2022
A python lib for generate random string and digits and special characters or A combination of them

A python lib for generate random string and digits and special characters or A combination of them

Torham 4 Nov 15, 2022
Python program to do with percentages and chances, random generation.

Chances and Percentages Python program to do with percentages and chances, random generation. What is this? This small program will generate a list wi

n0 3 Jul 15, 2021
Simple Python tool that generates a pseudo-random password with numbers, letters, and special characters in accordance with password policy best practices.

Simple Python tool that generates a pseudo-random password with numbers, letters, and special characters in accordance with password policy best practices.

Joe Helle 7 Mar 25, 2022
Generates a random prnt.sc link and display image.

Generates a random prnt.sc link and display image.

Emirhan 3 Oct 8, 2021
An okayish python script to generate a random Euler circuit with given number of vertices and edges.

Euler-Circuit-Test-Case-Generator An okayish python script to generate a random Euler circuit with given number of vertices and edges. Executing the S

Alen Antony 1 Nov 13, 2021
A simple and easy to use collection of random python functions.

A simple and easy to use collection of random python functions.

Diwan Mohamed Faheer 1 Nov 17, 2021
A simple Python app that generates semi-random chord progressions.

chords-generator A simple Python app that generates semi-random chord progressions.

null 53 Sep 7, 2022
Genart - Generate random art to sell as nfts

Genart - Generate random art to sell as nfts Usage git clone

Will 13 Mar 17, 2022
Generate random german words

Generate random german words / Generiere zufällige deutsche Wörter Getting Started Pip install with pip install zufallsworte Install the library with

Maximilian Freitag 5 Mar 24, 2022
Go through a random file in your favourite open source projects!

Random Source Codes Never be bored again! Staring at your screen and just scrolling the great world wide web? Would you rather read through some code

Mridul Seth 1 Nov 3, 2022
Backman is a random/fixed background image setter for wlroots based compositors

backman Backman is a random/fixed background image setter for wlroots based compositors Dependencies: The program depends on swaybg, python3-toml (or

Hemish 3 Mar 9, 2022
A random cats photos python module

A random cats photos python module

Fayas Noushad 6 Dec 1, 2021
Create password - Generate Random Password with Passphrase

Generate Random Password with Passphrase This is a python code to generate stron

null 1 Jan 18, 2022