random-slugs is a user-friendly Python package that generates those random word slugs. This package is customizable and allows users to specify the parts of speech, categories of words, and the reproducibility.
- Generate slugs with a specified number of words
- Customize the parts of speech and categories of words used
- Choose the format of the slug (
kebab-case,snake_caseorcamelCase) - Set a random seed for reproducibility
- Handle errors gracefully with custom exceptions
You can install random-slugs using pip:
pip install random-slugsHere is a basic example of how to use the package:
from random_slugs import generate_slug
slug = generate_slug()
print(slug) # E.g. 'quick-brown-fox'You can customize the slug generation by passing an options dictionary to the generate_slug function:
options = {
"parts_of_speech": ["adjectives", "nouns"],
"categories": {"adjectives": ["color"], "nouns": ["animal"]},
"format": "snake",
"seed": 42
}
slug = generate_slug(num_of_words=2, options=options)
print(slug) # E.g. : 'brown_fox'generate_slug
generate_slug(num_of_words: int = 3, options: Options = None) -> strGenerates a random slug.
Parameters:
num_of_words(int): The number of words to include in the slug. Defaults to 3.options(Options): A dictionary of options to customize the slug generation.
Options:
-
parts_of_speech(List[str]): List of parts of speech to use. Must be one of:adjectives,nouns. -
categories(Dict): A dictionary mapping parts of speech to categories of words. E.g.{"adjectives": ["color"], "nouns": ["animal"]}.- Adjective Categories:
colorconditionemotionsizequantity
- Noun Categories:
animalcolorpokemonprofessiontechnologythingtransport
- Adjective Categories:
-
format(str): The format of the slug. Must be one of:kebab,snake,camel. Defaults tokebab. -
seed(int): The random seed value to use for reproducibility.
Returns:
str: The generated slug.
The total number of unique slugs that can be generated is calculated as follows:
from random_slugs import get_total_unique_slugs
total = get_total_unique_slugs()
print(total) # 6254859RandomSlugsError: Base class for all exceptions in the package.RandomSlugConfigError: Exception for configuration errors.
Here is a complete example that includes custom options and error handling:
from random_slugs import generate_slug, RandomSlugConfigError
options = {
"parts_of_speech": ["adjectives", "nouns"],
"categories": {"adjectives": ["size"], "nouns": ["animal"]},
"format": "camel",
"seed": "example_seed"
}
try:
slug = generate_slug(num_of_words=2, options=options)
print(slug) # E.g. "bigCat"
except RandomSlugConfigError as e:
print(f"Configuration error: {e}")
except RandomSlugsError as e:
print(f"Slug generation error: {e}")You can run the test suite using the following command:
pytest testsContributions are welcome! Please open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.