# 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
  [](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.
[](https://github.com/chasefinch/cutesy)
```markdown
[](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  [](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[](https://github.com/chasefinch/cutesy)\n\n```markdown\n[](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"
}