simple-html


Namesimple-html JSON
Version 3.0.0 PyPI version JSON
download
home_pagehttps://github.com/keithasaurus/simple_html
SummaryTemplate-less HTML rendering in Python
upload_time2025-08-19 23:57:59
maintainerNone
docs_urlNone
authorKeith Philpott
requires_python>=3.9
licenseNone
keywords html type hints
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # simple_html

## Why use it?
- clean syntax
- fully-typed
- speed -- faster even than jinja
- zero dependencies
- escaped by default
- usually renders fewer bytes than templating


## Installation
`pip install simple-html`


## Usage

```python
from simple_html import h1, render

node = h1("Hello World!")

render(node)  
# <h1>Hello World!</h1> 
```

To add attributes to a tag, pass a dictionary as the first argument: 
```python
node = h1({"id": "heading"}, "Hello World!")

render(node)  
# <h1 id="heading">Hello World!</h1> 
```

Here's a fuller-featured example:
```python
from simple_html import render, DOCTYPE_HTML5, html, head, title, body, h1, div, p, br, ul, li

render(
    DOCTYPE_HTML5,
    html(
        head(
            title("A Great Webpage!")
        ),
        body(
            h1({"class": "great header"},
               "Welcome!"),
            div(
                p("This webpage is great for three reasons:"),
                ul(li(f"{s} reason") for s in ["first", "second", "third"]),
            ),
            br,
            "Hope you like it!"
        )
    )
)

```

The above renders to a minified version of the following html:
```html
<!doctype html>
<html>
<head><title>A Great Webpage!</title></head>
<body><h1 class="great header">Welcome!</h1>
<div><p>This webpage is great for three reasons:</p>
    <ul>
        <li>first reason</li>
        <li>second reason</li>
        <li>third reason</li>
    </ul>
</div>
<br/>Hope you like it!
</body>
</html>
```

As you might have noticed, there are several ways to use `Tag`s:
```python
from simple_html import br, div, h1, img, span, render

# raw node renders to empty tag
render(br)
# <br/>

# node with attributes but no children
render(
    img({"src": "/some-image.jpg", "alt": "a great picture"})
)
# <img src="/some-image.jpg" alt="a great picture"/>

# nodes with children and (optional) attributes
render(
    div(
        h1({"class": "neat-class"}, 
        span("cool"),
        br)
    )
)
# <div><h1 class="neat-class"><span>cool</span><br/></h1></div>
```
### Strings and Things
Strings, ints, floats, and Decimals are generally rendered as one would expect expect. For safety, `str`s are 
escaped by default; `SafeString`s can be used to bypass escaping.

```python
from simple_html import br, p, SafeString, render

node = p("Escaped & stuff",
         br,
         SafeString("Not escaped & stuff"))

render(node)  
# <p>Escaped &amp; stuff<br/>Not escaped & stuff</p> 
```

### Attributes

Tag attributes are defined as simple dictionaries -- typically you'll just use strings for both keys and values. Note 
that Tag attributes with `None` as the value will only render the attribute name:
```python
from simple_html import div, render

node = div({"empty-str-attribute": "", 
            "key-only-attr": None})

render(node)
# <div empty-str-attribute="" key-only-attr></div>
```

String attributes are escaped by default -- both keys and values. You can use `SafeString` to bypass, if needed.

```python
from simple_html import div, render, SafeString

render(
    div({"<bad>":"</also bad>"})
)
# <div &amp;lt;bad&amp;gt;="&amp;lt;/also bad&amp;gt;"></div>

render(
    div({SafeString("<bad>"): SafeString("</also bad>")})
)  
# <div <bad>="</also bad>"></div>
```

You can also use `int`, `float`, and `Decimal` instances for attribute values.
```python
from decimal import Decimal
from simple_html import div, render, SafeString

render(
    div({"x": 1, "y": 2.3, "z": Decimal('3.45')})    
)
# <div x="1" y="2.3" z="3.45"></div>
```

### CSS

You can render inline CSS styles with `render_styles`:
```python
from simple_html import div, render, render_styles

styles = render_styles({"min-width": "25px"})

node = div({"style": styles}, "cool")

render(node)
# <div style="min-width:25px;">cool</div>


# ints, floats, and Decimals are legal values
styles = render_styles({"padding": 0, "flex-grow": 0.6})

node = div({"style": styles}, "wow")

render(node)
# <div style="padding:0;flex-grow:0.6;">wow</div>
```

### Collections
You can pass many items as a `Tag`'s children using `*args`, lists or generators:
```python
from typing import Generator
from simple_html import div, render, Node, br, p

div(
    *["neat", br], p("cool")
)
# renders to <div>neat<br/><p>cool</p></div>


# passing the raw list instead of *args 
div(
    ["neat", br],
    p("cool")
)
# renders to <div>neat<br/><p>cool</p></div>


def node_generator() -> Generator[Node, None, None]:
    yield "neat"
    yield br 


div(node_generator(), p("cool"))
# renders to <div>neat<br/><p>cool</p></div>
```

#### Custom Tags

For convenience, most common tags are provided, but you can also create your own:

```python
from simple_html import Tag, render

custom_elem = Tag("custom-elem")

# works the same as any other tag
node = custom_elem(
    {"id": "some-custom-elem-id"},
    "Wow"
)

render(node)
# <custom-elem id="some-custom-elem-id">Wow</custom-elem>
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/keithasaurus/simple_html",
    "name": "simple-html",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "html, type hints",
    "author": "Keith Philpott",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/bd/88/9471556e8c8e79608eec20075957462626730b63b14d24f043212daf898f/simple_html-3.0.0.tar.gz",
    "platform": null,
    "description": "# simple_html\n\n## Why use it?\n- clean syntax\n- fully-typed\n- speed -- faster even than jinja\n- zero dependencies\n- escaped by default\n- usually renders fewer bytes than templating\n\n\n## Installation\n`pip install simple-html`\n\n\n## Usage\n\n```python\nfrom simple_html import h1, render\n\nnode = h1(\"Hello World!\")\n\nrender(node)  \n# <h1>Hello World!</h1> \n```\n\nTo add attributes to a tag, pass a dictionary as the first argument: \n```python\nnode = h1({\"id\": \"heading\"}, \"Hello World!\")\n\nrender(node)  \n# <h1 id=\"heading\">Hello World!</h1> \n```\n\nHere's a fuller-featured example:\n```python\nfrom simple_html import render, DOCTYPE_HTML5, html, head, title, body, h1, div, p, br, ul, li\n\nrender(\n    DOCTYPE_HTML5,\n    html(\n        head(\n            title(\"A Great Webpage!\")\n        ),\n        body(\n            h1({\"class\": \"great header\"},\n               \"Welcome!\"),\n            div(\n                p(\"This webpage is great for three reasons:\"),\n                ul(li(f\"{s} reason\") for s in [\"first\", \"second\", \"third\"]),\n            ),\n            br,\n            \"Hope you like it!\"\n        )\n    )\n)\n\n```\n\nThe above renders to a minified version of the following html:\n```html\n<!doctype html>\n<html>\n<head><title>A Great Webpage!</title></head>\n<body><h1 class=\"great header\">Welcome!</h1>\n<div><p>This webpage is great for three reasons:</p>\n    <ul>\n        <li>first reason</li>\n        <li>second reason</li>\n        <li>third reason</li>\n    </ul>\n</div>\n<br/>Hope you like it!\n</body>\n</html>\n```\n\nAs you might have noticed, there are several ways to use `Tag`s:\n```python\nfrom simple_html import br, div, h1, img, span, render\n\n# raw node renders to empty tag\nrender(br)\n# <br/>\n\n# node with attributes but no children\nrender(\n    img({\"src\": \"/some-image.jpg\", \"alt\": \"a great picture\"})\n)\n# <img src=\"/some-image.jpg\" alt=\"a great picture\"/>\n\n# nodes with children and (optional) attributes\nrender(\n    div(\n        h1({\"class\": \"neat-class\"}, \n        span(\"cool\"),\n        br)\n    )\n)\n# <div><h1 class=\"neat-class\"><span>cool</span><br/></h1></div>\n```\n### Strings and Things\nStrings, ints, floats, and Decimals are generally rendered as one would expect expect. For safety, `str`s are \nescaped by default; `SafeString`s can be used to bypass escaping.\n\n```python\nfrom simple_html import br, p, SafeString, render\n\nnode = p(\"Escaped & stuff\",\n         br,\n         SafeString(\"Not escaped & stuff\"))\n\nrender(node)  \n# <p>Escaped &amp; stuff<br/>Not escaped & stuff</p> \n```\n\n### Attributes\n\nTag attributes are defined as simple dictionaries -- typically you'll just use strings for both keys and values. Note \nthat Tag attributes with `None` as the value will only render the attribute name:\n```python\nfrom simple_html import div, render\n\nnode = div({\"empty-str-attribute\": \"\", \n            \"key-only-attr\": None})\n\nrender(node)\n# <div empty-str-attribute=\"\" key-only-attr></div>\n```\n\nString attributes are escaped by default -- both keys and values. You can use `SafeString` to bypass, if needed.\n\n```python\nfrom simple_html import div, render, SafeString\n\nrender(\n    div({\"<bad>\":\"</also bad>\"})\n)\n# <div &amp;lt;bad&amp;gt;=\"&amp;lt;/also bad&amp;gt;\"></div>\n\nrender(\n    div({SafeString(\"<bad>\"): SafeString(\"</also bad>\")})\n)  \n# <div <bad>=\"</also bad>\"></div>\n```\n\nYou can also use `int`, `float`, and `Decimal` instances for attribute values.\n```python\nfrom decimal import Decimal\nfrom simple_html import div, render, SafeString\n\nrender(\n    div({\"x\": 1, \"y\": 2.3, \"z\": Decimal('3.45')})    \n)\n# <div x=\"1\" y=\"2.3\" z=\"3.45\"></div>\n```\n\n### CSS\n\nYou can render inline CSS styles with `render_styles`:\n```python\nfrom simple_html import div, render, render_styles\n\nstyles = render_styles({\"min-width\": \"25px\"})\n\nnode = div({\"style\": styles}, \"cool\")\n\nrender(node)\n# <div style=\"min-width:25px;\">cool</div>\n\n\n# ints, floats, and Decimals are legal values\nstyles = render_styles({\"padding\": 0, \"flex-grow\": 0.6})\n\nnode = div({\"style\": styles}, \"wow\")\n\nrender(node)\n# <div style=\"padding:0;flex-grow:0.6;\">wow</div>\n```\n\n### Collections\nYou can pass many items as a `Tag`'s children using `*args`, lists or generators:\n```python\nfrom typing import Generator\nfrom simple_html import div, render, Node, br, p\n\ndiv(\n    *[\"neat\", br], p(\"cool\")\n)\n# renders to <div>neat<br/><p>cool</p></div>\n\n\n# passing the raw list instead of *args \ndiv(\n    [\"neat\", br],\n    p(\"cool\")\n)\n# renders to <div>neat<br/><p>cool</p></div>\n\n\ndef node_generator() -> Generator[Node, None, None]:\n    yield \"neat\"\n    yield br \n\n\ndiv(node_generator(), p(\"cool\"))\n# renders to <div>neat<br/><p>cool</p></div>\n```\n\n#### Custom Tags\n\nFor convenience, most common tags are provided, but you can also create your own:\n\n```python\nfrom simple_html import Tag, render\n\ncustom_elem = Tag(\"custom-elem\")\n\n# works the same as any other tag\nnode = custom_elem(\n    {\"id\": \"some-custom-elem-id\"},\n    \"Wow\"\n)\n\nrender(node)\n# <custom-elem id=\"some-custom-elem-id\">Wow</custom-elem>\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Template-less HTML rendering in Python",
    "version": "3.0.0",
    "project_urls": {
        "Homepage": "https://github.com/keithasaurus/simple_html"
    },
    "split_keywords": [
        "html",
        " type hints"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dba3ebc66ad6e0d7e3fd773bd6ab2b8c38517245425be2ce51dfc8c7027195a4",
                "md5": "a2868a566777c9ff90f2dd7c10b1fb03",
                "sha256": "8bde7c28208f5587f48ba4b973a0f7ddd4774527d26099a71da9292b9475925f"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a2868a566777c9ff90f2dd7c10b1fb03",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 69821,
            "upload_time": "2025-08-19T23:57:10",
            "upload_time_iso_8601": "2025-08-19T23:57:10.075218Z",
            "url": "https://files.pythonhosted.org/packages/db/a3/ebc66ad6e0d7e3fd773bd6ab2b8c38517245425be2ce51dfc8c7027195a4/simple_html-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c681328b56f7b337f9a000fe16e2125a12056ce68014bf9bfbf79fde7f92e753",
                "md5": "90ea3c0f4d44fba686cb2b6b575aac81",
                "sha256": "91c8238bda646e84492f1aca2041fc435ae5ba6e8ec992c67d4c54cc048091ea"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "90ea3c0f4d44fba686cb2b6b575aac81",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 67391,
            "upload_time": "2025-08-19T23:57:11",
            "upload_time_iso_8601": "2025-08-19T23:57:11.424047Z",
            "url": "https://files.pythonhosted.org/packages/c6/81/328b56f7b337f9a000fe16e2125a12056ce68014bf9bfbf79fde7f92e753/simple_html-3.0.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "931eb1c0d3e07e170010fc40310456ae0cf8abebf37b7e69fc1be6daf88fa9ed",
                "md5": "a2581a32efb86f60200d9a15e5c7bd25",
                "sha256": "5bdf56e46060d73d5a23bd301094ad93ab2c6dc5998aaf47af0d3f6ccc80bf4e"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "a2581a32efb86f60200d9a15e5c7bd25",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 124284,
            "upload_time": "2025-08-19T23:57:12",
            "upload_time_iso_8601": "2025-08-19T23:57:12.784954Z",
            "url": "https://files.pythonhosted.org/packages/93/1e/b1c0d3e07e170010fc40310456ae0cf8abebf37b7e69fc1be6daf88fa9ed/simple_html-3.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b44c154e27802884dbde0c9d9a11a788ce3112be1c57db3ef91b659b7ae70d8f",
                "md5": "099ca59a210bd2dcd25b7b31b49a7eed",
                "sha256": "8c8f57c7d3c50e92bf6396fa576e7c0d35a0b7b837cc693d033ad2cec13c3f8b"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "099ca59a210bd2dcd25b7b31b49a7eed",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 128489,
            "upload_time": "2025-08-19T23:57:14",
            "upload_time_iso_8601": "2025-08-19T23:57:14.295067Z",
            "url": "https://files.pythonhosted.org/packages/b4/4c/154e27802884dbde0c9d9a11a788ce3112be1c57db3ef91b659b7ae70d8f/simple_html-3.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3e4dbe6af85a033e45d711be04f41a8078c97856e331a5158a4b6bed63c3091a",
                "md5": "e15e9f197cc0e0d773c230ab3f27fcd0",
                "sha256": "0c0eeddf11218147ce43ea5840c363018b32208848f588dba865e5b4ee47de98"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp310-cp310-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e15e9f197cc0e0d773c230ab3f27fcd0",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 126136,
            "upload_time": "2025-08-19T23:57:15",
            "upload_time_iso_8601": "2025-08-19T23:57:15.480878Z",
            "url": "https://files.pythonhosted.org/packages/3e/4d/be6af85a033e45d711be04f41a8078c97856e331a5158a4b6bed63c3091a/simple_html-3.0.0-cp310-cp310-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d4192eea7de7004419b548fa5bf70ffdd772d86dc04514f3b4a65b6eef394fff",
                "md5": "f568d88a9a1c817c02d50f6a987833d6",
                "sha256": "3548504879ad7612d9417ff0af8b677502f32734c9be8bfdcb8ac9a50e93a77c"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f568d88a9a1c817c02d50f6a987833d6",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 129871,
            "upload_time": "2025-08-19T23:57:16",
            "upload_time_iso_8601": "2025-08-19T23:57:16.611426Z",
            "url": "https://files.pythonhosted.org/packages/d4/19/2eea7de7004419b548fa5bf70ffdd772d86dc04514f3b4a65b6eef394fff/simple_html-3.0.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8e91b42cbc1ed7c58f2ee710ad3deba11cffdf33deea15e424beaa29fae2b451",
                "md5": "1b6c59c3bb1f2ac8ab802c70af1b56cd",
                "sha256": "a0c9dbf741259dbc0f2c98b0e6064ed4faffd504aef1adb24875521b6c13b2db"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "1b6c59c3bb1f2ac8ab802c70af1b56cd",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 42750,
            "upload_time": "2025-08-19T23:57:18",
            "upload_time_iso_8601": "2025-08-19T23:57:18.037514Z",
            "url": "https://files.pythonhosted.org/packages/8e/91/b42cbc1ed7c58f2ee710ad3deba11cffdf33deea15e424beaa29fae2b451/simple_html-3.0.0-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c62dbe3e0e17daa75dcefb159794bd7bd0bb5650f2a2640a6a184be11aa47a79",
                "md5": "1267ddaffd23d209c35f98e3ab011d2f",
                "sha256": "dbfba8465c064b8c7e55427fca4f2ae45f79f81ce4ad85b848b170e04a52f06f"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "1267ddaffd23d209c35f98e3ab011d2f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 45260,
            "upload_time": "2025-08-19T23:57:19",
            "upload_time_iso_8601": "2025-08-19T23:57:19.443921Z",
            "url": "https://files.pythonhosted.org/packages/c6/2d/be3e0e17daa75dcefb159794bd7bd0bb5650f2a2640a6a184be11aa47a79/simple_html-3.0.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "efef8c9ca94bcc0f6017a3df44ff7ada17a39d4d8e51ceef9fcfe6485541483b",
                "md5": "d83980e04b3a2666f9b73e854226e592",
                "sha256": "bd080f50d310b6750e26385de6681f08d138035ca892566751807d8df5490bae"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "d83980e04b3a2666f9b73e854226e592",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 69132,
            "upload_time": "2025-08-19T23:57:20",
            "upload_time_iso_8601": "2025-08-19T23:57:20.749580Z",
            "url": "https://files.pythonhosted.org/packages/ef/ef/8c9ca94bcc0f6017a3df44ff7ada17a39d4d8e51ceef9fcfe6485541483b/simple_html-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e59c908ba2b6a815d779624f98dd60b07c58efe5641a87f8da0b9d1bd66f642e",
                "md5": "fc9c25f774c469e3bdb3dcfbfb7c5d5d",
                "sha256": "1fbdbe7b55cb4f8c9fb1dde2dd14475762c6dd5f258e82d21209e0936f826de5"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "fc9c25f774c469e3bdb3dcfbfb7c5d5d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 66832,
            "upload_time": "2025-08-19T23:57:21",
            "upload_time_iso_8601": "2025-08-19T23:57:21.927843Z",
            "url": "https://files.pythonhosted.org/packages/e5/9c/908ba2b6a815d779624f98dd60b07c58efe5641a87f8da0b9d1bd66f642e/simple_html-3.0.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "52a8930fc0850ae584ef0d1d2d8d5adea142829dc5420d1c216b5cccf807172a",
                "md5": "6c4a8b83cc959bba709dbb344b6bbcce",
                "sha256": "1d1a1ffcfbdd62f44a756854c1b96af5befa97a5c5523971776375f1bf9a1958"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "6c4a8b83cc959bba709dbb344b6bbcce",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 126844,
            "upload_time": "2025-08-19T23:57:23",
            "upload_time_iso_8601": "2025-08-19T23:57:23.427357Z",
            "url": "https://files.pythonhosted.org/packages/52/a8/930fc0850ae584ef0d1d2d8d5adea142829dc5420d1c216b5cccf807172a/simple_html-3.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a15bdc726e9483344f336c7d9bf57c2d16b9eed5ccae913e54ed27cddb120c72",
                "md5": "2de3ccdcca6cab457fd15f90925fdf2b",
                "sha256": "0f147001a39053e7c651e36db7a2c30effcad5f7dd22b8e2578b614a13949999"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2de3ccdcca6cab457fd15f90925fdf2b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 130115,
            "upload_time": "2025-08-19T23:57:24",
            "upload_time_iso_8601": "2025-08-19T23:57:24.923260Z",
            "url": "https://files.pythonhosted.org/packages/a1/5b/dc726e9483344f336c7d9bf57c2d16b9eed5ccae913e54ed27cddb120c72/simple_html-3.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f6199366bd420f9fbe4b76295cd50f5103fd90221e3d250d2edde854183cb83d",
                "md5": "cb088d609dda45c96f99a50444ad0fda",
                "sha256": "ceb1d70b2f751e6ab9d547e19758ab4f0b103bdf3345f2b5039667d4da5ca26b"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp311-cp311-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "cb088d609dda45c96f99a50444ad0fda",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 128589,
            "upload_time": "2025-08-19T23:57:26",
            "upload_time_iso_8601": "2025-08-19T23:57:26.369604Z",
            "url": "https://files.pythonhosted.org/packages/f6/19/9366bd420f9fbe4b76295cd50f5103fd90221e3d250d2edde854183cb83d/simple_html-3.0.0-cp311-cp311-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f2243b473ca7fcec86f4d8034e9345f1770446579979f3b9a0c060ac0e0a4b62",
                "md5": "8913aa229bc0946bbb590d57a48d6c24",
                "sha256": "4bb09fa06e24b4e38ae56d65a56f19601d19be17895895cf291d596d8c677f49"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8913aa229bc0946bbb590d57a48d6c24",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 131678,
            "upload_time": "2025-08-19T23:57:27",
            "upload_time_iso_8601": "2025-08-19T23:57:27.774141Z",
            "url": "https://files.pythonhosted.org/packages/f2/24/3b473ca7fcec86f4d8034e9345f1770446579979f3b9a0c060ac0e0a4b62/simple_html-3.0.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "59cd1f33897aa993546ba1cf06bd9bfa64c9cf4f3546b0910d3699e923e05243",
                "md5": "0b60209bf8e69ad41dfd1d7bdcfc03ad",
                "sha256": "14da2c4c630ae660dc1e3529cbdef19eeeebc2f354e824ec8f0ad5d7f72a3664"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "0b60209bf8e69ad41dfd1d7bdcfc03ad",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 42515,
            "upload_time": "2025-08-19T23:57:28",
            "upload_time_iso_8601": "2025-08-19T23:57:28.862629Z",
            "url": "https://files.pythonhosted.org/packages/59/cd/1f33897aa993546ba1cf06bd9bfa64c9cf4f3546b0910d3699e923e05243/simple_html-3.0.0-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "455cdfc293fbc704cd99a4f05d6db2ee76519f5268f4fc57f3ad5f92bcaaa629",
                "md5": "560a63512c4918d3ba0b899dd855544d",
                "sha256": "cadc745605c1b199dc89674a9fd1920d5ab752024570761a0626a277dbd92b6a"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "560a63512c4918d3ba0b899dd855544d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 45130,
            "upload_time": "2025-08-19T23:57:29",
            "upload_time_iso_8601": "2025-08-19T23:57:29.909404Z",
            "url": "https://files.pythonhosted.org/packages/45/5c/dfc293fbc704cd99a4f05d6db2ee76519f5268f4fc57f3ad5f92bcaaa629/simple_html-3.0.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c44e54392ae13bea34992ce222ac614ef93f4cce7ed95dd9b2d8c78fe2528eca",
                "md5": "8c9fd620f6492ff5b85a38051bfe4cad",
                "sha256": "68a7f40e58ae4cf9476c18adef7812a11fc704f62e235ac1eb74b33287ca4f04"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8c9fd620f6492ff5b85a38051bfe4cad",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 73237,
            "upload_time": "2025-08-19T23:57:31",
            "upload_time_iso_8601": "2025-08-19T23:57:31.024100Z",
            "url": "https://files.pythonhosted.org/packages/c4/4e/54392ae13bea34992ce222ac614ef93f4cce7ed95dd9b2d8c78fe2528eca/simple_html-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9e7641983f0f351fa99c85d24da42f144d33e6bd019fbd72efe349fbf7fdf5a0",
                "md5": "c04a806bd9e0f9ef80b96859855fa67b",
                "sha256": "2b5e00dbdff7a7d558e6a4d4e99187f7a15e3a398fb1bea2590732287e5a47af"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "c04a806bd9e0f9ef80b96859855fa67b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 70366,
            "upload_time": "2025-08-19T23:57:32",
            "upload_time_iso_8601": "2025-08-19T23:57:32.021851Z",
            "url": "https://files.pythonhosted.org/packages/9e/76/41983f0f351fa99c85d24da42f144d33e6bd019fbd72efe349fbf7fdf5a0/simple_html-3.0.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7c0b7a91d5d51ca92a7ade47d52f382c168da766240f4e34fd8e7fb3baf6685b",
                "md5": "3cefba69af4b7d5fdf4bad51bcae3bd5",
                "sha256": "37ce7dc4f12094697c19d2061d4997e22749759adcc2d11d3316795af4312f23"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "3cefba69af4b7d5fdf4bad51bcae3bd5",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 128231,
            "upload_time": "2025-08-19T23:57:33",
            "upload_time_iso_8601": "2025-08-19T23:57:33.096097Z",
            "url": "https://files.pythonhosted.org/packages/7c/0b/7a91d5d51ca92a7ade47d52f382c168da766240f4e34fd8e7fb3baf6685b/simple_html-3.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "50d33a71dc0facf53ce1c2ca143fd0128095465f06bcee8a30dff2bf06f80e50",
                "md5": "bbd9899a07f96e51d27764d62900a4e1",
                "sha256": "09b99c465d76fac2c085b361b1a9ff796d3688bc0a9a9906b08d0b611e74eda4"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "bbd9899a07f96e51d27764d62900a4e1",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 132166,
            "upload_time": "2025-08-19T23:57:34",
            "upload_time_iso_8601": "2025-08-19T23:57:34.191680Z",
            "url": "https://files.pythonhosted.org/packages/50/d3/3a71dc0facf53ce1c2ca143fd0128095465f06bcee8a30dff2bf06f80e50/simple_html-3.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "18af0e8a4a7877d547eb64b36dd20252bb0684035d65ef1c78c5fb91e4c91508",
                "md5": "f01f6d026f2e3c1dc89a98989ed43df2",
                "sha256": "07fe1ddbdfc5220da8d119440b4e45c3c39934ae156782414c560f7221b08eda"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp312-cp312-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "f01f6d026f2e3c1dc89a98989ed43df2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 129615,
            "upload_time": "2025-08-19T23:57:35",
            "upload_time_iso_8601": "2025-08-19T23:57:35.659677Z",
            "url": "https://files.pythonhosted.org/packages/18/af/0e8a4a7877d547eb64b36dd20252bb0684035d65ef1c78c5fb91e4c91508/simple_html-3.0.0-cp312-cp312-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1cfb819919ad374086c7de72b3f6d2cdca560cf99fd3e17371f0a82431eec3e4",
                "md5": "1705679ae60a6c320f17295b24841a67",
                "sha256": "fee3148d2cb321488ea77a972a5d74879e5968f02cc879eede9f3505518b7abd"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1705679ae60a6c320f17295b24841a67",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 131619,
            "upload_time": "2025-08-19T23:57:36",
            "upload_time_iso_8601": "2025-08-19T23:57:36.784706Z",
            "url": "https://files.pythonhosted.org/packages/1c/fb/819919ad374086c7de72b3f6d2cdca560cf99fd3e17371f0a82431eec3e4/simple_html-3.0.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a97f3835bd2eb743af3fdce5b6e811aa55950610cdc08220ee652b00d3fb445b",
                "md5": "7030b0666a69d518408fc5dedd474a38",
                "sha256": "8586c4152032491c459b5bd9a76c0e8ffbf00c984bb7d79173ec730e0c8a3ff1"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "7030b0666a69d518408fc5dedd474a38",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 43626,
            "upload_time": "2025-08-19T23:57:37",
            "upload_time_iso_8601": "2025-08-19T23:57:37.917460Z",
            "url": "https://files.pythonhosted.org/packages/a9/7f/3835bd2eb743af3fdce5b6e811aa55950610cdc08220ee652b00d3fb445b/simple_html-3.0.0-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "20b76a8eb73646742190742c0ace45493a78e1b0c3a7c14d1f6c69771c9f3308",
                "md5": "adfe9d1dc8aa894e636a50f36b6db004",
                "sha256": "b4553f9e39fd92cf00c39ce1778571882fd7a775abb9f6adee9fed54f9ea3a3f"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "adfe9d1dc8aa894e636a50f36b6db004",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 45755,
            "upload_time": "2025-08-19T23:57:39",
            "upload_time_iso_8601": "2025-08-19T23:57:39.237784Z",
            "url": "https://files.pythonhosted.org/packages/20/b7/6a8eb73646742190742c0ace45493a78e1b0c3a7c14d1f6c69771c9f3308/simple_html-3.0.0-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "707c721b1d8847b72cd3ea17ef6befcf98a1ff984c07683ccc5c66ecdcbfa180",
                "md5": "48ede0ff56677b8f2f10da6836cbe437",
                "sha256": "17aab3f62a746f167ff2e358c7ae5605ec0ccf7a881dec3020c22e432086dc06"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "48ede0ff56677b8f2f10da6836cbe437",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 73090,
            "upload_time": "2025-08-19T23:57:40",
            "upload_time_iso_8601": "2025-08-19T23:57:40.261770Z",
            "url": "https://files.pythonhosted.org/packages/70/7c/721b1d8847b72cd3ea17ef6befcf98a1ff984c07683ccc5c66ecdcbfa180/simple_html-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6aee095772ac9ed09344b6990b7191a905df81d1dec7930866b30d455df1ea10",
                "md5": "05e7dca771d0705a283f808064cd5827",
                "sha256": "087450ceaa8450400093f1e386abf30552436eb8543cc2698be1e9c763edf073"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "05e7dca771d0705a283f808064cd5827",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 70244,
            "upload_time": "2025-08-19T23:57:41",
            "upload_time_iso_8601": "2025-08-19T23:57:41.324653Z",
            "url": "https://files.pythonhosted.org/packages/6a/ee/095772ac9ed09344b6990b7191a905df81d1dec7930866b30d455df1ea10/simple_html-3.0.0-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1075691ac175e689a681cfe0b480e824abf5b0bbd2c909596e10ec69130c9f05",
                "md5": "e883bbf59f013f17c1d37fba373ce475",
                "sha256": "0803872d770370fdd7ebc759c2775c85b5a8756fba2524a335455a57a9103dc6"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e883bbf59f013f17c1d37fba373ce475",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 126881,
            "upload_time": "2025-08-19T23:57:42",
            "upload_time_iso_8601": "2025-08-19T23:57:42.725242Z",
            "url": "https://files.pythonhosted.org/packages/10/75/691ac175e689a681cfe0b480e824abf5b0bbd2c909596e10ec69130c9f05/simple_html-3.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2563d4138189cfc39b6104643d80dfc903369c3b6ec07db3dc48065b0199afa8",
                "md5": "b2ffd7f539ef9d1fba2d0dc7963c0f63",
                "sha256": "0bac2286a99293a6a0efa89816eb8073b3f9d0d295960e7a7a98d723cf9d7eb3"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b2ffd7f539ef9d1fba2d0dc7963c0f63",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 130974,
            "upload_time": "2025-08-19T23:57:43",
            "upload_time_iso_8601": "2025-08-19T23:57:43.838487Z",
            "url": "https://files.pythonhosted.org/packages/25/63/d4138189cfc39b6104643d80dfc903369c3b6ec07db3dc48065b0199afa8/simple_html-3.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0a2b7c07a753628fc01ec22b296ee24b18c181f3ea0767ce4615d32e7e528054",
                "md5": "f03a00a8bd8297f58435e04258732c86",
                "sha256": "d7d9479e9360b4e2f6b65bb5dbf005c0392dc9ca3a2402b2af935628a88a4119"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp313-cp313-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "f03a00a8bd8297f58435e04258732c86",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 128265,
            "upload_time": "2025-08-19T23:57:45",
            "upload_time_iso_8601": "2025-08-19T23:57:45.047293Z",
            "url": "https://files.pythonhosted.org/packages/0a/2b/7c07a753628fc01ec22b296ee24b18c181f3ea0767ce4615d32e7e528054/simple_html-3.0.0-cp313-cp313-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0e1a46a88153d7be3139f0d21ebd2f9afa510acf119050088a16a6d292b96213",
                "md5": "86580cb76ee009b1011ac5758e92ee11",
                "sha256": "2ac91035d68c5da1b38dabb303ff573b7b33cb76632ab88098fc4550617b36fe"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp313-cp313-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "86580cb76ee009b1011ac5758e92ee11",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 130353,
            "upload_time": "2025-08-19T23:57:46",
            "upload_time_iso_8601": "2025-08-19T23:57:46.286592Z",
            "url": "https://files.pythonhosted.org/packages/0e/1a/46a88153d7be3139f0d21ebd2f9afa510acf119050088a16a6d292b96213/simple_html-3.0.0-cp313-cp313-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "732723d01bb5b21344130c42093dcd2b890ce536a9fa87317a62a52a2931e813",
                "md5": "15a076ec08e8817627074f1c0742689a",
                "sha256": "11702f416e4861a4e69798d267b8620291968ad0a665dff2795a788e80240f7a"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp313-cp313-win32.whl",
            "has_sig": false,
            "md5_digest": "15a076ec08e8817627074f1c0742689a",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 43392,
            "upload_time": "2025-08-19T23:57:47",
            "upload_time_iso_8601": "2025-08-19T23:57:47.405094Z",
            "url": "https://files.pythonhosted.org/packages/73/27/23d01bb5b21344130c42093dcd2b890ce536a9fa87317a62a52a2931e813/simple_html-3.0.0-cp313-cp313-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "79479369f6dff7ff33fb67896e5d5f4896c2807cc23915be19dc31f52c24586d",
                "md5": "a42bdb1516940dc9fc67b48f5f92f0ef",
                "sha256": "a0c087a6d6c46607384798efcf9bde1ffae63d8fee67dbd2523685de24131fae"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a42bdb1516940dc9fc67b48f5f92f0ef",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 45670,
            "upload_time": "2025-08-19T23:57:48",
            "upload_time_iso_8601": "2025-08-19T23:57:48.515495Z",
            "url": "https://files.pythonhosted.org/packages/79/47/9369f6dff7ff33fb67896e5d5f4896c2807cc23915be19dc31f52c24586d/simple_html-3.0.0-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9a467a12f0b0cee7aab1307269138afdd127d0004b95212f675d103f0144a195",
                "md5": "67ef395b0c7b2871d4f4f6f6a25ce407",
                "sha256": "bfa2d327688affb470a4a5cf430de2122510d71c93efbdf888eaa8781b67b641"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "67ef395b0c7b2871d4f4f6f6a25ce407",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 69799,
            "upload_time": "2025-08-19T23:57:49",
            "upload_time_iso_8601": "2025-08-19T23:57:49.724469Z",
            "url": "https://files.pythonhosted.org/packages/9a/46/7a12f0b0cee7aab1307269138afdd127d0004b95212f675d103f0144a195/simple_html-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4c2dce7d57f35c5a444b279a42b344f72b957293c50d6c96b91a012ee2125339",
                "md5": "7a39969a978a60ac7173d3c2937dcd95",
                "sha256": "f0418612733f516dfef81431a45b1a9c1fd15fc703f87a1cbff16f71abfc3c46"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "7a39969a978a60ac7173d3c2937dcd95",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 67358,
            "upload_time": "2025-08-19T23:57:51",
            "upload_time_iso_8601": "2025-08-19T23:57:51.066358Z",
            "url": "https://files.pythonhosted.org/packages/4c/2d/ce7d57f35c5a444b279a42b344f72b957293c50d6c96b91a012ee2125339/simple_html-3.0.0-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "697054074f0bb5d75ccd6a2d3c0e03f53bbad3ee87b2736b53b71c77887a1822",
                "md5": "23aa5f89fa4bace345c123b6591d14e3",
                "sha256": "69809cdc10bbc85d75c281ddaf08d5d6dba8d64618d8b73f1ec717b49bf82bba"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "23aa5f89fa4bace345c123b6591d14e3",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 123821,
            "upload_time": "2025-08-19T23:57:52",
            "upload_time_iso_8601": "2025-08-19T23:57:52.134089Z",
            "url": "https://files.pythonhosted.org/packages/69/70/54074f0bb5d75ccd6a2d3c0e03f53bbad3ee87b2736b53b71c77887a1822/simple_html-3.0.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "74e84e9d600fefff936d8110d7ab9da49815216a1acf999c0811a850e0c60b7b",
                "md5": "7e26aea03fe86da3414fb88698440806",
                "sha256": "71b88292cd9066a1db948c82ae1b61864ad32db8818034bece8e0d54f9f5b53c"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7e26aea03fe86da3414fb88698440806",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 127956,
            "upload_time": "2025-08-19T23:57:53",
            "upload_time_iso_8601": "2025-08-19T23:57:53.291758Z",
            "url": "https://files.pythonhosted.org/packages/74/e8/4e9d600fefff936d8110d7ab9da49815216a1acf999c0811a850e0c60b7b/simple_html-3.0.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3905136bcf0bb4dcdaf870371e1e312d01490751cee71e18b2f3c9f7446b3cb6",
                "md5": "833cc6d4fdaeadf52f23ac2c9bd3e30c",
                "sha256": "d09511c6024f8a030d7c30c4460876b93eae356447e58b2373ce59e95a471813"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp39-cp39-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "833cc6d4fdaeadf52f23ac2c9bd3e30c",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 125488,
            "upload_time": "2025-08-19T23:57:54",
            "upload_time_iso_8601": "2025-08-19T23:57:54.699963Z",
            "url": "https://files.pythonhosted.org/packages/39/05/136bcf0bb4dcdaf870371e1e312d01490751cee71e18b2f3c9f7446b3cb6/simple_html-3.0.0-cp39-cp39-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c4b1dbb909374a7e78158100c7909798585b03604476727d74c9ec2b6adae4f8",
                "md5": "6cb1cd02eb2d962ee2ec7339b4f38f3b",
                "sha256": "014e441d448afb5161eb74f9f312e3ea2be16db11442d79db4d174ecfc5985f6"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6cb1cd02eb2d962ee2ec7339b4f38f3b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 129405,
            "upload_time": "2025-08-19T23:57:56",
            "upload_time_iso_8601": "2025-08-19T23:57:56.198751Z",
            "url": "https://files.pythonhosted.org/packages/c4/b1/dbb909374a7e78158100c7909798585b03604476727d74c9ec2b6adae4f8/simple_html-3.0.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "98edf2f14884603f43b8649528c386c5df35f7103bd6d34374de748f99e112bc",
                "md5": "8dc46f4e387c5beb05f0fe443e124718",
                "sha256": "8e4a1df7e10e19f6fc4d70ffe397d6434008bb9fd00186d0659ee7c0a661aae8"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "8dc46f4e387c5beb05f0fe443e124718",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 42664,
            "upload_time": "2025-08-19T23:57:57",
            "upload_time_iso_8601": "2025-08-19T23:57:57.332653Z",
            "url": "https://files.pythonhosted.org/packages/98/ed/f2f14884603f43b8649528c386c5df35f7103bd6d34374de748f99e112bc/simple_html-3.0.0-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a9c84abae7d4a203107344f97e77f536059dd056c3ae62d958854b27e6b2ab68",
                "md5": "fa16182e11a0d686842ef53d4773e44d",
                "sha256": "b0bdb34683f682a7d2bbedd7922b08bb2216fd07a38b12763c46e9487b8f183c"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "fa16182e11a0d686842ef53d4773e44d",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 45214,
            "upload_time": "2025-08-19T23:57:58",
            "upload_time_iso_8601": "2025-08-19T23:57:58.336957Z",
            "url": "https://files.pythonhosted.org/packages/a9/c8/4abae7d4a203107344f97e77f536059dd056c3ae62d958854b27e6b2ab68/simple_html-3.0.0-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bd889471556e8c8e79608eec20075957462626730b63b14d24f043212daf898f",
                "md5": "ef23a749a4e688b59fbed81ba07b04b6",
                "sha256": "6b685ed84ade502524a5b6317767450b4a936f7fe52b186634eb1d97089eec8a"
            },
            "downloads": -1,
            "filename": "simple_html-3.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "ef23a749a4e688b59fbed81ba07b04b6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 12777,
            "upload_time": "2025-08-19T23:57:59",
            "upload_time_iso_8601": "2025-08-19T23:57:59.670346Z",
            "url": "https://files.pythonhosted.org/packages/bd/88/9471556e8c8e79608eec20075957462626730b63b14d24f043212daf898f/simple_html-3.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-19 23:57:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "keithasaurus",
    "github_project": "simple_html",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "simple-html"
}
        
Elapsed time: 0.59582s