cutesy


Namecutesy JSON
Version 1.0b20 PyPI version JSON
download
home_pagehttps://github.com/chasefinch/cutesy
SummaryA linter & formatter for consistent HTML code, or else.
upload_time2025-10-23 14:33:59
maintainerNone
docs_urlNone
authorChase Finch
requires_python>=3.11
licenseNone
keywords cutesy html lint linter format formatter autoformat autoformatter
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Cutesy 🥰

A cute little HTML linter, until y̵ou ma̴k̵e i̴͌ͅt̴̖̀ a̵̤̤͕̰͐̅͘͘n̶̦̣͙̑̌̆̄ǵ̷̗̗̀͝r̷̭̈́͂͘ẙ̶͔̟̞̊̈…̴̢͘

**Cutesy reformats & lints HTML documents**, including HTML templates. It ensures consistent indentation, line breaks, and formatting while automatically fixing most issues.

## First-class support for your favorite frameworks ❤️

- Full support for Django templates 🐍💕
- Sorts classes for TailwindCSS 💖✨
- Works with AlpineJS and HTMX ⚡💘

## Features ✨

- **Auto-fix**: Automatically corrects most formatting issues
- **Configurable**: Extensive configuration options for your project's needs
- **Fast**: Rust-accelerated core for high performance

## Status

![Build Status](https://github.com/chasefinch/cutesy/actions/workflows/build.yml/badge.svg?branch=main) ![Coverage: 91%](https://img.shields.io/badge/coverage-91%25-66dd66.svg?style=flat) [![PyPI - Version](https://img.shields.io/pypi/v/cutesy)](https://pypi.org/project/cutesy/)

## Table of Contents

- [Quick Start](#-quick-start)
- [Installation](#installation)
- [Basic Usage](#basic-usage)
- [Configuration](#configuration)
- [Framework Support](#framework-support)
- [Examples](#examples)
- [Documentation](#documentation)
- [Benefits](#benefits)
- [Badge](#badge)
- [License](#license)
- [Contributing](#contributing)

## 🚀 Quick Start

**Install:**
```bash
pip install cutesy
```

**Format your HTML files:**
```bash
cutesy "*.html" --fix
```

**For Django projects with TailwindCSS:**
```bash
cutesy "templates/**/*.html" --fix --extras=[django,tailwind]
```

## Installation

Cutesy requires **Python 3.11+** and works on Linux, macOS, and Windows.

**Basic Installation:**
```bash
pip install cutesy
```

**For system-wide CLI tool:**
```bash
pipx install cutesy
```

**Development Installation:**
```bash
git clone https://github.com/chasefinch/cutesy.git
cd cutesy
pip install -e .
```

> 📚 **Detailed guide**: See [Installation Documentation](docs/installation.md) for editor integration, pre-commit hooks, and CI/CD setup.

## Basic Usage

### Command Line

**Check files for issues:**
```bash
cutesy "*.html"                    # Check all HTML files
cutesy "templates/**/*.html"       # Check recursively
cutesy --code '<div>test</div>'    # Check code string
```

**Fix issues automatically:**
```bash
cutesy "*.html" --fix              # Fix all issues
cutesy "*.html" --fix --quiet      # Fix quietly
cutesy "*.html" --return-zero      # Don't fail CI on issues
```

### Key Options

| Option | Description | Example |
|--------|-------------|---------|
| `--fix` | Auto-fix issues (recommended) | `cutesy "*.html" --fix` |
| `--extras` | Enable template/framework support | `--extras=[django,tailwind]` |
| `--ignore` | Ignore specific rules | `--ignore=[F1,D5]` |
| `--quiet` | Suppress detailed output | `--quiet` |
| `--check-doctype` | Process non-HTML5 files | `--check-doctype` |

## Configuration

### Configuration Files

Create a `cutesy.toml` file in your project:

```toml
fix = true
extras = ["django", "tailwind"]
indentation_type = "spaces"
line_length = 99
ignore = ["F1"]  # Ignore specific rules
```

**Also supports:**
- `pyproject.toml` (under `[tool.cutesy]`)
- `setup.cfg` (under `[cutesy]`)

### Common Configurations

**Django + TailwindCSS:**
```toml
fix = true
extras = ["django", "tailwind"]
line_length = 120
max_items_per_line = 6
```

> 📚 **Complete guide**: See [Configuration Documentation](docs/configuration.md) for all options and examples.

## Framework Support

### Django Templates

Enable Django template processing:

```bash
cutesy "templates/*.html" --fix --extras=django
```

**Supports:**
- `{% %}` template tags with proper indentation
- `{{ }}` variables
- Template inheritance (`{% extends %}`, `{% block %}`)
- Complex template logic with nested HTML

**Example transformation:**
```html
<!-- Before -->
{% if user.is_authenticated %}
<div class="welcome">
        <h1>Welcome, {{ user.name }}!</h1>
{% endif %}

<!-- After -->
{% if user.is_authenticated %}
    <div class="welcome">
        <h1>Welcome, {{ user.name }}!</h1>
    </div>
{% endif %}
```

### TailwindCSS

Automatic class sorting and organization:

```bash
cutesy "*.html" --fix --extras=tailwind
```

**Features:**
- **Smart sorting**: Groups utility classes logically
- **Responsive prefixes**: Maintains `sm:`, `md:`, `lg:` order
- **Pseudo-classes**: Preserves `hover:`, `focus:`, etc.
- **Custom classes**: Keeps your custom classes at the end

**Example:**
```html
<!-- Before -->
<div class="text-red-500 p-4 bg-white hover:bg-gray-100 md:p-8 rounded-lg">

<!-- After -->
<div class="bg-white hover:bg-gray-100 p-4 md:p-8 rounded-lg text-red-500">
```

### AlpineJS & HTMX

Cutesy works great with attribute-heavy frameworks:

- **Proper indentation** for multi-line attributes
- **Whitespace normalization** inside attributes
- **Consistent formatting** across your components

## Examples

Cutesy ensures that HTML documents contain consistent whitespace, follow best practices, and adhere to common conventions. In `--fix` mode, Cutesy turns this:

```html
    <!doctype html>
<html>
                    <head>
        <title>Cutesy 🥰 demo</title>
    </head>
<body>
            <h1>Hi     there!</h1>


            {% if request.user.is_authenticated %}
                    <p>Cutesy is so happy      when your code is neat.</p>
                            {% endif %}



                <div     class='danger-zone'
                        id="lintTrap"   ></div    >
                    </body>
</html>
```

…into this:

```html
<!doctype html>
<html>
<head>
    <title>Cutesy 🥰 demo</title>
</head>
<body>
    <h1>Hi there!</h1>

    {% if request.user.is_authenticated %}
        <p>Cutesy is so happy when your code is neat.</p>
    {% endif %}

    <div id="lintTrap" class="danger-zone"></div>
</body>
</html>
```

### Real-World Usage

**Django Project:**
```bash
# Format all templates
cutesy "templates/**/*.html" --fix --extras=[django,tailwind]

# Check before committing
cutesy "templates/**/*.html" --quiet
```

**Static Site:**
```bash
# Format with custom config
cutesy "src/**/*.html" --fix --line-length=120

# Format specific files
cutesy "src/components/*.html" --fix --extras=tailwind
```

## Documentation

| Document | Description |
|----------|-------------|
| **[Installation Guide](docs/installation.md)** | Complete installation instructions, editor integration, CI/CD setup |
| **[Configuration Guide](docs/configuration.md)** | All configuration options, file formats, project examples |
| **[Rules Reference](docs/rules.md)** | Complete list of all rules with examples and fixes |
| **[Development Guide](docs/development.md)** | Contributing, testing, development setup, Rust extensions |
| **[Distribution Guide](docs/distribution.md)** | PyPI publishing, Homebrew formula, package management |

## Benefits

- ✅ **Validate AI code output** - Catch inconsistencies in generated HTML
- ✅ **Enforce team standards** - Consistent formatting across all developers
- ✅ **Catch errors early** - Find malformed HTML and template syntax issues
- ✅ **Save time** - No more manual formatting or style discussions
- ✅ **Better code reviews** - Focus on logic, not formatting
- ✅ **Framework integration** - Works with your existing tools and workflows

## Badge

Show off how Cutesy keeps you in line.

[![code style: cutesy](https://img.shields.io/badge/code_style-cutesy_🥰-fd7f9c.svg?style=flat)](https://github.com/chasefinch/cutesy)

```markdown
[![code style: cutesy](https://img.shields.io/badge/code_style-cutesy_🥰-fd7f9c.svg?style=flat)](https://github.com/chasefinch/cutesy)
```

## License

MIT License - see [LICENSE](LICENSE) file for details.

## Contributing

We welcome contributions! Whether it's:

- 🐛 **Bug reports** via [GitHub Issues](https://github.com/chasefinch/cutesy/issues)
- 💡 **Feature requests** via [GitHub Discussions](https://github.com/chasefinch/cutesy/discussions)
- 🔧 **Code contributions** via Pull Requests
- 📖 **Documentation improvements**

See our [Development Guide](docs/development.md) for getting started.

---

**Keep your HTML tidy with Cutesy! 🥰**

or els̴͔e

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/chasefinch/cutesy",
    "name": "cutesy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "Cutesy, HTML, lint, linter, format, formatter, autoformat, autoformatter",
    "author": "Chase Finch",
    "author_email": "chase@finch.email",
    "download_url": "https://files.pythonhosted.org/packages/c7/93/ef453c504bcaa8720c9172655c9386dbda1226097fd81cf9e7b99f2674f1/cutesy-1.0b20.tar.gz",
    "platform": null,
    "description": "# Cutesy \ud83e\udd70\n\nA cute little HTML linter, until y\u0335ou ma\u0334k\u0335e i\u0334\u034c\u0345t\u0334\u0340\u0316 a\u0335\u0358\u0350\u0305\u0358\u0324\u0324\u0355\u0330n\u0336\u0311\u030c\u0306\u0304\u0326\u0323\u0359g\u0337\u035d\u0301\u0300\u0317\u0317r\u0337\u0308\u0341\u0358\u0342\u032dy\u0336\u030a\u030a\u0308\u0354\u031f\u031e\u2026\u0334\u0358\u0322\n\n**Cutesy reformats & lints HTML documents**, including HTML templates. It ensures consistent indentation, line breaks, and formatting while automatically fixing most issues.\n\n## First-class support for your favorite frameworks \u2764\ufe0f\n\n- Full support for Django templates \ud83d\udc0d\ud83d\udc95\n- Sorts classes for TailwindCSS \ud83d\udc96\u2728\n- Works with AlpineJS and HTMX \u26a1\ud83d\udc98\n\n## Features \u2728\n\n- **Auto-fix**: Automatically corrects most formatting issues\n- **Configurable**: Extensive configuration options for your project's needs\n- **Fast**: Rust-accelerated core for high performance\n\n## Status\n\n![Build Status](https://github.com/chasefinch/cutesy/actions/workflows/build.yml/badge.svg?branch=main) ![Coverage: 91%](https://img.shields.io/badge/coverage-91%25-66dd66.svg?style=flat) [![PyPI - Version](https://img.shields.io/pypi/v/cutesy)](https://pypi.org/project/cutesy/)\n\n## Table of Contents\n\n- [Quick Start](#-quick-start)\n- [Installation](#installation)\n- [Basic Usage](#basic-usage)\n- [Configuration](#configuration)\n- [Framework Support](#framework-support)\n- [Examples](#examples)\n- [Documentation](#documentation)\n- [Benefits](#benefits)\n- [Badge](#badge)\n- [License](#license)\n- [Contributing](#contributing)\n\n## \ud83d\ude80 Quick Start\n\n**Install:**\n```bash\npip install cutesy\n```\n\n**Format your HTML files:**\n```bash\ncutesy \"*.html\" --fix\n```\n\n**For Django projects with TailwindCSS:**\n```bash\ncutesy \"templates/**/*.html\" --fix --extras=[django,tailwind]\n```\n\n## Installation\n\nCutesy requires **Python 3.11+** and works on Linux, macOS, and Windows.\n\n**Basic Installation:**\n```bash\npip install cutesy\n```\n\n**For system-wide CLI tool:**\n```bash\npipx install cutesy\n```\n\n**Development Installation:**\n```bash\ngit clone https://github.com/chasefinch/cutesy.git\ncd cutesy\npip install -e .\n```\n\n> \ud83d\udcda **Detailed guide**: See [Installation Documentation](docs/installation.md) for editor integration, pre-commit hooks, and CI/CD setup.\n\n## Basic Usage\n\n### Command Line\n\n**Check files for issues:**\n```bash\ncutesy \"*.html\"                    # Check all HTML files\ncutesy \"templates/**/*.html\"       # Check recursively\ncutesy --code '<div>test</div>'    # Check code string\n```\n\n**Fix issues automatically:**\n```bash\ncutesy \"*.html\" --fix              # Fix all issues\ncutesy \"*.html\" --fix --quiet      # Fix quietly\ncutesy \"*.html\" --return-zero      # Don't fail CI on issues\n```\n\n### Key Options\n\n| Option | Description | Example |\n|--------|-------------|---------|\n| `--fix` | Auto-fix issues (recommended) | `cutesy \"*.html\" --fix` |\n| `--extras` | Enable template/framework support | `--extras=[django,tailwind]` |\n| `--ignore` | Ignore specific rules | `--ignore=[F1,D5]` |\n| `--quiet` | Suppress detailed output | `--quiet` |\n| `--check-doctype` | Process non-HTML5 files | `--check-doctype` |\n\n## Configuration\n\n### Configuration Files\n\nCreate a `cutesy.toml` file in your project:\n\n```toml\nfix = true\nextras = [\"django\", \"tailwind\"]\nindentation_type = \"spaces\"\nline_length = 99\nignore = [\"F1\"]  # Ignore specific rules\n```\n\n**Also supports:**\n- `pyproject.toml` (under `[tool.cutesy]`)\n- `setup.cfg` (under `[cutesy]`)\n\n### Common Configurations\n\n**Django + TailwindCSS:**\n```toml\nfix = true\nextras = [\"django\", \"tailwind\"]\nline_length = 120\nmax_items_per_line = 6\n```\n\n> \ud83d\udcda **Complete guide**: See [Configuration Documentation](docs/configuration.md) for all options and examples.\n\n## Framework Support\n\n### Django Templates\n\nEnable Django template processing:\n\n```bash\ncutesy \"templates/*.html\" --fix --extras=django\n```\n\n**Supports:**\n- `{% %}` template tags with proper indentation\n- `{{ }}` variables\n- Template inheritance (`{% extends %}`, `{% block %}`)\n- Complex template logic with nested HTML\n\n**Example transformation:**\n```html\n<!-- Before -->\n{% if user.is_authenticated %}\n<div class=\"welcome\">\n        <h1>Welcome, {{ user.name }}!</h1>\n{% endif %}\n\n<!-- After -->\n{% if user.is_authenticated %}\n    <div class=\"welcome\">\n        <h1>Welcome, {{ user.name }}!</h1>\n    </div>\n{% endif %}\n```\n\n### TailwindCSS\n\nAutomatic class sorting and organization:\n\n```bash\ncutesy \"*.html\" --fix --extras=tailwind\n```\n\n**Features:**\n- **Smart sorting**: Groups utility classes logically\n- **Responsive prefixes**: Maintains `sm:`, `md:`, `lg:` order\n- **Pseudo-classes**: Preserves `hover:`, `focus:`, etc.\n- **Custom classes**: Keeps your custom classes at the end\n\n**Example:**\n```html\n<!-- Before -->\n<div class=\"text-red-500 p-4 bg-white hover:bg-gray-100 md:p-8 rounded-lg\">\n\n<!-- After -->\n<div class=\"bg-white hover:bg-gray-100 p-4 md:p-8 rounded-lg text-red-500\">\n```\n\n### AlpineJS & HTMX\n\nCutesy works great with attribute-heavy frameworks:\n\n- **Proper indentation** for multi-line attributes\n- **Whitespace normalization** inside attributes\n- **Consistent formatting** across your components\n\n## Examples\n\nCutesy ensures that HTML documents contain consistent whitespace, follow best practices, and adhere to common conventions. In `--fix` mode, Cutesy turns this:\n\n```html\n    <!doctype html>\n<html>\n                    <head>\n        <title>Cutesy \ud83e\udd70 demo</title>\n    </head>\n<body>\n            <h1>Hi     there!</h1>\n\n\n            {% if request.user.is_authenticated %}\n                    <p>Cutesy is so happy      when your code is neat.</p>\n                            {% endif %}\n\n\n\n                <div     class='danger-zone'\n                        id=\"lintTrap\"   ></div    >\n                    </body>\n</html>\n```\n\n\u2026into this:\n\n```html\n<!doctype html>\n<html>\n<head>\n    <title>Cutesy \ud83e\udd70 demo</title>\n</head>\n<body>\n    <h1>Hi there!</h1>\n\n    {% if request.user.is_authenticated %}\n        <p>Cutesy is so happy when your code is neat.</p>\n    {% endif %}\n\n    <div id=\"lintTrap\" class=\"danger-zone\"></div>\n</body>\n</html>\n```\n\n### Real-World Usage\n\n**Django Project:**\n```bash\n# Format all templates\ncutesy \"templates/**/*.html\" --fix --extras=[django,tailwind]\n\n# Check before committing\ncutesy \"templates/**/*.html\" --quiet\n```\n\n**Static Site:**\n```bash\n# Format with custom config\ncutesy \"src/**/*.html\" --fix --line-length=120\n\n# Format specific files\ncutesy \"src/components/*.html\" --fix --extras=tailwind\n```\n\n## Documentation\n\n| Document | Description |\n|----------|-------------|\n| **[Installation Guide](docs/installation.md)** | Complete installation instructions, editor integration, CI/CD setup |\n| **[Configuration Guide](docs/configuration.md)** | All configuration options, file formats, project examples |\n| **[Rules Reference](docs/rules.md)** | Complete list of all rules with examples and fixes |\n| **[Development Guide](docs/development.md)** | Contributing, testing, development setup, Rust extensions |\n| **[Distribution Guide](docs/distribution.md)** | PyPI publishing, Homebrew formula, package management |\n\n## Benefits\n\n- \u2705 **Validate AI code output** - Catch inconsistencies in generated HTML\n- \u2705 **Enforce team standards** - Consistent formatting across all developers\n- \u2705 **Catch errors early** - Find malformed HTML and template syntax issues\n- \u2705 **Save time** - No more manual formatting or style discussions\n- \u2705 **Better code reviews** - Focus on logic, not formatting\n- \u2705 **Framework integration** - Works with your existing tools and workflows\n\n## Badge\n\nShow off how Cutesy keeps you in line.\n\n[![code style: cutesy](https://img.shields.io/badge/code_style-cutesy_\ud83e\udd70-fd7f9c.svg?style=flat)](https://github.com/chasefinch/cutesy)\n\n```markdown\n[![code style: cutesy](https://img.shields.io/badge/code_style-cutesy_\ud83e\udd70-fd7f9c.svg?style=flat)](https://github.com/chasefinch/cutesy)\n```\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Contributing\n\nWe welcome contributions! Whether it's:\n\n- \ud83d\udc1b **Bug reports** via [GitHub Issues](https://github.com/chasefinch/cutesy/issues)\n- \ud83d\udca1 **Feature requests** via [GitHub Discussions](https://github.com/chasefinch/cutesy/discussions)\n- \ud83d\udd27 **Code contributions** via Pull Requests\n- \ud83d\udcd6 **Documentation improvements**\n\nSee our [Development Guide](docs/development.md) for getting started.\n\n---\n\n**Keep your HTML tidy with Cutesy! \ud83e\udd70**\n\nor els\u0334\u0354e\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A linter & formatter for consistent HTML code, or else.",
    "version": "1.0b20",
    "project_urls": {
        "Homepage": "https://github.com/chasefinch/cutesy"
    },
    "split_keywords": [
        "cutesy",
        " html",
        " lint",
        " linter",
        " format",
        " formatter",
        " autoformat",
        " autoformatter"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d6a5507570f35a71c84cbc05aa85179932f79f808e87af21c9017055aa6bbf2e",
                "md5": "12d629ae5fb984dd9524af7c06d81563",
                "sha256": "cf526f29da2142f53481ad084b2a8d3e05c211cf3c8c3f192f191d8547a38f08"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "12d629ae5fb984dd9524af7c06d81563",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 423836,
            "upload_time": "2025-10-23T14:33:34",
            "upload_time_iso_8601": "2025-10-23T14:33:34.715179Z",
            "url": "https://files.pythonhosted.org/packages/d6/a5/507570f35a71c84cbc05aa85179932f79f808e87af21c9017055aa6bbf2e/cutesy-1.0b20-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8d0748efab28dcba6f08958bac496617f5a2187b4f6824a56037f2fdd6e3b1fb",
                "md5": "71cfe825a56f80a7af465eb0c60ebc83",
                "sha256": "376bb5307963e815c0b2aa2d17a2cc26f7c44853fa5a3207906866260e2d8d08"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "71cfe825a56f80a7af465eb0c60ebc83",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 464843,
            "upload_time": "2025-10-23T14:33:36",
            "upload_time_iso_8601": "2025-10-23T14:33:36.473347Z",
            "url": "https://files.pythonhosted.org/packages/8d/07/48efab28dcba6f08958bac496617f5a2187b4f6824a56037f2fdd6e3b1fb/cutesy-1.0b20-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0b42cde7d7cc37d35a464f6ba2824f7477aadb189effdee1005efd405d67dc93",
                "md5": "4e6e5f76becca4cde8654405b76bd15e",
                "sha256": "fdf04d70bbc73454ba95fee4c23d09717c265ff5aef9986ab145c7b5e4206fcb"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4e6e5f76becca4cde8654405b76bd15e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 715423,
            "upload_time": "2025-10-23T14:33:37",
            "upload_time_iso_8601": "2025-10-23T14:33:37.651445Z",
            "url": "https://files.pythonhosted.org/packages/0b/42/cde7d7cc37d35a464f6ba2824f7477aadb189effdee1005efd405d67dc93/cutesy-1.0b20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bd858a83579ebbbae9274a023574d91d8937b6e22ee1347bc4f796cabfb3e1df",
                "md5": "d114c27d0ed6a694a5b635d586c2d5de",
                "sha256": "c9b45ddf9606e44898a2c10847b89f30dc521d038ee63424336a03aadd6c03a4"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "d114c27d0ed6a694a5b635d586c2d5de",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 724047,
            "upload_time": "2025-10-23T14:33:39",
            "upload_time_iso_8601": "2025-10-23T14:33:39.222525Z",
            "url": "https://files.pythonhosted.org/packages/bd/85/8a83579ebbbae9274a023574d91d8937b6e22ee1347bc4f796cabfb3e1df/cutesy-1.0b20-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "786ef318c9e947a08cf6ae7bba10782f7e3eb5b510cb0acb2485827998324579",
                "md5": "ed3c842efb32007d181acfb16cbfa0c9",
                "sha256": "c42e51ba99d7805add89baece4acbc2934df79d56bcd9585a9405b5df9a5c1a2"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "ed3c842efb32007d181acfb16cbfa0c9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 363296,
            "upload_time": "2025-10-23T14:33:40",
            "upload_time_iso_8601": "2025-10-23T14:33:40.382161Z",
            "url": "https://files.pythonhosted.org/packages/78/6e/f318c9e947a08cf6ae7bba10782f7e3eb5b510cb0acb2485827998324579/cutesy-1.0b20-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c75f5124e3eacb748f8c25e32b67e8972782aab901d95cd1c5b1fcf3d645e34a",
                "md5": "2a39948d608e7189cd306187abc41a77",
                "sha256": "9328d1ca1442607a3e395fa8dd4dbbcd6533145c7951b22e1450d65413c2e610"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "2a39948d608e7189cd306187abc41a77",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.11",
            "size": 398142,
            "upload_time": "2025-10-23T14:33:41",
            "upload_time_iso_8601": "2025-10-23T14:33:41.869312Z",
            "url": "https://files.pythonhosted.org/packages/c7/5f/5124e3eacb748f8c25e32b67e8972782aab901d95cd1c5b1fcf3d645e34a/cutesy-1.0b20-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0e934ec5c2c01c6c36f5e9e95da5061e368a5a774c85448d5f3b091276a9e764",
                "md5": "a1a3525691834a74a468a97ac1588604",
                "sha256": "d0690494584b8258751a0efe4c62a03c4c152b2d304cc76945611eaa1d76af72"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp312-cp312-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a1a3525691834a74a468a97ac1588604",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 432674,
            "upload_time": "2025-10-23T14:33:43",
            "upload_time_iso_8601": "2025-10-23T14:33:43.087348Z",
            "url": "https://files.pythonhosted.org/packages/0e/93/4ec5c2c01c6c36f5e9e95da5061e368a5a774c85448d5f3b091276a9e764/cutesy-1.0b20-cp312-cp312-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e722c49df4c728eda22a77425e404d3fe7682075ec49f04f639a929f01149fbc",
                "md5": "ba3acb744844f54b6b26c69d56efab18",
                "sha256": "9cdc5925ff99d78fa55f52d2671b4bb8f50170e2295faac3c621c85840bfb3be"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "ba3acb744844f54b6b26c69d56efab18",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 469018,
            "upload_time": "2025-10-23T14:33:44",
            "upload_time_iso_8601": "2025-10-23T14:33:44.818742Z",
            "url": "https://files.pythonhosted.org/packages/e7/22/c49df4c728eda22a77425e404d3fe7682075ec49f04f639a929f01149fbc/cutesy-1.0b20-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dd5f871512f0bd0d7459897f74f976a5971d6145dd72c20a28ae349fe6f05723",
                "md5": "cc13726b1da4471ae2c17211de0621ef",
                "sha256": "04be1ba6508518f3841b96a05130a09651ff112bd9fa18aaf408ffcd71cf85f8"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cc13726b1da4471ae2c17211de0621ef",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 742300,
            "upload_time": "2025-10-23T14:33:46",
            "upload_time_iso_8601": "2025-10-23T14:33:46.491596Z",
            "url": "https://files.pythonhosted.org/packages/dd/5f/871512f0bd0d7459897f74f976a5971d6145dd72c20a28ae349fe6f05723/cutesy-1.0b20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d32602d961adac294d8c63a03343ad5c8743b8e6b7c1e2e0d2d40872adb676cd",
                "md5": "b7407b96f65e8babb1d00f85505fd139",
                "sha256": "eac62926e7ca76f1ddba950a601c30e642080df0c7b9610fb01fe8ed973cf6c4"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "b7407b96f65e8babb1d00f85505fd139",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 774820,
            "upload_time": "2025-10-23T14:33:47",
            "upload_time_iso_8601": "2025-10-23T14:33:47.947645Z",
            "url": "https://files.pythonhosted.org/packages/d3/26/02d961adac294d8c63a03343ad5c8743b8e6b7c1e2e0d2d40872adb676cd/cutesy-1.0b20-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3d69b55739fa97993a532d5a1416ec6897802bdef1b71abc28f20183739bcd59",
                "md5": "9579c8bf70e7d5cbec256a05204386fd",
                "sha256": "c9ad42ca1a65482d4b781c571eb36df9932910eb604a3bd825a8ad8ad8772959"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "9579c8bf70e7d5cbec256a05204386fd",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 365051,
            "upload_time": "2025-10-23T14:33:49",
            "upload_time_iso_8601": "2025-10-23T14:33:49.541674Z",
            "url": "https://files.pythonhosted.org/packages/3d/69/b55739fa97993a532d5a1416ec6897802bdef1b71abc28f20183739bcd59/cutesy-1.0b20-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9f035aa2f3b87b3d56da79351300cd188507b115f70ebefdc94b6aa90e8ef77c",
                "md5": "c8928ed3232541cf34f1bfa124fadfd0",
                "sha256": "714a497da0df1fcc7222eb2c3e7836a42bb5e025b59d7574100ffe75b03224b6"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c8928ed3232541cf34f1bfa124fadfd0",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.11",
            "size": 399858,
            "upload_time": "2025-10-23T14:33:50",
            "upload_time_iso_8601": "2025-10-23T14:33:50.656736Z",
            "url": "https://files.pythonhosted.org/packages/9f/03/5aa2f3b87b3d56da79351300cd188507b115f70ebefdc94b6aa90e8ef77c/cutesy-1.0b20-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ed15d6b7e4bd0d46dc484f495a2683e269fa56c817f61c0e5a9649d517bf28b7",
                "md5": "dc182205a81ea58cb6e5258bd190073b",
                "sha256": "aba46c07e16adf724d8c28f1f6f2ea9c3b4b15731159fb224630c32f8df83340"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp313-cp313-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "dc182205a81ea58cb6e5258bd190073b",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.11",
            "size": 432507,
            "upload_time": "2025-10-23T14:33:51",
            "upload_time_iso_8601": "2025-10-23T14:33:51.785295Z",
            "url": "https://files.pythonhosted.org/packages/ed/15/d6b7e4bd0d46dc484f495a2683e269fa56c817f61c0e5a9649d517bf28b7/cutesy-1.0b20-cp313-cp313-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e9d72b8e6a71c3f70f6810e3eee6a413352e482ab83dcbf389586f9698120d78",
                "md5": "fb83fd2d63e281f05a15c056ccc97b60",
                "sha256": "80943a741aa0e584daa37bfc532b85a7ca56e30c37dd23c6cebb1e8a6baee747"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "fb83fd2d63e281f05a15c056ccc97b60",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.11",
            "size": 469122,
            "upload_time": "2025-10-23T14:33:53",
            "upload_time_iso_8601": "2025-10-23T14:33:53.242298Z",
            "url": "https://files.pythonhosted.org/packages/e9/d7/2b8e6a71c3f70f6810e3eee6a413352e482ab83dcbf389586f9698120d78/cutesy-1.0b20-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f4f501f6bb6e6c3ea2020244d60a712672f1c217253ecd309c0c62a44b148ea8",
                "md5": "602d21fdad13712375d6cac496a53444",
                "sha256": "f49c3208055e18a421e4893e4ae0471076684dd56d63e056132a3664999b1781"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "602d21fdad13712375d6cac496a53444",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.11",
            "size": 739752,
            "upload_time": "2025-10-23T14:33:54",
            "upload_time_iso_8601": "2025-10-23T14:33:54.583761Z",
            "url": "https://files.pythonhosted.org/packages/f4/f5/01f6bb6e6c3ea2020244d60a712672f1c217253ecd309c0c62a44b148ea8/cutesy-1.0b20-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "755223af3aa129a89fad59bed06ffb33fb808d7694a0e5990258a9b546d2d64b",
                "md5": "53016925a53b8e9570981e5222aec24a",
                "sha256": "0a1b7a3c144e04d7c6c8e40792b50e86ce097f6720102547f4ffddfcf5e26109"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "53016925a53b8e9570981e5222aec24a",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.11",
            "size": 772000,
            "upload_time": "2025-10-23T14:33:55",
            "upload_time_iso_8601": "2025-10-23T14:33:55.789484Z",
            "url": "https://files.pythonhosted.org/packages/75/52/23af3aa129a89fad59bed06ffb33fb808d7694a0e5990258a9b546d2d64b/cutesy-1.0b20-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a9f25fa8db4ce57a50aea2224959597dee2501a30c0980fc0bbd592d148a64eb",
                "md5": "9513016d01662c73560cca9003b1bd12",
                "sha256": "5c17f6286d1750a48b9b327907d224dbe41c9af990826282e018d84d8748ff32"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp313-cp313-win32.whl",
            "has_sig": false,
            "md5_digest": "9513016d01662c73560cca9003b1bd12",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.11",
            "size": 365034,
            "upload_time": "2025-10-23T14:33:56",
            "upload_time_iso_8601": "2025-10-23T14:33:56.996572Z",
            "url": "https://files.pythonhosted.org/packages/a9/f2/5fa8db4ce57a50aea2224959597dee2501a30c0980fc0bbd592d148a64eb/cutesy-1.0b20-cp313-cp313-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5f510cadc7872dc37c9074fc7eefd64bc010a290872596897f52caad02213ec8",
                "md5": "5b680180ccd2a8150157148fb59ea40d",
                "sha256": "12a0f3aadc763fca0cd8b26087fad285e605b8e4304342ef888b143a7fa2c752"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "5b680180ccd2a8150157148fb59ea40d",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.11",
            "size": 399862,
            "upload_time": "2025-10-23T14:33:58",
            "upload_time_iso_8601": "2025-10-23T14:33:58.068504Z",
            "url": "https://files.pythonhosted.org/packages/5f/51/0cadc7872dc37c9074fc7eefd64bc010a290872596897f52caad02213ec8/cutesy-1.0b20-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c793ef453c504bcaa8720c9172655c9386dbda1226097fd81cf9e7b99f2674f1",
                "md5": "4f8f1dac571837cc66b2e7c4c8a1b8ab",
                "sha256": "bf19eb9156a7286327580670c184d780976188cf8e43e89ae33d4946b4badf12"
            },
            "downloads": -1,
            "filename": "cutesy-1.0b20.tar.gz",
            "has_sig": false,
            "md5_digest": "4f8f1dac571837cc66b2e7c4c8a1b8ab",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 84023,
            "upload_time": "2025-10-23T14:33:59",
            "upload_time_iso_8601": "2025-10-23T14:33:59.150423Z",
            "url": "https://files.pythonhosted.org/packages/c7/93/ef453c504bcaa8720c9172655c9386dbda1226097fd81cf9e7b99f2674f1/cutesy-1.0b20.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-23 14:33:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "chasefinch",
    "github_project": "cutesy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "cutesy"
}
        
Elapsed time: 1.53053s