Skip to main content

css_inline

build status pypi versions license codecov.io

css_inline is a high-performance library for inlining CSS into HTML 'style' attributes.

Use it to prepare HTML emails or to embed HTML into third-party web pages.

It turns this HTML:

<html>
  <head>
    <style>h1 { color:blue; }</style>
  </head>
  <body>
    <h1>Big Text</h1>
  </body>
</html>

into:

<html><head>

  </head>
  <body>
    <h1 style="color: blue;">Big Text</h1>

</body></html>
  • Uses components from Mozilla's Servo project
  • 18x to 1115x faster than premailer, the fastest Python alternative (see Performance)
  • Inlines CSS from style and link tags
  • Removes style and link tags
  • Resolves external stylesheets (including local files)
  • Caches external stylesheets (opt-in)
  • Processes multiple documents in parallel
  • Works on Linux, Windows, macOS and in the browser via Pyodide
  • Supports HTML5 & CSS3
  • Tested on CPython 3.10, 3.11, 3.12, 3.13, 3.14 and PyPy 3.11.

Playground

Try css-inline in the WebAssembly-powered playground.

Installation

Install with pip:

pip install css_inline

The PyPI name is css-inline; pip accepts css_inline too. Import it as css_inline.

PyPI ships pre-compiled wheels for:

  • Linux (glibc and musl): x86_64, aarch64, armv7; glibc also i686
  • macOS: x86_64, arm64
  • Windows: x64, x86, arm64
  • PyPy 3.11: Linux x86_64 and aarch64, macOS x86_64

On other platforms, pip builds the package from source, which requires Rust 1.88 or newer.

Usage

import css_inline

HTML = """<html>
<head>
    <style>h1 { color:blue; }</style>
</head>
<body>
    <h1>Big Text</h1>
</body>
</html>"""

inlined = css_inline.inline(HTML)
# <html><head>
#
# </head>
# <body>
#     <h1 style="color: blue;">Big Text</h1>
#
# </body></html>

inline adds missing html, head and body tags, so the output is a complete HTML document.

To inline CSS into an HTML fragment, use inline_fragment(html, css). Both arguments are required; css holds the stylesheet to apply. The output stays a fragment: no <html>, <head> or <body> wrapper. Use inline for full documents:

FRAGMENT = """<main>
<h1>Hello</h1>
<section>
<p>who am i</p>
</section>
</main>"""

CSS = """
p {
    color: red;
}

h1 {
    color: blue;
}
"""

inlined = css_inline.inline_fragment(FRAGMENT, CSS)
# <main>
# <h1 style="color: blue;">Hello</h1>
# <section>
# <p style="color: red;">who am i</p>
# </section>
# </main>

To inline many documents at once, use inline_many or inline_many_fragments. Both process inputs in parallel and return a list of strings in input order. inline_many_fragments pairs htmls[i] with css[i].

Warning: if the lists differ in length, inline_many_fragments silently drops the extra items from the longer list. CSSInliner has the same two methods.

import css_inline

css_inline.inline_many(["<...>", "<...>"])
css_inline.inline_many_fragments(["<p>a</p>", "<p>b</p>"], ["p { color: red; }", "p { color: blue; }"])

inline_many processes inputs in parallel on a Rust thread pool (Rayon), so you don't need multiprocessing. The speedup scales with the number of CPU cores.

Configuration

Pass options to the CSSInliner class:

import css_inline

inliner = css_inline.CSSInliner(keep_style_tags=True)
inliner.inline("...")
  • inline_style_tags. Inline CSS from style tags. Default: True
  • keep_style_tags. Keep style tags after inlining. Default: False
  • keep_link_tags. Keep link tags after inlining. Default: False
  • keep_at_rules. Keep at-rules (starting with @) after inlining. Default: False
  • minify_css. Remove trailing semicolons and spaces between properties and values. Default: False
  • base_url. Base URL for resolving relative URLs. Use the file:// scheme to load stylesheets from the filesystem. Default: None
  • load_remote_stylesheets. Load stylesheets from link tags, over the network or from file:// paths. Default: True
  • cache. Cache for external stylesheets, for example StylesheetCache(size=5). Default: None
  • extra_css. Extra CSS to inline. Default: None
  • preallocate_node_capacity. Advanced. Number of HTML nodes to preallocate during parsing. Set it to your expected node count to avoid reallocations. Default: 32
  • remove_inlined_selectors. Remove inlined selectors from <style> blocks. Default: False
  • apply_width_attributes. Add width HTML attributes from CSS width properties on supported elements (table, td, th, img). Default: False
  • apply_height_attributes. Add height HTML attributes from CSS height properties on supported elements (table, td, th, img). Default: False
  • resolve_css_variables. Replace var() references with the values of the custom properties they refer to and drop the --* declarations. Default: False

To skip CSS inlining for an HTML tag, add the data-css-inline="ignore" attribute:

<head>
  <style>h1 { color:blue; }</style>
</head>
<body>
  <!-- The tag below won't receive additional styles -->
  <h1 data-css-inline="ignore">Big Text</h1>
</body>

The same attribute on a link or style tag makes the inliner skip that stylesheet:

<head>
  <!-- Styles below are ignored -->
  <style data-css-inline="ignore">h1 { color:blue; }</style>
</head>
<body>
  <h1>Big Text</h1>
</body>

To keep a style tag in the output, add data-css-inline="keep". Use it for @media queries in responsive emails. The tag stays even with keep_style_tags=False.

<head>
  <!-- Styles below are not removed -->
  <style data-css-inline="keep">h1 { color:blue; }</style>
</head>
<body>
  <h1>Big Text</h1>
</body>

At-rules can't go into style attributes, so the inliner removes them by default. Set keep_at_rules=True to keep them, for example @media queries for responsive emails, in a style tag while inlining everything else. The tag stays even with keep_style_tags=False.

<head>
  <!-- With keep_at_rules=True, "color: blue" goes into <h1> and @media stays in <style> -->
  <style>h1 { color: blue; } @media (max-width: 600px) { h1 { font-size: 18px; } }</style>
</head>
<body>
  <h1>Big Text</h1>
</body>

minify_css=True removes trailing semicolons and spaces between properties and values in inlined styles.

<head>
  <!-- With minify_css=True, the <h1> will have `style="color:blue;font-weight:bold"` -->
  <style>h1 { color: blue; font-weight: bold; }</style>
</head>
<body>
  <h1>Big Text</h1>
</body>

To load stylesheets from the filesystem, use the file:// scheme. Standard URL parsing reads file://styles/email/ as host styles and path /email/. css-inline deviates from the standard here: for a file:// URL with a host, it drops the file:// prefix and treats styles/email/ as a path relative to the current directory. With either form, <link href="main.css"> resolves against the base, so keep the trailing slash: without it, main.css replaces the last segment (styles/main.css).

import css_inline

# Absolute directory: three slashes
inliner = css_inline.CSSInliner(base_url="file:///srv/app/styles/email/")
inliner.inline("...")

# Relative to the current directory: two slashes
inliner = css_inline.CSSInliner(base_url="file://styles/email/")
inliner.inline("...")

To avoid repeated network requests, cache external stylesheets:

import css_inline

inliner = css_inline.CSSInliner(
    cache=css_inline.StylesheetCache(size=5)
)
inliner.inline("...")

size is the maximum number of stylesheets in the cache and must be greater than zero; otherwise StylesheetCache raises InlineError. When it is full, the least recently used entry is evicted. Caching is off by default.

Errors

Inlining raises css_inline.InlineError, a ValueError subclass, when a stylesheet fails to load (missing file, network error) or to parse. An invalid base_url raises a plain ValueError.

import css_inline

try:
    css_inline.inline('<link href="missing.css" rel="stylesheet">')
except css_inline.InlineError as exc:
    print(exc)  # Missing stylesheet file: missing.css

XHTML compatibility

css-inline outputs HTML5, so void tags stay unclosed (<hr>, not <hr/>). For XHTML output, re-serialize with lxml:

import css_inline
from lxml import html, etree

document = "..."  # Your HTML document
inlined = css_inline.inline(document)
tree = html.fromstring(inlined)
inlined = etree.tostring(tree).decode(encoding="utf-8")

Performance

css-inline is 18x to 1115x faster than the next fastest Python inliner, premailer, on the inputs below:

Size css_inline 0.23.1 premailer 3.10.0 toronado 0.1.0 pynliner 0.8.0
Basic 230 B 4.10 µs 111.34 µs (27.15x) 633.87 µs (154.58x) 1.08 ms (263.88x)
Realistic-1 8.58 KB 71.52 µs 1.31 ms (18.26x) 14.30 ms (200.02x) 15.21 ms (212.69x)
Realistic-2 4.30 KB 40.38 µs 1.67 ms (41.33x) ERROR ERROR
GitHub page 1.81 MB 11.22 ms 12.51 s (1114.78x) ERROR ERROR

toronado and pynliner fail on Realistic-2 and the GitHub page because those inputs contain CSS they do not support: toronado raises ExpressionError: Pseudo-elements are not supported., pynliner raises Exception: No match was found. We're done or something is broken. inlinestyler 0.2.5 is not in the table: it crashes with current lxml ('CSSSelector' object has no attribute 'evaluate').

Inputs live in benchmarks/benchmarks.json: Basic is simple, Realistic-1 is big_email_1, Realistic-2 is big_email_2, GitHub page is big_page. Benchmark code: benches/bench.py (pytest-benchmark, mean time). Environment: rustc 1.99 (stable), Python 3.14.5, Ryzen 9 9950X.

Comparison with other libraries

Compared to other Python inliners, css-inline:

  • Supports more CSS features. For example, toronado and pynliner don't support pseudo-elements.
  • Has fewer configuration options than premailer.
  • Has no debug logs.
  • Supports only HTML5.

Further reading

How the library works internally:

License

This project is licensed under the terms of the MIT license.

Metadata

Release files for css-inline 0.24.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for css-inline 0.24.0
File Size Uploaded Provenance Actions
css_inline-0.24.0.tar.gz 115.7 kB Without provenance Details for css_inline-0.24.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for css-inline 0.24.0
File Actions
css_inline-0.24.0-pp311-pypy311_pp73-manylinux_2_24_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.24+ x86-64 Details for css_inline-0.24.0-pp311-pypy311_pp73-manylinux_2_24_x86_64.whl
css_inline-0.24.0-pp311-pypy311_pp73-manylinux_2_24_aarch64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.24+ ARM64 Details for css_inline-0.24.0-pp311-pypy311_pp73-manylinux_2_24_aarch64.whl
css_inline-0.24.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 macOS 10.12+ x86-64 Details for css_inline-0.24.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl
css_inline-0.24.0-cp310-abi3-win_arm64.whl CPython 3.10 abi3 Windows ARM64 Details for css_inline-0.24.0-cp310-abi3-win_arm64.whl
css_inline-0.24.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for css_inline-0.24.0-cp310-abi3-win_amd64.whl
css_inline-0.24.0-cp310-abi3-win32.whl CPython 3.10 abi3 Windows x86-32 Details for css_inline-0.24.0-cp310-abi3-win32.whl
css_inline-0.24.0-cp310-abi3-pyemscripten_2026_0_wasm32.whl CPython 3.10 abi3 PyEmscripten 2026.0+ WebAssembly Details for css_inline-0.24.0-cp310-abi3-pyemscripten_2026_0_wasm32.whl
css_inline-0.24.0-cp310-abi3-pyemscripten_2025_0_wasm32.whl CPython 3.10 abi3 PyEmscripten 2025.0+ WebAssembly Details for css_inline-0.24.0-cp310-abi3-pyemscripten_2025_0_wasm32.whl
css_inline-0.24.0-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details for css_inline-0.24.0-cp310-abi3-musllinux_1_2_x86_64.whl
css_inline-0.24.0-cp310-abi3-musllinux_1_2_armv7l.whl CPython 3.10 abi3 Linux musl 1.2+ ARMv7l Details for css_inline-0.24.0-cp310-abi3-musllinux_1_2_armv7l.whl
css_inline-0.24.0-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details for css_inline-0.24.0-cp310-abi3-musllinux_1_2_aarch64.whl
css_inline-0.24.0-cp310-abi3-manylinux_2_24_armv7l.whl CPython 3.10 abi3 Linux glibc 2.24+ ARMv7l Details for css_inline-0.24.0-cp310-abi3-manylinux_2_24_armv7l.whl
css_inline-0.24.0-cp310-abi3-manylinux_2_24_aarch64.whl CPython 3.10 abi3 Linux glibc 2.24+ ARM64 Details for css_inline-0.24.0-cp310-abi3-manylinux_2_24_aarch64.whl
css_inline-0.24.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details for css_inline-0.24.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
css_inline-0.24.0-cp310-abi3-manylinux2010_i686.manylinux_2_12_i686.whl CPython 3.10 abi3 Linux glibc 2.12+ x86-32 Details for css_inline-0.24.0-cp310-abi3-manylinux2010_i686.manylinux_2_12_i686.whl
css_inline-0.24.0-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details for css_inline-0.24.0-cp310-abi3-macosx_10_12_x86_64.whl
css_inline-0.24.0-cp310-abi3-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 10.12+ x86-64, macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64) Details for css_inline-0.24.0-cp310-abi3-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl

Total release size: 32.1 MB

Release files / css_inline-0.24.0.tar.gz

Download URL css_inline-0.24.0.tar.gz
Size 115.7 kB
Tags Source
SHA-256 checksum
How to use checksums
bb5f6d5625fa570a181ddc2138af7f57247995eaac7478a5eedb69f4b4a9bcfa
BLAKE2b-256 checksum
How to use checksums
c28819c6ccc6775624faf760c05427dab14a565cbd9508c555ab9ff5f275a144
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-pp311-pypy311_pp73-manylinux_2_24_x86_64.whl

Download URL css_inline-0.24.0-pp311-pypy311_pp73-manylinux_2_24_x86_64.whl
Size 2.0 MB
Tags Linux glibc 2.24+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
b2bc4fcf5cfc406e9ec8751c949193bb4c4e5085fa976a608a15501309b9f8e2
BLAKE2b-256 checksum
How to use checksums
7720cb5decf52b552e7d0156dec55bda88674f17c6f1cb567e41459d208b0559
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-pp311-pypy311_pp73-manylinux_2_24_aarch64.whl

Download URL css_inline-0.24.0-pp311-pypy311_pp73-manylinux_2_24_aarch64.whl
Size 1.9 MB
Tags Linux glibc 2.24+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
3694dbc7eefd947a565dbe677a1ee99746ef19739b8a6d9e45a41340d1ed5216
BLAKE2b-256 checksum
How to use checksums
f3e1101fef51ee41d63296ea895243e71c00ccaec57612a92bcdfb8d6ad020cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl

Download URL css_inline-0.24.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl
Size 1.9 MB
Tags PyPy 3.11 PyPy 3.11 7.3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
9e390d40ff3c75fef715cff77d5ea31c2426c754b20287c96d2df4a0a8221413
BLAKE2b-256 checksum
How to use checksums
377d63249334298f5c6784010edcd74320d8a6e0e87124f1e46d859b8ec68adc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-cp310-abi3-win_arm64.whl

Download URL css_inline-0.24.0-cp310-abi3-win_arm64.whl
Size 1.9 MB
Tags CPython 3.10 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
cb55914ecedd6c36cfad46995c417dc2ab70e20ebf683f09dd3d9f4767b9e6d9
BLAKE2b-256 checksum
How to use checksums
352025aa380087c93315dd65917049882ac573d0c610efbeef08cc764175546a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-cp310-abi3-win_amd64.whl

Download URL css_inline-0.24.0-cp310-abi3-win_amd64.whl
Size 2.0 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
e8680abb31ba33a18e040f86ea4081f9a1c842e1c434a1a6d121fca90f308926
BLAKE2b-256 checksum
How to use checksums
313bed802a3c333fbc1c6af8554812d64e584e4aa0e241d85a964c337cbd43af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-cp310-abi3-win32.whl

Download URL css_inline-0.24.0-cp310-abi3-win32.whl
Size 1.6 MB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
8b2659048ddde1f3f62535e5d66330bee222bc092254c1dbac08ae46253f6c48
BLAKE2b-256 checksum
How to use checksums
2b4ae323518b258fc77f8cfbcc11d30d2747bd19976506acf2c1877467d84f1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-cp310-abi3-pyemscripten_2026_0_wasm32.whl

Download URL css_inline-0.24.0-cp310-abi3-pyemscripten_2026_0_wasm32.whl
Size 569.1 kB
Tags CPython 3.10 PyEmscripten 2026.0+ WebAssembly abi3
SHA-256 checksum
How to use checksums
077991ba151faa53d049138f643af49936f82220f53e83af8a64a51856fb0aac
BLAKE2b-256 checksum
How to use checksums
a709931e07562d4f6585d3122b0a4fdcf94753b73f33effe373bffa1f27cab1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-cp310-abi3-pyemscripten_2025_0_wasm32.whl

Download URL css_inline-0.24.0-cp310-abi3-pyemscripten_2025_0_wasm32.whl
Size 574.6 kB
Tags CPython 3.10 PyEmscripten 2025.0+ WebAssembly abi3
SHA-256 checksum
How to use checksums
dbea2bdb337acbda9de27f216ee528050308484b27af8a77dd0f89805d829ad6
BLAKE2b-256 checksum
How to use checksums
6c0230fa4b67c6eaf3273d880f3ee2d8d716523cbffe9a3e38ee6a2d524b7eb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL css_inline-0.24.0-cp310-abi3-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
4bb9ecfd0f6bbbcc3591b61df511aa05d71448dfca94087b4d79bac25c4d6f29
BLAKE2b-256 checksum
How to use checksums
eab8d316f7e83c776cfb932f78d67c8ebf922b80bd5cd08e3bc8dddd9163fbab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-cp310-abi3-musllinux_1_2_armv7l.whl

Download URL css_inline-0.24.0-cp310-abi3-musllinux_1_2_armv7l.whl
Size 2.0 MB
Tags CPython 3.10 Linux musl 1.2+ ARMv7l abi3
SHA-256 checksum
How to use checksums
8aa2e087f3c9a2da997a8cd00365872278ccb25665db42c0c65b25b84637b1a0
BLAKE2b-256 checksum
How to use checksums
382ab2ff806c0195f97fc52c690016c83dc7e55805cfc898d7074a0420781b92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL css_inline-0.24.0-cp310-abi3-musllinux_1_2_aarch64.whl
Size 2.1 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
369e29dbfecb4fd378b58eb7c08baf96f14dcc9eed73aed23fc90fa4ab37eb70
BLAKE2b-256 checksum
How to use checksums
53815a56f04deebd93c26f6237e603b0e9f37bcbad313f6e582ace96018e627c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-cp310-abi3-manylinux_2_24_armv7l.whl

Download URL css_inline-0.24.0-cp310-abi3-manylinux_2_24_armv7l.whl
Size 1.8 MB
Tags CPython 3.10 Linux glibc 2.24+ ARMv7l abi3
SHA-256 checksum
How to use checksums
52f065d16845532679a745333f11cd6c720bc66509385d1d6b83b6735754dc4c
BLAKE2b-256 checksum
How to use checksums
761fec872067126cc5eaa61bf107d527ab0ee06e7a9c53f8566d98ffda54d845
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-cp310-abi3-manylinux_2_24_aarch64.whl

Download URL css_inline-0.24.0-cp310-abi3-manylinux_2_24_aarch64.whl
Size 1.9 MB
Tags CPython 3.10 Linux glibc 2.24+ ARM64 abi3
SHA-256 checksum
How to use checksums
ff3a94a78d58f5d9d0e64d488fdc071ac02e286da7032d9587d6cd2712ac3bac
BLAKE2b-256 checksum
How to use checksums
cf9c66600d52111363b1d41d25d4acabf7f068ea84bd3669cdaf01150351b642
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL css_inline-0.24.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 2.0 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
4966f59592203bfbdffd5a205a281b6b09ff90a78e5ba1e4978b58923bd69124
BLAKE2b-256 checksum
How to use checksums
963e1a522e261e52459255ee274ddc410512db3c99057e1aaf82f1924df9452b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-cp310-abi3-manylinux2010_i686.manylinux_2_12_i686.whl

Download URL css_inline-0.24.0-cp310-abi3-manylinux2010_i686.manylinux_2_12_i686.whl
Size 1.9 MB
Tags CPython 3.10 Linux glibc 2.12+ x86-32 abi3
SHA-256 checksum
How to use checksums
af27a49752371ea60aad564db5471414fd33fae97baa5e23d972a89365dd8629
BLAKE2b-256 checksum
How to use checksums
86e589d4146735f569feaef6fc2a3dfe1931a842fa820879f4c9d60fc40820a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-cp310-abi3-macosx_10_12_x86_64.whl

Download URL css_inline-0.24.0-cp310-abi3-macosx_10_12_x86_64.whl
Size 1.9 MB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
ae27c25d2accb9721ee8ce012636db6d76a806e324e85ffdd882b9c925826ef8
BLAKE2b-256 checksum
How to use checksums
64baa58459001b3b3bb5a2db60ec7d56951b1d97d833a14fd4616d7541334775
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / css_inline-0.24.0-cp310-abi3-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl

Download URL css_inline-0.24.0-cp310-abi3-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl
Size 3.7 MB
Tags CPython 3.10 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
371204b4261a5e6250399b4d0c0d225b66634fcea5e3a0f6a08c5a1999eae35f
BLAKE2b-256 checksum
How to use checksums
7433dc731dc1c6859af9f81a19caf40f3b7515398fdb0b163c842a7642e6e4f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Security for css-inline 0.24.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.24.0 This release

18 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page