friendly_names


Namefriendly_names JSON
Version 0.1.2 PyPI version JSON
download
home_pageNone
SummaryGenerate friendly, readable names by combining adjectives, nouns and verbs
upload_time2025-01-31 20:27:52
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
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"
}
        
Elapsed time: 1.58065s