Name | friendly_names JSON |
Version |
0.1.2
JSON |
| download |
home_page | None |
Summary | Generate friendly, readable names by combining adjectives, nouns and verbs |
upload_time | 2025-01-31 20:27:52 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | None |
keywords |
friendly
generator
names
readable
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# friendly_names
[![PyPI - Version](https://img.shields.io/pypi/v/friendly_names.svg)](https://pypi.org/project/friendly_names)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/friendly_names.svg)](https://pypi.org/project/friendly_names)
A super simple random friendly name generator that creates readable, hyphenated names like "red-loop-bounty".
-----
## Table of Contents
- [Installation](#installation)
- [Usage](#usage)
- [Development](#development)
- [Release Process](#release-process)
- [License](#license)
## Installation
```console
pip install friendly_names
```
## Usage
```python
import friendly_names
# Generate a friendly name like "red-loop-bounty"
name = friendly_names.generate()
# Customize number of words
name = friendly_names.generate(words=4) # e.g., "happy-blue-running-fox"
# Use different separator
name = friendly_names.generate(separator="_") # e.g., "green_swift_river"
```
## Development
To set up the development environment:
```console
pip install hatch
```
Common development tasks:
```console
# Run tests
hatch run test:test
# Run tests with coverage
hatch run test:coverage
# Run type checking
hatch run types:check
# Check code style
hatch run lint:style
# Format code
hatch run lint:fmt
```
The project uses:
- [Hatch](https://hatch.pypa.io/) for development environment and build management
- [pytest](https://docs.pytest.org/) for testing
- [mypy](https://mypy.readthedocs.io/) for type checking
- [Ruff](https://docs.astral.sh/ruff/) for linting and formatting
- [Black](https://black.readthedocs.io/) style rules (via Ruff)
## Release Process
To release a new version:
1. Update version in `src/friendly_names/__about__.py`
2. Commit the change:
```console
git add src/friendly_names/__about__.py
git commit -m "Bump version to x.y.z"
```
3. Tag the release:
```console
git tag -a vx.y.z -m "Release version x.y.z"
```
4. Push changes and tag:
```console
git push origin master
git push origin vx.y.z
```
The GitHub Actions workflow will automatically build and publish to PyPI when the tag is pushed.
## License
`friendly_names` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.
Raw data
{
"_id": null,
"home_page": null,
"name": "friendly_names",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "friendly, generator, names, readable",
"author": null,
"author_email": "James Kassemi <james@kassemi.org>",
"download_url": "https://files.pythonhosted.org/packages/15/3e/42fba8d103a3d130037e42fc0eaf117fa8e13eefc3040a012f9a3d2ff00d/friendly_names-0.1.2.tar.gz",
"platform": null,
"description": "# friendly_names\n\n[![PyPI - Version](https://img.shields.io/pypi/v/friendly_names.svg)](https://pypi.org/project/friendly_names)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/friendly_names.svg)](https://pypi.org/project/friendly_names)\n\nA super simple random friendly name generator that creates readable, hyphenated names like \"red-loop-bounty\".\n\n-----\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n- [Development](#development)\n- [Release Process](#release-process)\n- [License](#license)\n\n## Installation\n\n```console\npip install friendly_names\n```\n\n## Usage\n\n```python\nimport friendly_names\n\n# Generate a friendly name like \"red-loop-bounty\"\nname = friendly_names.generate()\n\n# Customize number of words\nname = friendly_names.generate(words=4) # e.g., \"happy-blue-running-fox\"\n\n# Use different separator\nname = friendly_names.generate(separator=\"_\") # e.g., \"green_swift_river\"\n```\n\n## Development\n\nTo set up the development environment:\n\n```console\npip install hatch\n```\n\nCommon development tasks:\n\n```console\n# Run tests\nhatch run test:test\n\n# Run tests with coverage\nhatch run test:coverage\n\n# Run type checking\nhatch run types:check\n\n# Check code style\nhatch run lint:style\n\n# Format code\nhatch run lint:fmt\n```\n\nThe project uses:\n- [Hatch](https://hatch.pypa.io/) for development environment and build management\n- [pytest](https://docs.pytest.org/) for testing\n- [mypy](https://mypy.readthedocs.io/) for type checking\n- [Ruff](https://docs.astral.sh/ruff/) for linting and formatting\n- [Black](https://black.readthedocs.io/) style rules (via Ruff)\n\n## Release Process\n\nTo release a new version:\n\n1. Update version in `src/friendly_names/__about__.py`\n2. Commit the change:\n ```console\n git add src/friendly_names/__about__.py\n git commit -m \"Bump version to x.y.z\"\n ```\n3. Tag the release:\n ```console\n git tag -a vx.y.z -m \"Release version x.y.z\"\n ```\n4. Push changes and tag:\n ```console\n git push origin master\n git push origin vx.y.z\n ```\n\nThe GitHub Actions workflow will automatically build and publish to PyPI when the tag is pushed.\n\n## License\n\n`friendly_names` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.\n",
"bugtrack_url": null,
"license": null,
"summary": "Generate friendly, readable names by combining adjectives, nouns and verbs",
"version": "0.1.2",
"project_urls": {
"Documentation": "https://github.com/jkassemi/friendly_names#readme",
"Issues": "https://github.com/jkassemi/friendly_names/issues",
"Source": "https://github.com/jkassemi/friendly_names"
},
"split_keywords": [
"friendly",
" generator",
" names",
" readable"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "14b6e1a1813f1edd8031015efe0f7b263872fc4bc8fa4a9a84d2920d3dc94388",
"md5": "6a5bdd1b943f78ddd2bfb9d5d8df6e6c",
"sha256": "583c4ca341be92bb65dde50230be46363cb8ad1cff3fca6dd2c8f8d4997f85ad"
},
"downloads": -1,
"filename": "friendly_names-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6a5bdd1b943f78ddd2bfb9d5d8df6e6c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 12241,
"upload_time": "2025-01-31T20:27:50",
"upload_time_iso_8601": "2025-01-31T20:27:50.321866Z",
"url": "https://files.pythonhosted.org/packages/14/b6/e1a1813f1edd8031015efe0f7b263872fc4bc8fa4a9a84d2920d3dc94388/friendly_names-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "153e42fba8d103a3d130037e42fc0eaf117fa8e13eefc3040a012f9a3d2ff00d",
"md5": "a1e562cc29b862a2c50eafb5dd32fe81",
"sha256": "52e5286f45de3446e4160733deec8e6121cf4c69c7b9808c1fbf880f47f098dc"
},
"downloads": -1,
"filename": "friendly_names-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "a1e562cc29b862a2c50eafb5dd32fe81",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 102018,
"upload_time": "2025-01-31T20:27:52",
"upload_time_iso_8601": "2025-01-31T20:27:52.984114Z",
"url": "https://files.pythonhosted.org/packages/15/3e/42fba8d103a3d130037e42fc0eaf117fa8e13eefc3040a012f9a3d2ff00d/friendly_names-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-31 20:27:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jkassemi",
"github_project": "friendly_names#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "friendly_names"
}