Skip to main content

Hext — Extract Data from HTML

Hext Logo

Hext is a domain-specific language for extracting structured data from HTML. It can be thought of as a counterpart to templates, which are typically used by web developers to structure content on the web.

A Quick Example

The following Hext template collects all hyperlinks and extracts the href and the clickable text.

<a href:link @text:title />

Hext does so by recursively trying to match every HTML element. In the case above, an element is required to have the tag a and an attribute called href. If the element matches, its attribute href and its textual representation are stored as link and title, respectively.

If the above Hext template is applied to this piece of HTML:

<body>
  <a href="one.html">  Page 1</a>
  <a href="two.html">  Page 2</a>
  <a href="three.html">Page 3</a>
</body>

Hext will produce the following values:

{ "link": "one.html",   "title": "Page 1" },
{ "link": "two.html",   "title": "Page 2" },
{ "link": "three.html", "title": "Page 3" }

You can use this example in Hext’s live code editor. Visit Hext’s documentation and its section “How Hext Matches Elements” for a more thorough explanation.

Components

This package includes:

  • The Hext Python module
  • The htmlext command-line utility

Using Hext with Python

The module exposes three interfaces:

  • html = hext.Html("<html>...</html>") -> object
  • rule = hext.Rule("...") -> object
  • rule.extract(html) -> dictionary of {string -> string}
  • rule.extract has a second optional parameter max_searches which is of type unsigned int. The search for matching elements is aborted after this limit is reached. The default is 0, which never aborts.
import hext
import requests
import json

res = requests.get('https://news.ycombinator.com/')
res.raise_for_status()

# hext.Html's constructor expects a single argument
# containing an UTF-8 encoded string of HTML.
html = hext.Html(res.text)

# hext.Rule's constructor expects a single argument
# containing a Hext template.
# Throws an exception of type ValueError on invalid syntax.
rule = hext.Rule("""
<tr>
  <td><span @text:rank /></td>
  <td><a href:href @text:title /></td>
</tr>
<?tr>
  <td>
    <span @text:score />
    <a @text:user />
    <a:last-child @text:filter(/\d+/):comment_count />
  </td>
</tr>""")

# hext.Rule.extract expects an argument of type hext.Html.
# Returns a list of dictionaries.
result = rule.extract(html)

# Print each dictionary as JSON
for map in result:
    print(json.dumps(map, ensure_ascii=False,
                          separators=(',',':')))

Using Hext on the Command Line

Hext ships with a command line utility called htmlext, which applies Hext templates to HTML documents and outputs JSON.

htmlext - Extract structured content from HTML.

Usage:
  htmlext [options] <hext-file> <html-file...>
      Apply extraction rules from <hext-file> to each
      <html-file> and print the captured content as JSON.

Options:
  -x [ --hext ] <file>  Add Hext from file
  -i [ --html ] <file>  Add HTML from file
  -s [ --str ] <string> Add Hext from string
  -c [ --compact ]      Print one JSON object per line
  -p [ --pretty ]       Pretty-print JSON
  -a [ --array ]        Wrap results in a JSON array
  -f [ --filter ] <key> Print values whose name matches <key>
  -l [ --lint ]         Do Hext syntax check
  -h [ --help ]         Print this help message
  -V [ --version ]      Print info and version

Ever wanted to watch the submissions on /r/videos in vlc? Well, take a look at this little guy right here:

htmlext \
  -i <(wget -O- -o/dev/null "https://old.reddit.com/r/videos/") \
  -s '<a class="title" href:x />' \
  -f x \
  | xargs vlc

License

Hext is released under the terms of the Apache License v2.0. The source code is hosted on Github. This binary package includes content authored by third parties:

  • gumbo-parser. Copyright 2010 Google Inc. See gumbo.license.
  • rapidjson. Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. See rapidjson.license.

Metadata

Release files for hext 1.0.16

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

Built distributions (wheels)

Table of built distributions (wheels) for hext 1.0.16
File
hext-1.0.16-cp315-cp315-manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ x86-64 Details
hext-1.0.16-cp315-cp315-manylinux_2_28_aarch64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ ARM64 Details
hext-1.0.16-cp315-cp315-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 macOS 11.0+ ARM64 Details
hext-1.0.16-cp315-cp315-macosx_10_11_x86_64.whl CPython 3.15 CPython 3.15 macOS 10.11+ x86-64 Details
hext-1.0.16-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
hext-1.0.16-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details
hext-1.0.16-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
hext-1.0.16-cp314-cp314-macosx_10_11_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.11+ x86-64 Details
hext-1.0.16-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
hext-1.0.16-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
hext-1.0.16-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
hext-1.0.16-cp313-cp313-macosx_10_11_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.11+ x86-64 Details
hext-1.0.16-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
hext-1.0.16-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
hext-1.0.16-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
hext-1.0.16-cp312-cp312-macosx_10_11_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.11+ x86-64 Details
hext-1.0.16-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
hext-1.0.16-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
hext-1.0.16-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
hext-1.0.16-cp311-cp311-macosx_10_11_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.11+ x86-64 Details
hext-1.0.16-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
hext-1.0.16-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
hext-1.0.16-cp39-cp39-manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64 Details
hext-1.0.16-cp39-cp39-manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64 Details

Total release size: 26.8 MB

Release files / hext-1.0.16-cp315-cp315-manylinux_2_28_x86_64.whl

Download URL hext-1.0.16-cp315-cp315-manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.15 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e45a9cdfb1568b28c4d6b418c0fbd68244aaa73a8fe649a6c7664af7bb8da43b
BLAKE2b-256 checksum
How to use checksums
9d55ab96f0219a2e085baa47a2686a26fc5c961a9e4719bc052268983b710e3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp315-cp315-manylinux_2_28_aarch64.whl

Download URL hext-1.0.16-cp315-cp315-manylinux_2_28_aarch64.whl
Size 1.4 MB
Tags CPython 3.15 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
78f66a4ecf19375ab199e1bf1d62e8ae761e82877de270b9b44c769b990789f1
BLAKE2b-256 checksum
How to use checksums
9981bdcc92fb2ec9ffdf055a14e22105ca0cf910004e9ffa8f3201323d05e4aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp315-cp315-macosx_11_0_arm64.whl

Download URL hext-1.0.16-cp315-cp315-macosx_11_0_arm64.whl
Size 599.7 kB
Tags CPython 3.15 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0f7ba0e710b3a8f04eb5d41c02f181a081d00c2240eff2737315b4f5bedd8652
BLAKE2b-256 checksum
How to use checksums
c392efdbc7efbfd9e0fc26741d17f7309e88097317589ad60eb358fa9c47d9cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp315-cp315-macosx_10_11_x86_64.whl

Download URL hext-1.0.16-cp315-cp315-macosx_10_11_x86_64.whl
Size 599.9 kB
Tags CPython 3.15 macOS 10.11+ x86-64
SHA-256 checksum
How to use checksums
c917f21fb8c1da43a190a78bb348e0e09d5e91b89279d9c0216fe9d47b276d51
BLAKE2b-256 checksum
How to use checksums
3b9e13eef336fc2a8521113bbb937cd9448fcd72c689e601d6ede033de328f82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL hext-1.0.16-cp314-cp314-manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
13a1484151474cd5e0c54d3d604b5cb9e15675b72ea3ca9148fd26253dd1e2ed
BLAKE2b-256 checksum
How to use checksums
b64cd61a81a2918bb82b017e0c1d874be37b3c64108dc5a7553df4d94791ac37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp314-cp314-manylinux_2_28_aarch64.whl

Download URL hext-1.0.16-cp314-cp314-manylinux_2_28_aarch64.whl
Size 1.4 MB
Tags CPython 3.14 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
638dc7fc39427ace6a73a682433f7bb6e770161e39ebfbb68baf31fff08c7cdf
BLAKE2b-256 checksum
How to use checksums
c5086620d7751a664f63c8b62cba95e4fff64fab6426ec9e6c4f536e929ef593
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp314-cp314-macosx_11_0_arm64.whl

Download URL hext-1.0.16-cp314-cp314-macosx_11_0_arm64.whl
Size 599.7 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
dc5f10b6ad98a77580e50131aa3265b1262d8eac1c383fc7aa2d4d1af6b87bdc
BLAKE2b-256 checksum
How to use checksums
6a589dbe0bfd58025d7ececc0279a8a6b3108fb677a986706269a4f3c8cde979
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp314-cp314-macosx_10_11_x86_64.whl

Download URL hext-1.0.16-cp314-cp314-macosx_10_11_x86_64.whl
Size 599.9 kB
Tags CPython 3.14 macOS 10.11+ x86-64
SHA-256 checksum
How to use checksums
f400d7c648dc0c9bbb642562ab771fb1eb2d4d93f15417717189feb1ebaf6654
BLAKE2b-256 checksum
How to use checksums
ac67d26aacf4cce86b40e57c3926beeb4469930b8c8e7c0556f61afc6e7a1eba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL hext-1.0.16-cp313-cp313-manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
efe457d03c1c0085eb13fb8943887bbd2e639f2b0d4f4244dacc09c630e0571a
BLAKE2b-256 checksum
How to use checksums
778e432ddc9cf76f57b317cb4027631c64bf3927fa6564a16158920876a97775
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL hext-1.0.16-cp313-cp313-manylinux_2_28_aarch64.whl
Size 1.4 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3d12a3b4d290d01f5873212de443f1bcc6129aa8ef85754874aae5f7d0f624e4
BLAKE2b-256 checksum
How to use checksums
b01171c28601d5af858df0bb2db8f001a0b73b207c629946e04c57d66e37f3bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp313-cp313-macosx_11_0_arm64.whl

Download URL hext-1.0.16-cp313-cp313-macosx_11_0_arm64.whl
Size 599.6 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2d120b348e459a6ddcc2d5d225ca71a7a3a02cb141ac4b53fad3dbb439efdd0e
BLAKE2b-256 checksum
How to use checksums
bc70d380c90a3d546a43cfd698fc5daf0dc650983ec0306ed569b7412deffafd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp313-cp313-macosx_10_11_x86_64.whl

Download URL hext-1.0.16-cp313-cp313-macosx_10_11_x86_64.whl
Size 599.8 kB
Tags CPython 3.13 macOS 10.11+ x86-64
SHA-256 checksum
How to use checksums
22763027936aade01f7b69ed4151ccc61a2fd15298809b68f2afa374cf5a09c1
BLAKE2b-256 checksum
How to use checksums
3791183df98d41976c9b3d57d915b02660ee8fa6cc9d77ab432b8e241e53a74f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL hext-1.0.16-cp312-cp312-manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
50124d66643ebdb59fb6ffd40eaa5dea3f9dfde777623a9d2eba20547fc191c6
BLAKE2b-256 checksum
How to use checksums
ad033af06b2ba97cfd35eab63c82b8c203fa14e617430c8c042405751b176a59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL hext-1.0.16-cp312-cp312-manylinux_2_28_aarch64.whl
Size 1.4 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f4b5ba7f6dfc5b03f71b8f08144b01cc53220a75aebe280e256139272275fd79
BLAKE2b-256 checksum
How to use checksums
30854a49cbdc05cf68baec8d32c9941d55f3693d049295ee1192b31503edb318
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp312-cp312-macosx_11_0_arm64.whl

Download URL hext-1.0.16-cp312-cp312-macosx_11_0_arm64.whl
Size 600.0 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a8d68611cb4a5a38fb4a652b6c4486ae6ec6bb8b162b067f22bae4202b4ba9d9
BLAKE2b-256 checksum
How to use checksums
2a43838722040c596b15d3d6ebb435d1b8c5259f83efba65f05b13752ccdf4fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp312-cp312-macosx_10_11_x86_64.whl

Download URL hext-1.0.16-cp312-cp312-macosx_10_11_x86_64.whl
Size 600.0 kB
Tags CPython 3.12 macOS 10.11+ x86-64
SHA-256 checksum
How to use checksums
f68e4c83a3c5bcb0550d55f3e447e8704ce8a63fe85ca92428c21d613386260a
BLAKE2b-256 checksum
How to use checksums
e1fcf5366877aeafcc9117db67988b3a96a4dbece8c3d8f3c63ad62fa2bf68b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL hext-1.0.16-cp311-cp311-manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d5d1ce76b595643279fc8c097283e16bdbc58f92ae1394b69dec91094071d475
BLAKE2b-256 checksum
How to use checksums
baca9f09e839beea31548eb7f73ce74c3807ce6872dbdf39043232b080e7adf0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL hext-1.0.16-cp311-cp311-manylinux_2_28_aarch64.whl
Size 1.4 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1b22443be873060c1eebec6f6eafdbf501d7989fb5445a68f01a748085c3d45f
BLAKE2b-256 checksum
How to use checksums
f871c8e0b1a5ea3a240072e15838405c731af85e498e7dcb304f86941cffa782
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp311-cp311-macosx_11_0_arm64.whl

Download URL hext-1.0.16-cp311-cp311-macosx_11_0_arm64.whl
Size 599.9 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bf67559d4a9ac2bba3e24592803193b5385324619e16385f3d848139e3ab1080
BLAKE2b-256 checksum
How to use checksums
ce59031e7bb36d26c872ebd90d767a2157fcdd780318d1fe199fb6f2b7212b75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp311-cp311-macosx_10_11_x86_64.whl

Download URL hext-1.0.16-cp311-cp311-macosx_10_11_x86_64.whl
Size 599.9 kB
Tags CPython 3.11 macOS 10.11+ x86-64
SHA-256 checksum
How to use checksums
1edfea3ae095baeba10567ca4ba76ada007070bc3f13a13ea4015169430ac75a
BLAKE2b-256 checksum
How to use checksums
5803aa3ba57170c9e788af804c90c767cbe437f82bf0f3d3bdadf3fcbcc1d9a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL hext-1.0.16-cp310-cp310-manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7ee4e269679424ea2a61f14be8fb91d1cdd1601117f6f2a663abd55d00d7ba33
BLAKE2b-256 checksum
How to use checksums
752260724b0742214cd3b5ce51a846fcded7a60f586b1e84162f4163e7cbd72b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL hext-1.0.16-cp310-cp310-manylinux_2_28_aarch64.whl
Size 1.4 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e211c8de565373ff882cb9d3f93eecb55e9de3d1b3388af21ece3de378b3f67c
BLAKE2b-256 checksum
How to use checksums
84577a606ad14ed57ad818cda4cdcd5ae44d6d88d1c1752015f87daf14235c8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp39-cp39-manylinux_2_28_x86_64.whl

Download URL hext-1.0.16-cp39-cp39-manylinux_2_28_x86_64.whl
Size 1.5 MB
Tags CPython 3.9 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e917482e2e24501ed5ab36c425a0dec9f2960691fcb88734a1045d4841b59c13
BLAKE2b-256 checksum
How to use checksums
5df014507f436c9b5c3a3a6b5f8aa570397539b5b90c47ff4ca667cf1260ba1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / hext-1.0.16-cp39-cp39-manylinux_2_28_aarch64.whl

Download URL hext-1.0.16-cp39-cp39-manylinux_2_28_aarch64.whl
Size 1.4 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
75480079fa456d8f2a67a245cbc4c992c5298d62fa419f676e502ad3bcbc12f7
BLAKE2b-256 checksum
How to use checksums
a463416d09daf15a3d4975700f807566540598a82f87d5e2449b59290fd62a6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release history Release notifications | RSS feed

This release

1.0.16 This release

24 release files

1.0.9

15 release files

1.0.6

12 release files

1.0.5

11 release files

1.0.4

11 release files

1.0.3

10 release files

1.0.1

10 release files

1.0.0

10 release files

0.3.0

11 release files

0.2.5

20 release files

0.2.4

14 release files

0.2.3

12 release files

0.2.2

4 release files

0.2.1

12 release files

0.1.0

6 release files

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