<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ISciNumPy.dev</title><link>https://iscinumpy.dev/</link><description>Recent content on ISciNumPy.dev</description><generator>Hugo</generator><language>en-us</language><managingEditor>henryfs@princeton.edu (Henry Schreiner)</managingEditor><webMaster>henryfs@princeton.edu (Henry Schreiner)</webMaster><atom:link href="https://iscinumpy.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>C++26</title><link>https://iscinumpy.dev/post/cpp-26/</link><pubDate>Mon, 03 Aug 2026 10:00:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cpp-26/</guid><description>&lt;!-- rumdl-disable-file MD024 --&gt;&#10;&lt;p&gt;C++26 is done (technically complete March 2026, publication expected later this&#10;year), so let&amp;rsquo;s explore the new features in C++, from a data science point of&#10;view. This is the biggest release since C++11; in fact, one feature might be the&#10;biggest single feature ever. Reflection means C++ now understands itself without&#10;macros or hacks; it&amp;rsquo;s also one of the first mainstream compiled languages to&#10;have full static reflection (Rust has syntactic macros, but not true reflection;&#10;D, zig, and C# have reflection). Contracts finally landed after 20+ years of&#10;attempts; the async model (&lt;code&gt;std::execution&lt;/code&gt;) and data-parallel types&#10;(&lt;code&gt;std::simd&lt;/code&gt;, &lt;code&gt;std::linalg&lt;/code&gt;) are also big additions.&lt;/p&gt;&#10;&lt;p&gt;Standard stuff from previous releases is also continuing to improve. Much more&#10;&lt;code&gt;constexpr&lt;/code&gt;, more ranges, mdspan grows sub-views, formatting keeps improving.&#10;Plus memory-safety improvements (erroneous behavior, hardened standard library).&lt;/p&gt;</description></item><item><title>Tools plenary: cibuildwheel</title><link>https://iscinumpy.dev/page/presentations/2026-07-17-scipy-cibuildwheel/</link><pubDate>Fri, 17 Jul 2026 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2026-07-17-scipy-cibuildwheel/</guid><description/></item><item><title>Tools plenary: scikit-build</title><link>https://iscinumpy.dev/page/presentations/2026-07-17-scipy-scikit-build/</link><pubDate>Fri, 17 Jul 2026 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2026-07-17-scipy-scikit-build/</guid><description/></item><item><title>AI tools in OSS development</title><link>https://iscinumpy.dev/page/presentations/2026-07-08-rse/</link><pubDate>Wed, 08 Jul 2026 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2026-07-08-rse/</guid><description/></item><item><title>scikit-build-core 1.0</title><link>https://iscinumpy.dev/post/scikit-build-core-1-0/</link><pubDate>Mon, 06 Jul 2026 12:00:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/scikit-build-core-1-0/</guid><description>&lt;p&gt;&lt;a href="https://scikit-build-core.readthedocs.io"&gt;Scikit-build-core&lt;/a&gt; 1.0, the culmination of a four year project to build the&#10;best compiled code backend for Python, &lt;a href="https://github.com/scikit-build/scikit-build-core/releases/tag/v1.0.0"&gt;is out&lt;/a&gt;. It&amp;rsquo;s a huge release,&#10;with over 90 bugs fixed, over 40 new features, accounting for over a hundred&#10;closed issues. This is the completion of my original vision, and I&amp;rsquo;m really&#10;happy with it. I&amp;rsquo;d like to show off some of the new features, and also discuss&#10;some of the last four months of development that made this possible. This is all&#10;in time for &lt;a href="https://scikit-build.org/events/simple-py/"&gt;SIMPLE-Py&lt;/a&gt;, the workshop I&amp;rsquo;m hosting next week over Python&#10;packaging alongside &lt;a href="https://www.scipy2026.scipy.org"&gt;SciPy 2026&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Tools that help you write better code</title><link>https://iscinumpy.dev/page/presentations/2026-06-24-sqat/</link><pubDate>Wed, 24 Jun 2026 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2026-06-24-sqat/</guid><description/></item><item><title>Claude Code Reviews with Fable</title><link>https://iscinumpy.dev/post/claude-code-reviews/</link><pubDate>Tue, 16 Jun 2026 20:00:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/claude-code-reviews/</guid><description>&lt;p&gt;Fable came out and then disappeared a couple of days later. In that short time,&#10;I managed to run a lot of repository reviews with it, and was really happy with&#10;the results. I&amp;rsquo;ve found and fixed around 400 bugs and 400+ other issues&#10;(performance, simplifications, modernizations) across dozens of my projects,&#10;making several hundred PRs with a nearly 100% merge rate on decided PRs.&lt;/p&gt;</description></item><item><title>🎡 cibuildwheel 4.0</title><link>https://iscinumpy.dev/post/cibuildwheel-4-0-0/</link><pubDate>Sun, 07 Jun 2026 12:00:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cibuildwheel-4-0-0/</guid><description>&lt;p&gt;&lt;a href="https://cibuildwheel.pypa.io"&gt;cibuildwheel&lt;/a&gt; 4.0.0 is out, with some very big additions. We&amp;rsquo;ve added&#10;&lt;a href="https://peps.python.org/pep-0783"&gt;pyemscripten&lt;/a&gt; 3.13 wheels (uploadable to PyPI!), Python 3.15 (and 3.15t)&#10;betas, and much more! We&amp;rsquo;ve got a new stage: &lt;code&gt;audit&lt;/code&gt;, which applies&#10;&lt;a href="https://github.com/pypa/abi3audit"&gt;&lt;code&gt;abi3audit&lt;/code&gt;&lt;/a&gt; to stable ABI wheels. We now default to running&#10;&lt;a href="https://github.com/adang1345/delvewheel"&gt;delvewheel&lt;/a&gt; to repair Windows wheels. We now have &lt;code&gt;{project}&lt;/code&gt; and &lt;code&gt;{package}&lt;/code&gt;&#10;placeholders for &lt;code&gt;config-settings&lt;/code&gt;, and we set &lt;code&gt;CIBUILDWHEEL_BUILD_IDENTIFIER&lt;/code&gt;&#10;in the build step. We&amp;rsquo;ve also made some nice Android improvements. We&amp;rsquo;ve removed&#10;support for Python 3.8, Python 3.13t, GraalPy 3.11, and Cirrus CI.&lt;/p&gt;</description></item><item><title>My Projects</title><link>https://iscinumpy.dev/page/projects/</link><pubDate>Sun, 17 May 2026 10:00:00 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/projects/</guid><description>&lt;div class="tabs-shortcode" id="tabs-1" data-tabs-group="tabs-auto-1"&gt;&#10; &lt;ul class="nav nav-tabs" id="tabs-1-tablist" role="tablist"&gt;&lt;li class="nav-item" role="presentation"&gt;&#10; &lt;button&#10; class="nav-link active"&#10; id="tabs-auto-1-pane-1-tab"&#10; type="button"&#10; role="tab"&#10; data-bs-toggle="tab"&#10; data-bs-target="#tabs-auto-1-pane-1"&#10; aria-controls="tabs-auto-1-pane-1"&#10; aria-selected="true"&gt;Overview&lt;/button&gt;&#10; &lt;/li&gt;&lt;li class="nav-item" role="presentation"&gt;&#10; &lt;button&#10; class="nav-link"&#10; id="tabs-auto-1-pane-2-tab"&#10; type="button"&#10; role="tab"&#10; data-bs-toggle="tab"&#10; data-bs-target="#tabs-auto-1-pane-2"&#10; aria-controls="tabs-auto-1-pane-2"&#10; aria-selected="false"&gt;Tooling&lt;/button&gt;&#10; &lt;/li&gt;&lt;/ul&gt;&#10;&#10; &lt;div class="tab-content" id="tabs-1-content"&gt;&#10; &lt;div&#10; class="tab-pane fade show active"&#10; id="tabs-auto-1-pane-1"&#10; role="tabpanel"&#10; aria-labelledby="tabs-auto-1-pane-1-tab"&#10; tabindex="0"&gt;&lt;div class="project-table-wrapper"&gt;&#10;&lt;table class="project-table"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&lt;th data-sort="name"&gt;Name&lt;/th&gt;&lt;th class="col-data" data-sort="downloads"&gt;Downloads&lt;/th&gt;&lt;th class="col-data"&gt;Version&lt;/th&gt;&lt;th class="col-data" data-sort="date"&gt;Release&lt;/th&gt;&lt;th class="col-data" data-sort="date"&gt;Last Commit&lt;/th&gt;&lt;th class="col-data" data-sort="stars"&gt;Stars&lt;/th&gt;&lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10;&lt;tr data-project="pypa/packaging"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/packaging"&gt;packaging&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="61680115"&gt;&#10; &lt;a href="https://pepy.tech/projects/packaging"&gt;&lt;span class="badge badge-green"&gt;1,850,403,465/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/packaging"&gt;&lt;span class="badge badge-blue"&gt;26.3&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1785867327"&gt;&lt;a href="https://pypi.org/project/packaging/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;3 months ago&lt;span class="tip"&gt;2026-08-04T18:15:27Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794607694"&gt;&lt;a href="https://github.com/pypa/packaging/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;3 hours ago&lt;span class="tip"&gt;2026-11-13T22:08:14Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="757"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/pypa/packaging/stargazers"&gt;757&lt;/a&gt; &lt;a href="https://www.star-history.com/#pypa/packaging"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pypa/cibuildwheel"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/cibuildwheel"&gt;cibuildwheel&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="26834"&gt;&#10; &lt;a href="https://pepy.tech/projects/cibuildwheel"&gt;&lt;span class="badge badge-green"&gt;805,047/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/cibuildwheel"&gt;&lt;span class="badge badge-blue"&gt;4.3.5&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793127713"&gt;&lt;a href="https://pypi.org/project/cibuildwheel/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;17 days ago&lt;span class="tip"&gt;2026-10-27T19:01:53Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794069381"&gt;&lt;a href="https://github.com/pypa/cibuildwheel/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;6 days ago&lt;span class="tip"&gt;2026-11-07T16:36:21Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="2273"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/pypa/cibuildwheel/stargazers"&gt;2,273&lt;/a&gt; &lt;a href="https://www.star-history.com/#pypa/cibuildwheel"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pypa/build"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/build"&gt;build&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="3466012"&gt;&#10; &lt;a href="https://pepy.tech/projects/build"&gt;&lt;span class="badge badge-green"&gt;103,980,383/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/build"&gt;&lt;span class="badge badge-blue"&gt;1.6.1&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1789026959"&gt;&lt;a href="https://pypi.org/project/build/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;2 months ago&lt;span class="tip"&gt;2026-09-10T07:55:59Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794585946"&gt;&lt;a href="https://github.com/pypa/build/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;9 hours ago&lt;span class="tip"&gt;2026-11-13T16:05:46Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="864"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/pypa/build/stargazers"&gt;864&lt;/a&gt; &lt;a href="https://www.star-history.com/#pypa/build"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pypa/pipx" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/pipx"&gt;pipx&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="139865"&gt;&#10; &lt;a href="https://pepy.tech/projects/pipx"&gt;&lt;span class="badge badge-green"&gt;4,195,968/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/pipx"&gt;&lt;span class="badge badge-blue"&gt;1.18.16&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794039406"&gt;&lt;a href="https://pypi.org/project/pipx/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;6 days ago&lt;span class="tip"&gt;2026-11-07T08:16:46Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794611281"&gt;&lt;a href="https://github.com/pypa/pipx/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;2 hours ago&lt;span class="tip"&gt;2026-11-13T23:08:01Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="13000"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/pypa/pipx/stargazers"&gt;13,000&lt;/a&gt; &lt;a href="https://www.star-history.com/#pypa/pipx"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pypa/dependency-groups"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/dependency-groups"&gt;dependency-groups&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="184501"&gt;&#10; &lt;a href="https://pepy.tech/projects/dependency-groups"&gt;&lt;span class="badge badge-green"&gt;5,535,049/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/dependency-groups"&gt;&lt;span class="badge badge-blue"&gt;1.3.2&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1787366608"&gt;&lt;a href="https://pypi.org/project/dependency-groups/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;2 months ago&lt;span class="tip"&gt;2026-08-22T02:43:28Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793628530"&gt;&lt;a href="https://github.com/pypa/dependency-groups/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;11 days ago&lt;span class="tip"&gt;2026-11-02T14:08:50Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="14"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/pypa/dependency-groups/stargazers"&gt;14&lt;/a&gt; &lt;a href="https://www.star-history.com/#pypa/dependency-groups"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pypa/pyproject-metadata"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/pyproject-metadata"&gt;pyproject-metadata&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="312062"&gt;&#10; &lt;a href="https://pepy.tech/projects/pyproject-metadata"&gt;&lt;span class="badge badge-green"&gt;9,361,875/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/pyproject-metadata"&gt;&lt;span class="badge badge-blue"&gt;0.12.1&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1783131570"&gt;&lt;a href="https://pypi.org/project/pyproject-metadata/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;4 months ago&lt;span class="tip"&gt;2026-07-04T02:19:30Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793821191"&gt;&lt;a href="https://github.com/pypa/pyproject-metadata/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;9 days ago&lt;span class="tip"&gt;2026-11-04T19:39:51Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="44"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/pypa/pyproject-metadata/stargazers"&gt;44&lt;/a&gt; &lt;a href="https://www.star-history.com/#pypa/pyproject-metadata"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pypa/manylinux" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/manylinux"&gt;manylinux&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="0"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794600516"&gt;&lt;a href="https://github.com/pypa/manylinux/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;5 hours ago&lt;span class="tip"&gt;2026-11-13T20:08:36Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1783"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/pypa/manylinux/stargazers"&gt;1,783&lt;/a&gt; &lt;a href="https://www.star-history.com/#pypa/manylinux"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pypa/packaging.python.org"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/packaging.python.org"&gt;Python Packaging User Guide&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="0"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794569317"&gt;&lt;a href="https://github.com/pypa/packaging.python.org/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;14 hours ago&lt;span class="tip"&gt;2026-11-13T11:28:37Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1687"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/pypa/packaging.python.org/stargazers"&gt;1,687&lt;/a&gt; &lt;a href="https://www.star-history.com/#pypa/packaging.python.org"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-build/scikit-build-core"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-build/scikit-build-core"&gt;scikit-build-core&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="303181"&gt;&#10; &lt;a href="https://pepy.tech/projects/scikit-build-core"&gt;&lt;span class="badge badge-green"&gt;9,095,451/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/scikit-build-core"&gt;&lt;span class="badge badge-blue"&gt;1.1.2&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793671959"&gt;&lt;a href="https://pypi.org/project/scikit-build-core/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;10 days ago&lt;span class="tip"&gt;2026-11-03T02:12:39Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794050193"&gt;&lt;a href="https://github.com/scikit-build/scikit-build-core/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;6 days ago&lt;span class="tip"&gt;2026-11-07T11:16:33Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="525"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-build/scikit-build-core/stargazers"&gt;525&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-build/scikit-build-core"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-build/scikit-build"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-build/scikit-build"&gt;scikit-build&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="32059"&gt;&#10; &lt;a href="https://pepy.tech/projects/scikit-build"&gt;&lt;span class="badge badge-green"&gt;961,779/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/scikit-build"&gt;&lt;span class="badge badge-blue"&gt;0.19.1&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1782178744"&gt;&lt;a href="https://pypi.org/project/scikit-build/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;4 months ago&lt;span class="tip"&gt;2026-06-23T01:39:04Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1791301183"&gt;&lt;a href="https://github.com/scikit-build/scikit-build/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;1 month ago&lt;span class="tip"&gt;2026-10-06T15:39:43Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="535"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-build/scikit-build/stargazers"&gt;535&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-build/scikit-build"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-build/dynamic-metadata"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-build/dynamic-metadata"&gt;dynamic-metadata&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="313"&gt;&#10; &lt;a href="https://pepy.tech/projects/dynamic-metadata"&gt;&lt;span class="badge badge-green"&gt;9,390/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/dynamic-metadata"&gt;&lt;span class="badge badge-blue"&gt;0.6.0&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1788307913"&gt;&lt;a href="https://pypi.org/project/dynamic-metadata/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;2 months ago&lt;span class="tip"&gt;2026-09-02T00:11:53Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1791301555"&gt;&lt;a href="https://github.com/scikit-build/dynamic-metadata/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;1 month ago&lt;span class="tip"&gt;2026-10-06T15:45:55Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-build/dynamic-metadata/stargazers"&gt;10&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-build/dynamic-metadata"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-build/cmake-python-distributions"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-build/cmake-python-distributions"&gt;cmake (on PyPI)&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="559092"&gt;&#10; &lt;a href="https://pepy.tech/projects/cmake"&gt;&lt;span class="badge badge-green"&gt;16,772,763/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/cmake"&gt;&lt;span class="badge badge-blue"&gt;4.4.4&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1791104949"&gt;&lt;a href="https://pypi.org/project/cmake/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;1 month ago&lt;span class="tip"&gt;2026-10-04T09:09:09Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793738549"&gt;&lt;a href="https://github.com/scikit-build/cmake-python-distributions/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;10 days ago&lt;span class="tip"&gt;2026-11-03T20:42:29Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="137"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-build/cmake-python-distributions/stargazers"&gt;137&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-build/cmake-python-distributions"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-build/ninja-python-distributions"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-build/ninja-python-distributions"&gt;ninja (on PyPI)&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="936864"&gt;&#10; &lt;a href="https://pepy.tech/projects/ninja"&gt;&lt;span class="badge badge-green"&gt;28,105,925/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/ninja"&gt;&lt;span class="badge badge-blue"&gt;1.13.2&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1788104968"&gt;&lt;a href="https://pypi.org/project/ninja/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;2 months ago&lt;span class="tip"&gt;2026-08-30T15:49:28Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1788275735"&gt;&lt;a href="https://github.com/scikit-build/ninja-python-distributions/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;2 months ago&lt;span class="tip"&gt;2026-09-01T15:15:35Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="90"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-build/ninja-python-distributions/stargazers"&gt;90&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-build/ninja-python-distributions"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-build/moderncmakedomain"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-build/moderncmakedomain"&gt;moderncmakedomain&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="525"&gt;&#10; &lt;a href="https://pepy.tech/projects/sphinxcontrib-moderncmakedomain"&gt;&lt;span class="badge badge-green"&gt;15,758/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/sphinxcontrib-moderncmakedomain"&gt;&lt;span class="badge badge-blue"&gt;4.4.3&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1791390067"&gt;&lt;a href="https://pypi.org/project/sphinxcontrib-moderncmakedomain/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;1 month ago&lt;span class="tip"&gt;2026-10-07T16:21:07Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1791391647"&gt;&lt;a href="https://github.com/scikit-build/moderncmakedomain/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;1 month ago&lt;span class="tip"&gt;2026-10-07T16:47:27Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="33"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-build/moderncmakedomain/stargazers"&gt;33&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-build/moderncmakedomain"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="wntrblm/nox"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/wntrblm/nox"&gt;nox&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="156359"&gt;&#10; &lt;a href="https://pepy.tech/projects/nox"&gt;&lt;span class="badge badge-green"&gt;4,690,776/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/nox"&gt;&lt;span class="badge badge-blue"&gt;2026.10.20&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1792534062"&gt;&lt;a href="https://pypi.org/project/nox/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;24 days ago&lt;span class="tip"&gt;2026-10-20T22:07:42Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794502532"&gt;&lt;a href="https://github.com/wntrblm/nox/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;1 day ago&lt;span class="tip"&gt;2026-11-12T16:55:32Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1565"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/wntrblm/nox/stargazers"&gt;1,565&lt;/a&gt; &lt;a href="https://www.star-history.com/#wntrblm/nox"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="abravalheri/validate-pyproject"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/abravalheri/validate-pyproject"&gt;validate-pyproject&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="9631"&gt;&#10; &lt;a href="https://pepy.tech/projects/validate-pyproject"&gt;&lt;span class="badge badge-green"&gt;288,937/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/validate-pyproject"&gt;&lt;span class="badge badge-blue"&gt;0.27&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1792670147"&gt;&lt;a href="https://pypi.org/project/validate-pyproject/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;22 days ago&lt;span class="tip"&gt;2026-10-22T11:55:47Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793738710"&gt;&lt;a href="https://github.com/abravalheri/validate-pyproject/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;10 days ago&lt;span class="tip"&gt;2026-11-03T20:45:10Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="210"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/abravalheri/validate-pyproject/stargazers"&gt;210&lt;/a&gt; &lt;a href="https://www.star-history.com/#abravalheri/validate-pyproject"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="henryiii/validate-pyproject-schema-store"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/henryiii/validate-pyproject-schema-store"&gt;validate-pyproject-schema-store&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="2431"&gt;&#10; &lt;a href="https://pepy.tech/projects/validate-pyproject-schema-store"&gt;&lt;span class="badge badge-green"&gt;72,948/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/validate-pyproject-schema-store"&gt;&lt;span class="badge badge-blue"&gt;2026.11.13&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794586249"&gt;&lt;a href="https://pypi.org/project/validate-pyproject-schema-store/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;9 hours ago&lt;span class="tip"&gt;2026-11-13T16:10:49Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794586195"&gt;&lt;a href="https://github.com/henryiii/validate-pyproject-schema-store/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;9 hours ago&lt;span class="tip"&gt;2026-11-13T16:09:55Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="8"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/henryiii/validate-pyproject-schema-store/stargazers"&gt;8&lt;/a&gt; &lt;a href="https://www.star-history.com/#henryiii/validate-pyproject-schema-store"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pybind/pybind11"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pybind/pybind11"&gt;pybind11&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="679762"&gt;&#10; &lt;a href="https://pepy.tech/projects/pybind11"&gt;&lt;span class="badge badge-green"&gt;20,392,874/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/pybind11"&gt;&lt;span class="badge badge-blue"&gt;3.1.0&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1786059179"&gt;&lt;a href="https://pypi.org/project/pybind11/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;3 months ago&lt;span class="tip"&gt;2026-08-06T23:32:59Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794608151"&gt;&lt;a href="https://github.com/pybind/pybind11/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;3 hours ago&lt;span class="tip"&gt;2026-11-13T22:15:51Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="18032"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/pybind/pybind11/stargazers"&gt;18,032&lt;/a&gt; &lt;a href="https://www.star-history.com/#pybind/pybind11"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pybind/python_example"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pybind/python_example"&gt;pybind/python_example&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="0"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1791890257"&gt;&lt;a href="https://github.com/pybind/python_example/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;1 month ago&lt;span class="tip"&gt;2026-10-13T11:17:37Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="531"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/pybind/python_example/stargazers"&gt;531&lt;/a&gt; &lt;a href="https://www.star-history.com/#pybind/python_example"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pybind/scikit_build_example"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pybind/scikit_build_example"&gt;pybind/scikit_build_example&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="0"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1791949490"&gt;&lt;a href="https://github.com/pybind/scikit_build_example/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;1 month ago&lt;span class="tip"&gt;2026-10-14T03:44:50Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="147"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/pybind/scikit_build_example/stargazers"&gt;147&lt;/a&gt; &lt;a href="https://www.star-history.com/#pybind/scikit_build_example"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pybind/cuda_example"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pybind/cuda_example"&gt;pybind/cuda_example&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="0"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1791974842"&gt;&lt;a href="https://github.com/pybind/cuda_example/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;1 month ago&lt;span class="tip"&gt;2026-10-14T10:47:22Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="671"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/pybind/cuda_example/stargazers"&gt;671&lt;/a&gt; &lt;a href="https://www.star-history.com/#pybind/cuda_example"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="mesonbuild/meson-python" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/mesonbuild/meson-python"&gt;meson-python&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="329986"&gt;&#10; &lt;a href="https://pepy.tech/projects/meson-python"&gt;&lt;span class="badge badge-green"&gt;9,899,596/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/meson-python"&gt;&lt;span class="badge badge-blue"&gt;0.22.1&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1790896633"&gt;&lt;a href="https://pypi.org/project/meson-python/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;1 month ago&lt;span class="tip"&gt;2026-10-01T23:17:13Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793785417"&gt;&lt;a href="https://github.com/mesonbuild/meson-python/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;9 days ago&lt;span class="tip"&gt;2026-11-04T09:43:37Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="182"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/mesonbuild/meson-python/stargazers"&gt;182&lt;/a&gt; &lt;a href="https://www.star-history.com/#mesonbuild/meson-python"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/boost-histogram"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/boost-histogram"&gt;boost-histogram&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="28774"&gt;&#10; &lt;a href="https://pepy.tech/projects/boost-histogram"&gt;&lt;span class="badge badge-green"&gt;863,242/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/boost-histogram"&gt;&lt;span class="badge badge-blue"&gt;1.8.1&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1788562103"&gt;&lt;a href="https://pypi.org/project/boost-histogram/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;2 months ago&lt;span class="tip"&gt;2026-09-04T22:48:23Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793719148"&gt;&lt;a href="https://github.com/scikit-hep/boost-histogram/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;10 days ago&lt;span class="tip"&gt;2026-11-03T15:19:08Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="165"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-hep/boost-histogram/stargazers"&gt;165&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-hep/boost-histogram"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/hist"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/hist"&gt;hist&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="25468"&gt;&#10; &lt;a href="https://pepy.tech/projects/hist"&gt;&lt;span class="badge badge-green"&gt;764,042/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/hist"&gt;&lt;span class="badge badge-blue"&gt;2.12.1&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793219176"&gt;&lt;a href="https://pypi.org/project/hist/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;16 days ago&lt;span class="tip"&gt;2026-10-28T20:26:16Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794607596"&gt;&lt;a href="https://github.com/scikit-hep/hist/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;3 hours ago&lt;span class="tip"&gt;2026-11-13T22:06:36Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="140"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-hep/hist/stargazers"&gt;140&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-hep/hist"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/uhi"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/uhi"&gt;uhi&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="25239"&gt;&#10; &lt;a href="https://pepy.tech/projects/uhi"&gt;&lt;span class="badge badge-green"&gt;757,194/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/uhi"&gt;&lt;span class="badge badge-blue"&gt;1.2.1&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1791404359"&gt;&lt;a href="https://pypi.org/project/uhi/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;1 month ago&lt;span class="tip"&gt;2026-10-07T20:19:19Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793635357"&gt;&lt;a href="https://github.com/scikit-hep/uhi/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;11 days ago&lt;span class="tip"&gt;2026-11-02T16:02:37Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="22"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-hep/uhi/stargazers"&gt;22&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-hep/uhi"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/iminuit" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/iminuit"&gt;iminuit&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="4396"&gt;&#10; &lt;a href="https://pepy.tech/projects/iminuit"&gt;&lt;span class="badge badge-green"&gt;131,901/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/iminuit"&gt;&lt;span class="badge badge-blue"&gt;2.33.0&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1789662293"&gt;&lt;a href="https://pypi.org/project/iminuit/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;1 month ago&lt;span class="tip"&gt;2026-09-17T16:24:53Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794610107"&gt;&lt;a href="https://github.com/scikit-hep/iminuit/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;2 hours ago&lt;span class="tip"&gt;2026-11-13T22:48:27Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="324"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-hep/iminuit/stargazers"&gt;324&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-hep/iminuit"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/uproot5" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/uproot5"&gt;uproot&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="29756"&gt;&#10; &lt;a href="https://pepy.tech/projects/uproot"&gt;&lt;span class="badge badge-green"&gt;892,682/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/uproot"&gt;&lt;span class="badge badge-blue"&gt;5.7.7&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1791297763"&gt;&lt;a href="https://pypi.org/project/uproot/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;1 month ago&lt;span class="tip"&gt;2026-10-06T14:42:43Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794513153"&gt;&lt;a href="https://github.com/scikit-hep/uproot5/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;1 day ago&lt;span class="tip"&gt;2026-11-12T19:52:33Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="274"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-hep/uproot5/stargazers"&gt;274&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-hep/uproot5"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/vector"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/vector"&gt;vector&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="4318"&gt;&#10; &lt;a href="https://pepy.tech/projects/vector"&gt;&lt;span class="badge badge-green"&gt;129,558/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/vector"&gt;&lt;span class="badge badge-blue"&gt;1.9.0&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1789906588"&gt;&lt;a href="https://pypi.org/project/vector/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;1 month ago&lt;span class="tip"&gt;2026-09-20T12:16:28Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794242258"&gt;&lt;a href="https://github.com/scikit-hep/vector/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;4 days ago&lt;span class="tip"&gt;2026-11-09T16:37:38Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="103"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-hep/vector/stargazers"&gt;103&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-hep/vector"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/uproot-browser"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/uproot-browser"&gt;uproot-browser&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="11"&gt;&#10; &lt;a href="https://pepy.tech/projects/uproot-browser"&gt;&lt;span class="badge badge-green"&gt;335/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/uproot-browser"&gt;&lt;span class="badge badge-blue"&gt;0.11.0&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1792858535"&gt;&lt;a href="https://pypi.org/project/uproot-browser/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;20 days ago&lt;span class="tip"&gt;2026-10-24T16:15:35Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793644353"&gt;&lt;a href="https://github.com/scikit-hep/uproot-browser/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;11 days ago&lt;span class="tip"&gt;2026-11-02T18:32:33Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="78"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-hep/uproot-browser/stargazers"&gt;78&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-hep/uproot-browser"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/particle"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/particle"&gt;particle&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="2083"&gt;&#10; &lt;a href="https://pepy.tech/projects/particle"&gt;&lt;span class="badge badge-green"&gt;62,491/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/particle"&gt;&lt;span class="badge badge-blue"&gt;1.1.0&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793277023"&gt;&lt;a href="https://pypi.org/project/particle/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;15 days ago&lt;span class="tip"&gt;2026-10-29T12:30:23Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794514616"&gt;&lt;a href="https://github.com/scikit-hep/particle/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;1 day ago&lt;span class="tip"&gt;2026-11-12T20:16:56Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="167"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-hep/particle/stargazers"&gt;167&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-hep/particle"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/DecayLanguage"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/DecayLanguage"&gt;DecayLanguage&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="57"&gt;&#10; &lt;a href="https://pepy.tech/projects/decaylanguage"&gt;&lt;span class="badge badge-green"&gt;1,717/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/decaylanguage"&gt;&lt;span class="badge badge-blue"&gt;1.1.3&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793361880"&gt;&lt;a href="https://pypi.org/project/decaylanguage/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;14 days ago&lt;span class="tip"&gt;2026-10-30T12:04:40Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794574250"&gt;&lt;a href="https://github.com/scikit-hep/DecayLanguage/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;12 hours ago&lt;span class="tip"&gt;2026-11-13T12:50:50Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="43"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-hep/DecayLanguage/stargazers"&gt;43&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-hep/DecayLanguage"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scientific-python/repo-review"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scientific-python/repo-review"&gt;repo-review&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="370"&gt;&#10; &lt;a href="https://pepy.tech/projects/repo-review"&gt;&lt;span class="badge badge-green"&gt;11,119/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/repo-review"&gt;&lt;span class="badge badge-blue"&gt;1.3.0&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1792772503"&gt;&lt;a href="https://pypi.org/project/repo-review/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;21 days ago&lt;span class="tip"&gt;2026-10-23T16:21:43Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1792772396"&gt;&lt;a href="https://github.com/scientific-python/repo-review/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;21 days ago&lt;span class="tip"&gt;2026-10-23T16:19:56Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="94"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scientific-python/repo-review/stargazers"&gt;94&lt;/a&gt; &lt;a href="https://www.star-history.com/#scientific-python/repo-review"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/awkward" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/awkward"&gt;awkward&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="50598"&gt;&#10; &lt;a href="https://pepy.tech/projects/awkward"&gt;&lt;span class="badge badge-green"&gt;1,517,945/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/awkward"&gt;&lt;span class="badge badge-blue"&gt;2.15.0&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794516661"&gt;&lt;a href="https://pypi.org/project/awkward/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;1 day ago&lt;span class="tip"&gt;2026-11-12T20:51:01Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794572301"&gt;&lt;a href="https://github.com/scikit-hep/awkward/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;13 hours ago&lt;span class="tip"&gt;2026-11-13T12:18:21Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="990"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scikit-hep/awkward/stargazers"&gt;990&lt;/a&gt; &lt;a href="https://www.star-history.com/#scikit-hep/awkward"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scientific-python/cookie"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scientific-python/cookie"&gt;cookie&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="141"&gt;&#10; &lt;a href="https://pepy.tech/projects/sp-repo-review"&gt;&lt;span class="badge badge-green"&gt;4,242/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/sp-repo-review"&gt;&lt;span class="badge badge-blue"&gt;2026.8.14&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1786728399"&gt;&lt;a href="https://pypi.org/project/sp-repo-review/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;3 months ago&lt;span class="tip"&gt;2026-08-14T17:26:39Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793635417"&gt;&lt;a href="https://github.com/scientific-python/cookie/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;11 days ago&lt;span class="tip"&gt;2026-11-02T16:03:37Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="415"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/scientific-python/cookie/stargazers"&gt;415&lt;/a&gt; &lt;a href="https://www.star-history.com/#scientific-python/cookie"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="tomerfiliba/plumbum"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/tomerfiliba/plumbum"&gt;plumbum&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="236470"&gt;&#10; &lt;a href="https://pepy.tech/projects/plumbum"&gt;&lt;span class="badge badge-green"&gt;7,094,113/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/plumbum"&gt;&lt;span class="badge badge-blue"&gt;2.0.2&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1784693590"&gt;&lt;a href="https://pypi.org/project/plumbum/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;3 months ago&lt;span class="tip"&gt;2026-07-22T04:13:10Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794004518"&gt;&lt;a href="https://github.com/tomerfiliba/plumbum/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;7 days ago&lt;span class="tip"&gt;2026-11-06T22:35:18Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="3058"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/tomerfiliba/plumbum/stargazers"&gt;3,058&lt;/a&gt; &lt;a href="https://www.star-history.com/#tomerfiliba/plumbum"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="henryiii/flake8-errmsg"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/henryiii/flake8-errmsg"&gt;flake8-errmsg&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="470"&gt;&#10; &lt;a href="https://pepy.tech/projects/flake8-errmsg"&gt;&lt;span class="badge badge-green"&gt;14,104/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/flake8-errmsg"&gt;&lt;span class="badge badge-blue"&gt;0.7.0&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1781794561"&gt;&lt;a href="https://pypi.org/project/flake8-errmsg/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;4 months ago&lt;span class="tip"&gt;2026-06-18T14:56:01Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1790985977"&gt;&lt;a href="https://github.com/henryiii/flake8-errmsg/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;1 month ago&lt;span class="tip"&gt;2026-10-03T00:06:17Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="19"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/henryiii/flake8-errmsg/stargazers"&gt;19&lt;/a&gt; &lt;a href="https://www.star-history.com/#henryiii/flake8-errmsg"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="henryiii/flake8-lazy"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/henryiii/flake8-lazy"&gt;flake8-lazy&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="32"&gt;&#10; &lt;a href="https://pepy.tech/projects/flake8-lazy"&gt;&lt;span class="badge badge-green"&gt;967/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/flake8-lazy"&gt;&lt;span class="badge badge-blue"&gt;0.11.0&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793749073"&gt;&lt;a href="https://pypi.org/project/flake8-lazy/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;10 days ago&lt;span class="tip"&gt;2026-11-03T23:37:53Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793748508"&gt;&lt;a href="https://github.com/henryiii/flake8-lazy/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;10 days ago&lt;span class="tip"&gt;2026-11-03T23:28:28Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="25"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/henryiii/flake8-lazy/stargazers"&gt;25&lt;/a&gt; &lt;a href="https://www.star-history.com/#henryiii/flake8-lazy"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="henryiii/check-sdist"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/henryiii/check-sdist"&gt;check-sdist&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="591"&gt;&#10; &lt;a href="https://pepy.tech/projects/check-sdist"&gt;&lt;span class="badge badge-green"&gt;17,758/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/check-sdist"&gt;&lt;span class="badge badge-blue"&gt;1.6.0&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1785960829"&gt;&lt;a href="https://pypi.org/project/check-sdist/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;3 months ago&lt;span class="tip"&gt;2026-08-05T20:13:49Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793538837"&gt;&lt;a href="https://github.com/henryiii/check-sdist/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;12 days ago&lt;span class="tip"&gt;2026-11-01T13:13:57Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="12"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/henryiii/check-sdist/stargazers"&gt;12&lt;/a&gt; &lt;a href="https://www.star-history.com/#henryiii/check-sdist"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="PelicanPlatform/pelicanfs" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/PelicanPlatform/pelicanfs"&gt;pelicanfs&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="75"&gt;&#10; &lt;a href="https://pepy.tech/projects/pelicanfs"&gt;&lt;span class="badge badge-green"&gt;2,254/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/pelicanfs"&gt;&lt;span class="badge badge-blue"&gt;1.5.0&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1791492454"&gt;&lt;a href="https://pypi.org/project/pelicanfs/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;1 month ago&lt;span class="tip"&gt;2026-10-08T20:47:34Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794583054"&gt;&lt;a href="https://github.com/PelicanPlatform/pelicanfs/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;10 hours ago&lt;span class="tip"&gt;2026-11-13T15:17:34Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="5"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/PelicanPlatform/pelicanfs/stargazers"&gt;5&lt;/a&gt; &lt;a href="https://www.star-history.com/#PelicanPlatform/pelicanfs"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pytest-dev/pytest-github-actions-annotate-failures"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pytest-dev/pytest-github-actions-annotate-failures"&gt;pytest GHA annotate-failures&lt;/a&gt;&lt;/td&gt;&lt;td class="dl-cell col-data" data-value="132197"&gt;&#10; &lt;a href="https://pepy.tech/projects/pytest-github-actions-annotate-failures"&gt;&lt;span class="badge badge-green"&gt;3,965,926/mo&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://pypi.org/project/pytest-github-actions-annotate-failures"&gt;&lt;span class="badge badge-blue"&gt;0.4.2&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1781884756"&gt;&lt;a href="https://pypi.org/project/pytest-github-actions-annotate-failures/#history"&gt;&lt;span class="badge badge-green has-tip"&gt;4 months ago&lt;span class="tip"&gt;2026-06-19T15:59:16Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1793495429"&gt;&lt;a href="https://github.com/pytest-dev/pytest-github-actions-annotate-failures/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;13 days ago&lt;span class="tip"&gt;2026-11-01T01:10:29Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="185"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/pytest-dev/pytest-github-actions-annotate-failures/stargazers"&gt;185&lt;/a&gt; &lt;a href="https://www.star-history.com/#pytest-dev/pytest-github-actions-annotate-failures"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="goofit/GooFit" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/goofit/GooFit"&gt;GooFit&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://github.com/goofit/GooFit/releases"&gt;&lt;span class="badge badge-blue"&gt;2.3.0&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1653299647"&gt;&lt;a href="https://github.com/goofit/GooFit/releases"&gt;&lt;span class="badge badge-red has-tip"&gt;4 years ago&lt;span class="tip"&gt;2022-05-23T09:54:07Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1787014117"&gt;&lt;a href="https://github.com/goofit/GooFit/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;2 months ago&lt;span class="tip"&gt;2026-08-18T00:48:37Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="145"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/goofit/GooFit/stargazers"&gt;145&lt;/a&gt; &lt;a href="https://www.star-history.com/#goofit/GooFit"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="CLIUtils/CLI11"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/CLIUtils/CLI11"&gt;CLI11&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://github.com/CLIUtils/CLI11/releases"&gt;&lt;span class="badge badge-blue"&gt;2.7.2&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1785679957"&gt;&lt;a href="https://github.com/CLIUtils/CLI11/releases"&gt;&lt;span class="badge badge-green has-tip"&gt;3 months ago&lt;span class="tip"&gt;2026-08-02T14:12:37Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1792713118"&gt;&lt;a href="https://github.com/CLIUtils/CLI11/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;22 days ago&lt;span class="tip"&gt;2026-10-22T23:51:58Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="4520"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/CLIUtils/CLI11/stargazers"&gt;4,520&lt;/a&gt; &lt;a href="https://www.star-history.com/#CLIUtils/CLI11"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="iris-hep/jekyll-indico"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/iris-hep/jekyll-indico"&gt;jekyll-indico&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://github.com/iris-hep/jekyll-indico/releases"&gt;&lt;span class="badge badge-blue"&gt;0.4.5&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1643814650"&gt;&lt;a href="https://github.com/iris-hep/jekyll-indico/releases"&gt;&lt;span class="badge badge-red has-tip"&gt;4 years ago&lt;span class="tip"&gt;2022-02-02T15:10:50Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1788322024"&gt;&lt;a href="https://github.com/iris-hep/jekyll-indico/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;2 months ago&lt;span class="tip"&gt;2026-09-02T04:07:04Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/iris-hep/jekyll-indico/stargazers"&gt;1&lt;/a&gt; &lt;a href="https://www.star-history.com/#iris-hep/jekyll-indico"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="halogenica/beautifulhugo"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/halogenica/beautifulhugo"&gt;beautifulhugo&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;a href="https://github.com/halogenica/beautifulhugo/releases"&gt;&lt;span class="badge badge-blue"&gt;5.2.1&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794589502"&gt;&lt;a href="https://github.com/halogenica/beautifulhugo/releases"&gt;&lt;span class="badge badge-green has-tip"&gt;8 hours ago&lt;span class="tip"&gt;2026-11-13T17:05:02Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1794589217"&gt;&lt;a href="https://github.com/halogenica/beautifulhugo/commits"&gt;&lt;span class="badge badge-green has-tip"&gt;8 hours ago&lt;span class="tip"&gt;2026-11-13T17:00:17Z&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="1239"&gt;&#10; &lt;span class="badge badge-yellow"&gt;&lt;a href="https://github.com/halogenica/beautifulhugo/stargazers"&gt;1,239&lt;/a&gt; &lt;a href="https://www.star-history.com/#halogenica/beautifulhugo"&gt;★&lt;/a&gt;&lt;/span&gt;&#10; &lt;/td&gt;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10; &lt;tfoot&gt;&#10; &lt;tr&gt;&lt;th data-sort="name"&gt;Name&lt;/th&gt;&lt;th class="col-data" data-sort="downloads"&gt;Downloads&lt;/th&gt;&lt;th class="col-data"&gt;Version&lt;/th&gt;&lt;th class="col-data" data-sort="date"&gt;Release&lt;/th&gt;&lt;th class="col-data" data-sort="date"&gt;Last Commit&lt;/th&gt;&lt;th class="col-data" data-sort="stars"&gt;Stars&lt;/th&gt;&lt;/tr&gt;&#10; &lt;/tfoot&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;script src="https://iscinumpy.dev/js/project-table.js" defer&gt;&lt;/script&gt;&#10;&lt;/div&gt;&#10;&lt;div&#10; class="tab-pane fade"&#10; id="tabs-auto-1-pane-2"&#10; role="tabpanel"&#10; aria-labelledby="tabs-auto-1-pane-2-tab"&#10; tabindex="0"&gt;&lt;div class="project-table-wrapper"&gt;&#10;&lt;table class="project-table"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&lt;th data-sort="name"&gt;Name&lt;/th&gt;&lt;th class="col-data" data-sort="python" title="Supported Python versions (from PyPI classifiers)"&gt;Python&lt;/th&gt;&lt;th class="col-data" data-sort="hooks" title="pre-commit hooks"&gt;Hooks&lt;/th&gt;&lt;th class="col-data" data-sort="issues" title="Issues/Pull Requests"&gt;Issues/PRs&lt;/th&gt;&lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10;&lt;tr data-project="pypa/packaging"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/packaging"&gt;packaging&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="9"&gt;&#10; &lt;a href="https://pypi.org/project/packaging"&gt;&lt;span class="badge badge-blue"&gt;3.9&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="17"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-toml&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;f368fb366ff7f2f808dd324b83a6d32267799e19&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;flake8-lazy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/flake8-lazy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;2db69f40494cc912ede966160695ede82eb6ebac&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3a6eb0fadf60b3cccfd80bad9dbb6fae7e47b316&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;2834ec6639549dd6796205c8f011dedcd587288b&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;typos&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/crate-ci/typos&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;7f9d0819ca1c008ade73f4b41fa9d258d48f605b&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;c92afdf2c6ca336aaa8f39e2bd8d48f62dbd8e1f&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-dependabot&amp;#34;,&amp;#34;check-github-workflows&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;0494aa7fa1314e98913a41227d8f0a515b2c1049&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-frozen-revs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;}]" data-config-url="https://github.com/pypa/packaging/blob/main/.pre-commit-config.yaml"&gt;17&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="105"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/pypa/packaging/issues"&gt;58&lt;/a&gt;/&lt;a href="https://github.com/pypa/packaging/pulls"&gt;47&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pypa/cibuildwheel"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/cibuildwheel"&gt;cibuildwheel&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="11"&gt;&#10; &lt;a href="https://pypi.org/project/cibuildwheel"&gt;&lt;span class="badge badge-blue"&gt;3.11&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="24"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;check-toml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;25bcf95026b96e2dd3c0aec3090c3d6ef6ca2e6c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;,&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;ad26ebfa797fcb9b8f83275937c1c1d6e126719c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;shellcheck&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/shellcheck-py/shellcheck-py&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;a6564f5d57444e123433a5c9af733e3975c77229&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;,&amp;#34;cog&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;flake8-lazy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/flake8-lazy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;2db69f40494cc912ede966160695ede82eb6ebac&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-dependabot&amp;#34;,&amp;#34;check-github-actions&amp;#34;,&amp;#34;check-github-workflows&amp;#34;,&amp;#34;check-gitlab-ci&amp;#34;,&amp;#34;check-readthedocs&amp;#34;,&amp;#34;check-jsonschema&amp;#34;,&amp;#34;check-metaschema&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;39478bf2c099a58683d3f1aedf675105318b078d&amp;#34;}]" data-config-url="https://github.com/pypa/cibuildwheel/blob/main/.pre-commit-config.yaml"&gt;24&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="89"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/pypa/cibuildwheel/issues"&gt;68&lt;/a&gt;/&lt;a href="https://github.com/pypa/cibuildwheel/pulls"&gt;21&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pypa/build"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/build"&gt;build&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/build"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="24"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-ast&amp;#34;,&amp;#34;check-builtin-literals&amp;#34;,&amp;#34;check-docstring-first&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;check-toml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;validate-pyproject&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/abravalheri/validate-pyproject&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;82d21874c3242e4dc27bb47641c996902ef64eef&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;blacken-docs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/adamchainz/blacken-docs&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;dda8db18cfc68df532abf33b185ecd12d5b7b326&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;yamlfmt&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/google/yamlfmt&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;b5ca1890231d5e1e5181fef75a1be609d1e25029&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mdformat&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;docstrfmt&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/LilSpazJoekp/docstrfmt&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;c1813841673cdcd6cf602dde1edb78a5d5e45235&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;c0f278f1254ccc8fb09676bcdb8d847e7db493e5&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;flake8-lazy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/flake8-lazy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;7f268b3b3aaf7feca756ca610e37971382976365&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3a6eb0fadf60b3cccfd80bad9dbb6fae7e47b316&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;06a39750ec31860bb44f2acf67182c40016cd1e7&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;changelog-filenames&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-sdist&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/check-sdist&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;5230295f53448dcfc8cc4a9eb00cc776ca92f964&amp;#34;}]" data-config-url="https://github.com/pypa/build/blob/main/.pre-commit-config.yaml"&gt;24&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="17"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/pypa/build/issues"&gt;10&lt;/a&gt;/&lt;a href="https://github.com/pypa/build/pulls"&gt;7&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pypa/pipx" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/pipx"&gt;pipx&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="11"&gt;&#10; &lt;a href="https://pypi.org/project/pipx"&gt;&lt;span class="badge badge-blue"&gt;3.11&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="15"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;check-added-large-files&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-case-conflict&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;yamlfmt&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/google/yamlfmt&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;21ca5323a9c87ee37a434e0ca908efc0a89daa07&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-github-workflows&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;a76b92851fc9eede9f9bc4073eb55202f34eb0df&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mdformat&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/hukkin/mdformat&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;82912cdaea4fb830f751504486a7879c70526547&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;pyproject-fmt&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/tox-dev/pyproject-fmt&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;50e0f3aee9dc5747a5f173f79a7417403c18dda6&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;25bcf95026b96e2dd3c0aec3090c3d6ef6ca2e6c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;simplint&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/gaborbernat/simplint-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;a12d8eaac290be24041a3e2778c636c56453722e&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;25bcf95026b96e2dd3c0aec3090c3d6ef6ca2e6c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;flake8-lazy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/flake8-lazy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;2db69f40494cc912ede966160695ede82eb6ebac&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;docstrfmt&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/LilSpazJoekp/docstrfmt&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;c1813841673cdcd6cf602dde1edb78a5d5e45235&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;}]" data-config-url="https://github.com/pypa/pipx/blob/main/.pre-commit-config.yaml"&gt;15&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="11"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/pypa/pipx/issues"&gt;5&lt;/a&gt;/&lt;a href="https://github.com/pypa/pipx/pulls"&gt;6&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pypa/dependency-groups"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/dependency-groups"&gt;dependency-groups&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="9"&gt;&#10; &lt;a href="https://pypi.org/project/dependency-groups"&gt;&lt;span class="badge badge-blue"&gt;3.9&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;lint-dependency-groups&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/sirosen/dependency-groups&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1.3.1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-github-workflows&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;0.37.4&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;flake8&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/PyCQA/flake8&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;7.3.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.16.1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;slyp&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/sirosen/slyp&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;0.9.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-sdist&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/check-sdist&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.5.0&amp;#34;}]" data-config-url="https://github.com/pypa/dependency-groups/blob/main/.pre-commit-config.yaml"&gt;10&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="3"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/pypa/dependency-groups/issues"&gt;3&lt;/a&gt;/&lt;a href="https://github.com/pypa/dependency-groups/pulls"&gt;0&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pypa/pyproject-metadata"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/pyproject-metadata"&gt;pyproject-metadata&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="8"&gt;&#10; &lt;a href="https://pypi.org/project/pyproject-metadata"&gt;&lt;span class="badge badge-blue"&gt;3.8&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="26"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-ast&amp;#34;,&amp;#34;check-builtin-literals&amp;#34;,&amp;#34;check-docstring-first&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;check-toml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;25bcf95026b96e2dd3c0aec3090c3d6ef6ca2e6c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3a6eb0fadf60b3cccfd80bad9dbb6fae7e47b316&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;blacken-docs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/adamchainz/blacken-docs&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;dda8db18cfc68df532abf33b185ecd12d5b7b326&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;prettier&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/rbubley/mirrors-prettier&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;331f33fa4dfbcbca7c3da3620c137fde0faab273&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-sdist&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/check-sdist&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;5230295f53448dcfc8cc4a9eb00cc776ca92f964&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;shellcheck&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/shellcheck-py/shellcheck-py&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;a6564f5d57444e123433a5c9af733e3975c77229&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;validate-pyproject&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/validate-pyproject-schema-store&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1f2b6ab5a6189525ce4ac4db58c2c1cb5c7ca48c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-dependabot&amp;#34;,&amp;#34;check-github-workflows&amp;#34;,&amp;#34;check-readthedocs&amp;#34;,&amp;#34;check-metaschema&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;39478bf2c099a58683d3f1aedf675105318b078d&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;c92afdf2c6ca336aaa8f39e2bd8d48f62dbd8e1f&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;sp-repo-review&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/scientific-python/cookie&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1589a99867d6cac494ac7545fe6a83108580a3ee&amp;#34;}]" data-config-url="https://github.com/pypa/pyproject-metadata/blob/main/.pre-commit-config.yaml"&gt;26&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="12"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/pypa/pyproject-metadata/issues"&gt;7&lt;/a&gt;/&lt;a href="https://github.com/pypa/pyproject-metadata/pulls"&gt;5&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pypa/manylinux" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/manylinux"&gt;manylinux&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="15"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;check-toml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;shellcheck&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/shellcheck-py/shellcheck-py&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;a6564f5d57444e123433a5c9af733e3975c77229&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;,&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;f368fb366ff7f2f808dd324b83a6d32267799e19&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;c92afdf2c6ca336aaa8f39e2bd8d48f62dbd8e1f&amp;#34;}]" data-config-url="https://github.com/pypa/manylinux/blob/main/.pre-commit-config.yaml"&gt;15&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/pypa/manylinux/issues"&gt;7&lt;/a&gt;/&lt;a href="https://github.com/pypa/manylinux/pulls"&gt;3&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pypa/packaging.python.org"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pypa/packaging.python.org"&gt;Python Packaging User Guide&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="15"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.10.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.16.10&amp;#34;}]" data-config-url="https://github.com/pypa/packaging.python.org/blob/main/.pre-commit-config.yaml"&gt;15&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="135"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/pypa/packaging.python.org/issues"&gt;91&lt;/a&gt;/&lt;a href="https://github.com/pypa/packaging.python.org/pulls"&gt;44&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-build/scikit-build-core"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-build/scikit-build-core"&gt;scikit-build-core&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="9"&gt;&#10; &lt;a href="https://pypi.org/project/scikit-build-core"&gt;&lt;span class="badge badge-blue"&gt;3.9&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="35"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;name-tests-test&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;25bcf95026b96e2dd3c0aec3090c3d6ef6ca2e6c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;flake8-lazy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/flake8-lazy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;2db69f40494cc912ede966160695ede82eb6ebac&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3a6eb0fadf60b3cccfd80bad9dbb6fae7e47b316&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;blacken-docs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/adamchainz/blacken-docs&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;dda8db18cfc68df532abf33b185ecd12d5b7b326&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;cmake-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/cheshirekow/cmake-format-precommit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;e2c2116d86a80e72e7146a06e68b7c228afc6319&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;prettier&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/rbubley/mirrors-prettier&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;331f33fa4dfbcbca7c3da3620c137fde0faab273&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;ad26ebfa797fcb9b8f83275937c1c1d6e126719c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-sdist&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/check-sdist&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;5230295f53448dcfc8cc4a9eb00cc776ca92f964&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;typos&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/crate-ci/typos&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;dd369349b73c245acd4dd4154a4bdf771d052150&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;shellcheck&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/shellcheck-py/shellcheck-py&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;a6564f5d57444e123433a5c9af733e3975c77229&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;,&amp;#34;disallow-emdash&amp;#34;,&amp;#34;disallow-expressions&amp;#34;,&amp;#34;cog&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;validate-pyproject&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/validate-pyproject-schema-store&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1f2b6ab5a6189525ce4ac4db58c2c1cb5c7ca48c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-dependabot&amp;#34;,&amp;#34;check-github-workflows&amp;#34;,&amp;#34;check-readthedocs&amp;#34;,&amp;#34;check-metaschema&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;39478bf2c099a58683d3f1aedf675105318b078d&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;validate-cff&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/citation-file-format/cffconvert&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;b6045d78aac9e02b039703b030588d54d53262ac&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;c92afdf2c6ca336aaa8f39e2bd8d48f62dbd8e1f&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;sp-repo-review&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/scientific-python/cookie&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1589a99867d6cac494ac7545fe6a83108580a3ee&amp;#34;}]" data-config-url="https://github.com/scikit-build/scikit-build-core/blob/main/.pre-commit-config.yaml"&gt;35&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="46"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-build/scikit-build-core/issues"&gt;29&lt;/a&gt;/&lt;a href="https://github.com/scikit-build/scikit-build-core/pulls"&gt;17&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-build/scikit-build"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-build/scikit-build"&gt;scikit-build&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="8"&gt;&#10; &lt;a href="https://pypi.org/project/scikit-build"&gt;&lt;span class="badge badge-blue"&gt;3.8&amp;ndash;3.14&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="23"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-toml&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;fix-ligatures&amp;#34;,&amp;#34;fix-smartquotes&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/sirosen/texthooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;815307a61a62d48c84412f34f3e6789a2cd9179a&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;blacken-docs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/adamchainz/blacken-docs&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;dda8db18cfc68df532abf33b185ecd12d5b7b326&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;f12be1ebaa5351c1fc76472de98db2c3446c8253&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3a6eb0fadf60b3cccfd80bad9dbb6fae7e47b316&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-sdist&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/check-sdist&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;5230295f53448dcfc8cc4a9eb00cc776ca92f964&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;fa412071e4f5d44d44f9e365f4676f9df92456a2&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;2834ec6639549dd6796205c8f011dedcd587288b&amp;#34;}]" data-config-url="https://github.com/scikit-build/scikit-build/blob/main/.pre-commit-config.yaml"&gt;23&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="2"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-build/scikit-build/issues"&gt;0&lt;/a&gt;/&lt;a href="https://github.com/scikit-build/scikit-build/pulls"&gt;2&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-build/dynamic-metadata"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-build/dynamic-metadata"&gt;dynamic-metadata&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="8"&gt;&#10; &lt;a href="https://pypi.org/project/dynamic-metadata"&gt;&lt;span class="badge badge-blue"&gt;3.8&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="24"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;name-tests-test&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3a6eb0fadf60b3cccfd80bad9dbb6fae7e47b316&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;prettier&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/rbubley/mirrors-prettier&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;ef4a397f916211b4a39ccf9d3d9cbb6562157251&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;blacken-docs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/adamchainz/blacken-docs&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;dda8db18cfc68df532abf33b185ecd12d5b7b326&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;f12be1ebaa5351c1fc76472de98db2c3446c8253&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;2834ec6639549dd6796205c8f011dedcd587288b&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-sdist&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/check-sdist&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;5230295f53448dcfc8cc4a9eb00cc776ca92f964&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;shellcheck&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/shellcheck-py/shellcheck-py&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;a6564f5d57444e123433a5c9af733e3975c77229&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;fa412071e4f5d44d44f9e365f4676f9df92456a2&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;}]" data-config-url="https://github.com/scikit-build/dynamic-metadata/blob/main/.pre-commit-config.yaml"&gt;24&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="2"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-build/dynamic-metadata/issues"&gt;0&lt;/a&gt;/&lt;a href="https://github.com/scikit-build/dynamic-metadata/pulls"&gt;2&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-build/cmake-python-distributions"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-build/cmake-python-distributions"&gt;cmake (on PyPI)&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="8"&gt;&#10; &lt;a href="https://pypi.org/project/cmake"&gt;&lt;span class="badge badge-blue"&gt;3.8+&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="12"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;25bcf95026b96e2dd3c0aec3090c3d6ef6ca2e6c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;ad26ebfa797fcb9b8f83275937c1c1d6e126719c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;c92afdf2c6ca336aaa8f39e2bd8d48f62dbd8e1f&amp;#34;}]" data-config-url="https://github.com/scikit-build/cmake-python-distributions/blob/main/.pre-commit-config.yaml"&gt;12&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="24"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-build/cmake-python-distributions/issues"&gt;21&lt;/a&gt;/&lt;a href="https://github.com/scikit-build/cmake-python-distributions/pulls"&gt;3&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-build/ninja-python-distributions"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-build/ninja-python-distributions"&gt;ninja (on PyPI)&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="8"&gt;&#10; &lt;a href="https://pypi.org/project/ninja"&gt;&lt;span class="badge badge-blue"&gt;3.8+&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="16"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1f1e8bf348ff38fc88619a38d3ca4d9c56abea49&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;7ff8d35ae36a7d2b968f2f90b4c723e292e594ee&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;validate-pyproject&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/abravalheri/validate-pyproject&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;17e12779811926f000bdfa1795f9e3735dd71ac3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-dependabot&amp;#34;,&amp;#34;check-github-workflows&amp;#34;,&amp;#34;check-readthedocs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;c4654a7e007c9619a5eb63c39a456572a0fa1851&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;cef8b8350da46d8114c7e6b7272aebdccdf193ce&amp;#34;}]" data-config-url="https://github.com/scikit-build/ninja-python-distributions/blob/master/.pre-commit-config.yaml"&gt;16&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="5"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-build/ninja-python-distributions/issues"&gt;1&lt;/a&gt;/&lt;a href="https://github.com/scikit-build/ninja-python-distributions/pulls"&gt;4&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-build/moderncmakedomain"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-build/moderncmakedomain"&gt;moderncmakedomain&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/sphinxcontrib-moderncmakedomain"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="18"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;name-tests-test&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;f12be1ebaa5351c1fc76472de98db2c3446c8253&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;validate-pyproject&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/validate-pyproject-schema-store&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;ae9c8c7039f4ec4ae005660c80dbcb954f61da5a&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-dependabot&amp;#34;,&amp;#34;check-github-workflows&amp;#34;,&amp;#34;check-readthedocs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;4f85d46a92dc17713078e5de73f8a13190edf6fc&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;fa412071e4f5d44d44f9e365f4676f9df92456a2&amp;#34;}]" data-config-url="https://github.com/scikit-build/moderncmakedomain/blob/main/.pre-commit-config.yaml"&gt;18&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="6"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-build/moderncmakedomain/issues"&gt;3&lt;/a&gt;/&lt;a href="https://github.com/scikit-build/moderncmakedomain/pulls"&gt;3&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="wntrblm/nox"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/wntrblm/nox"&gt;nox&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/nox"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="21"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;flake8-lazy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/flake8-lazy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.10.1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;pyproject-fmt&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/tox-dev/pyproject-fmt&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.26.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.17.2&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;python-no-eval&amp;#34;,&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.10.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.31.1&amp;#34;}]" data-config-url="https://github.com/wntrblm/nox/blob/main/.pre-commit-config.yaml"&gt;21&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="83"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/wntrblm/nox/issues"&gt;58&lt;/a&gt;/&lt;a href="https://github.com/wntrblm/nox/pulls"&gt;25&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="abravalheri/validate-pyproject"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/abravalheri/validate-pyproject"&gt;validate-pyproject&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/validate-pyproject"&gt;&lt;span class="badge badge-blue"&gt;3.10+&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="25"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-ast&amp;#34;,&amp;#34;check-json&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-toml&amp;#34;,&amp;#34;check-xml&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.17.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;blacken-docs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/adamchainz/blacken-docs&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1.20.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.10.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;validate-pyproject&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-metaschema&amp;#34;,&amp;#34;check-readthedocs&amp;#34;,&amp;#34;check-github-workflows&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;0.39.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;sp-repo-review&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/scientific-python/cookie&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;2026.08.14&amp;#34;}]" data-config-url="https://github.com/abravalheri/validate-pyproject/blob/main/.pre-commit-config.yaml"&gt;25&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/abravalheri/validate-pyproject/issues"&gt;6&lt;/a&gt;/&lt;a href="https://github.com/abravalheri/validate-pyproject/pulls"&gt;4&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="henryiii/validate-pyproject-schema-store"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/henryiii/validate-pyproject-schema-store"&gt;validate-pyproject-schema-store&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/validate-pyproject-schema-store"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="24"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;name-tests-test&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;prettier&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/rbubley/mirrors-prettier&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;331f33fa4dfbcbca7c3da3620c137fde0faab273&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;25bcf95026b96e2dd3c0aec3090c3d6ef6ca2e6c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;ad26ebfa797fcb9b8f83275937c1c1d6e126719c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;shellcheck&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/shellcheck-py/shellcheck-py&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;a6564f5d57444e123433a5c9af733e3975c77229&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;validate-pyproject&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/abravalheri/validate-pyproject&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;82d21874c3242e4dc27bb47641c996902ef64eef&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-dependabot&amp;#34;,&amp;#34;check-github-workflows&amp;#34;,&amp;#34;check-readthedocs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;39478bf2c099a58683d3f1aedf675105318b078d&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;c92afdf2c6ca336aaa8f39e2bd8d48f62dbd8e1f&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;sp-repo-review&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/scientific-python/cookie&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1589a99867d6cac494ac7545fe6a83108580a3ee&amp;#34;}]" data-config-url="https://github.com/henryiii/validate-pyproject-schema-store/blob/main/.pre-commit-config.yaml"&gt;24&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="4"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/henryiii/validate-pyproject-schema-store/issues"&gt;4&lt;/a&gt;/&lt;a href="https://github.com/henryiii/validate-pyproject-schema-store/pulls"&gt;0&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pybind/pybind11"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pybind/pybind11"&gt;pybind11&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="9"&gt;&#10; &lt;a href="https://pypi.org/project/pybind11"&gt;&lt;span class="badge badge-blue"&gt;3.9&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="33"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;clang-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-clang-format&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v23.1.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.17.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;cmake-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/cheshirekow/cmake-format-precommit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.6.13&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-docstring-first&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-toml&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;blacken-docs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/adamchainz/blacken-docs&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1.20.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;remove-tabs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/Lucas-C/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.5.6&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;fix-ligatures&amp;#34;,&amp;#34;fix-smartquotes&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/sirosen/texthooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.10.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;typos&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/adhtruong/mirrors-typos&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.51.1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;shellcheck&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/shellcheck-py/shellcheck-py&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.11.0.1-1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;,&amp;#34;check-inl-headers&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;pylint&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/PyCQA/pylint&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v4.1.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-readthedocs&amp;#34;,&amp;#34;check-github-workflows&amp;#34;,&amp;#34;check-dependabot&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;0.39.0&amp;#34;}]" data-config-url="https://github.com/pybind/pybind11/blob/master/.pre-commit-config.yaml"&gt;33&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="621"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/pybind/pybind11/issues"&gt;521&lt;/a&gt;/&lt;a href="https://github.com/pybind/pybind11/pulls"&gt;100&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pybind/python_example"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pybind/python_example"&gt;pybind/python_example&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="13"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.17.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;remove-tabs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/Lucas-C/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.5.6&amp;#34;}]" data-config-url="https://github.com/pybind/python_example/blob/master/.pre-commit-config.yaml"&gt;13&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="19"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/pybind/python_example/issues"&gt;17&lt;/a&gt;/&lt;a href="https://github.com/pybind/python_example/pulls"&gt;2&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pybind/scikit_build_example"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pybind/scikit_build_example"&gt;pybind/scikit_build_example&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="14"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.17.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;remove-tabs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/Lucas-C/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.5.6&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;cmake-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/cheshirekow/cmake-format-precommit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.6.13&amp;#34;}]" data-config-url="https://github.com/pybind/scikit_build_example/blob/master/.pre-commit-config.yaml"&gt;14&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="13"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/pybind/scikit_build_example/issues"&gt;10&lt;/a&gt;/&lt;a href="https://github.com/pybind/scikit_build_example/pulls"&gt;3&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pybind/cuda_example"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pybind/cuda_example"&gt;pybind/cuda_example&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="13"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.17.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;remove-tabs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/Lucas-C/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.5.6&amp;#34;}]" data-config-url="https://github.com/pybind/cuda_example/blob/master/.pre-commit-config.yaml"&gt;13&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="21"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/pybind/cuda_example/issues"&gt;19&lt;/a&gt;/&lt;a href="https://github.com/pybind/cuda_example/pulls"&gt;2&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="mesonbuild/meson-python" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/mesonbuild/meson-python"&gt;meson-python&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/meson-python"&gt;&lt;span class="badge badge-blue"&gt;3.10+&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="12"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-ast&amp;#34;,&amp;#34;check-builtin-literals&amp;#34;,&amp;#34;check-docstring-first&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;check-toml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v5.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.6.9&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;reuse&amp;#34;,&amp;#34;reuse&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/fsfe/reuse-tool&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v4.0.3&amp;#34;}]" data-config-url="https://github.com/mesonbuild/meson-python/blob/main/.pre-commit-config.yaml"&gt;12&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="52"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/mesonbuild/meson-python/issues"&gt;39&lt;/a&gt;/&lt;a href="https://github.com/mesonbuild/meson-python/pulls"&gt;13&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/boost-histogram"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/boost-histogram"&gt;boost-histogram&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/boost-histogram"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="24"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;blacken-docs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/adamchainz/blacken-docs&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1.20.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;cmake-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/cheshirekow/cmake-format-precommit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.6.13&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;prettier&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/rbubley/mirrors-prettier&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v3.9.10&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.17.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;clang-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-clang-format&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v23.1.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.10.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-readthedocs&amp;#34;,&amp;#34;check-github-workflows&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;0.39.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;validate-pyproject&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/validate-pyproject-schema-store&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;2026.10.30&amp;#34;}]" data-config-url="https://github.com/scikit-hep/boost-histogram/blob/develop/.pre-commit-config.yaml"&gt;24&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="29"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-hep/boost-histogram/issues"&gt;19&lt;/a&gt;/&lt;a href="https://github.com/scikit-hep/boost-histogram/pulls"&gt;10&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/hist"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/hist"&gt;hist&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/hist"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="21"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;blacken-docs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/adamchainz/blacken-docs&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1.20.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.17.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;python-use-type-annotations&amp;#34;,&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.10.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;shellcheck&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/shellcheck-py/shellcheck-py&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.11.0.1-1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;flake8-lazy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/flake8-lazy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.10.1&amp;#34;}]" data-config-url="https://github.com/scikit-hep/hist/blob/main/.pre-commit-config.yaml"&gt;21&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="72"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-hep/hist/issues"&gt;61&lt;/a&gt;/&lt;a href="https://github.com/scikit-hep/hist/pulls"&gt;11&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/uhi"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/uhi"&gt;uhi&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/uhi"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="26"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;f12be1ebaa5351c1fc76472de98db2c3446c8253&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;2834ec6639549dd6796205c8f011dedcd587288b&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3a6eb0fadf60b3cccfd80bad9dbb6fae7e47b316&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;,&amp;#34;validate-histograms&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;prettier&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/rbubley/mirrors-prettier&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;ef4a397f916211b4a39ccf9d3d9cbb6562157251&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-readthedocs&amp;#34;,&amp;#34;check-github-workflows&amp;#34;,&amp;#34;check-metaschema&amp;#34;,&amp;#34;check-jsonschema&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;4f85d46a92dc17713078e5de73f8a13190edf6fc&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;validate-pyproject&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/validate-pyproject-schema-store&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;ae9c8c7039f4ec4ae005660c80dbcb954f61da5a&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;fa412071e4f5d44d44f9e365f4676f9df92456a2&amp;#34;}]" data-config-url="https://github.com/scikit-hep/uhi/blob/main/.pre-commit-config.yaml"&gt;26&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="15"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-hep/uhi/issues"&gt;12&lt;/a&gt;/&lt;a href="https://github.com/scikit-hep/uhi/pulls"&gt;3&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/iminuit" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/iminuit"&gt;iminuit&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="9"&gt;&#10; &lt;a href="https://pypi.org/project/iminuit"&gt;&lt;span class="badge badge-blue"&gt;3.9+&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="19"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-docstring-first&amp;#34;,&amp;#34;check-executables-have-shebangs&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.17.4&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;clang-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-clang-format&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v23.1.5&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;cmake-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/cheshirekow/cmake-format-precommit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.6.13&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;nbstripout&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/kynan/nbstripout&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;0.9.1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;nbqa&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/nbQA-dev/nbQA&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1.10.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-github-workflows&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;0.39.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;validate-pyproject&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/validate-pyproject-schema-store&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;2026.11.07&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-root-version&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;}]" data-config-url="https://github.com/scikit-hep/iminuit/blob/develop/.pre-commit-config.yaml"&gt;19&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="24"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-hep/iminuit/issues"&gt;15&lt;/a&gt;/&lt;a href="https://github.com/scikit-hep/iminuit/pulls"&gt;9&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/uproot5" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/uproot5"&gt;uproot&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/uproot"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.14&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="15"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;black&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/psf/black-pre-commit-mirror&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;a5439e9af2ff9371297bb1a76a01b8ad17989b88&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;25bcf95026b96e2dd3c0aec3090c3d6ef6ca2e6c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;pretty-format-toml&amp;#34;,&amp;#34;pretty-format-yaml&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/macisamuele/language-formatters-pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;4380fbb73a154b5f5624794c1c78d9719ccc860f&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;c92afdf2c6ca336aaa8f39e2bd8d48f62dbd8e1f&amp;#34;}]" data-config-url="https://github.com/scikit-hep/uproot5/blob/main/.pre-commit-config.yaml"&gt;15&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="85"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-hep/uproot5/issues"&gt;64&lt;/a&gt;/&lt;a href="https://github.com/scikit-hep/uproot5/pulls"&gt;21&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/vector"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/vector"&gt;vector&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/vector"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="20"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;f12be1ebaa5351c1fc76472de98db2c3446c8253&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;2834ec6639549dd6796205c8f011dedcd587288b&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;prettier&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/rbubley/mirrors-prettier&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;ef4a397f916211b4a39ccf9d3d9cbb6562157251&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;blacken-docs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/adamchainz/blacken-docs&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;dda8db18cfc68df532abf33b185ecd12d5b7b326&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;python-check-blanket-type-ignore&amp;#34;,&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3a6eb0fadf60b3cccfd80bad9dbb6fae7e47b316&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;fa412071e4f5d44d44f9e365f4676f9df92456a2&amp;#34;}]" data-config-url="https://github.com/scikit-hep/vector/blob/main/.pre-commit-config.yaml"&gt;20&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="39"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-hep/vector/issues"&gt;30&lt;/a&gt;/&lt;a href="https://github.com/scikit-hep/vector/pulls"&gt;9&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/uproot-browser"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/uproot-browser"&gt;uproot-browser&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/uproot-browser"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="17"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;f12be1ebaa5351c1fc76472de98db2c3446c8253&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;2834ec6639549dd6796205c8f011dedcd587288b&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;fa412071e4f5d44d44f9e365f4676f9df92456a2&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;flake8-lazy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/flake8-lazy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3b5e52593dfaec56e6e4a48f237bafcf3d0b83ea&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;}]" data-config-url="https://github.com/scikit-hep/uproot-browser/blob/main/.pre-commit-config.yaml"&gt;17&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="5"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-hep/uproot-browser/issues"&gt;2&lt;/a&gt;/&lt;a href="https://github.com/scikit-hep/uproot-browser/pulls"&gt;3&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/particle"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/particle"&gt;particle&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/particle"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="19"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.17.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;blacken-docs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/adamchainz/blacken-docs&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1.20.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;prettier&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/rbubley/mirrors-prettier&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v3.9.10&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.10.0&amp;#34;}]" data-config-url="https://github.com/scikit-hep/particle/blob/main/.pre-commit-config.yaml"&gt;19&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="9"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-hep/particle/issues"&gt;5&lt;/a&gt;/&lt;a href="https://github.com/scikit-hep/particle/pulls"&gt;4&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/DecayLanguage"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/DecayLanguage"&gt;DecayLanguage&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/decaylanguage"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="18"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.17.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;decaylanguage-validate&amp;#34;,&amp;#34;disallow-caps&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.10.0&amp;#34;}]" data-config-url="https://github.com/scikit-hep/DecayLanguage/blob/main/.pre-commit-config.yaml"&gt;18&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="7"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-hep/DecayLanguage/issues"&gt;3&lt;/a&gt;/&lt;a href="https://github.com/scikit-hep/DecayLanguage/pulls"&gt;4&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scientific-python/repo-review"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scientific-python/repo-review"&gt;repo-review&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="11"&gt;&#10; &lt;a href="https://pypi.org/project/repo-review"&gt;&lt;span class="badge badge-blue"&gt;3.11&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="25"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;blacken-docs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/adamchainz/blacken-docs&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;dda8db18cfc68df532abf33b185ecd12d5b7b326&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;f12be1ebaa5351c1fc76472de98db2c3446c8253&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;prettier&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/rbubley/mirrors-prettier&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;ef4a397f916211b4a39ccf9d3d9cbb6562157251&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3a6eb0fadf60b3cccfd80bad9dbb6fae7e47b316&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;2834ec6639549dd6796205c8f011dedcd587288b&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;shellcheck&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/shellcheck-py/shellcheck-py&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;a6564f5d57444e123433a5c9af733e3975c77229&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;validate-pyproject&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/validate-pyproject-schema-store&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;ae9c8c7039f4ec4ae005660c80dbcb954f61da5a&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-dependabot&amp;#34;,&amp;#34;check-github-workflows&amp;#34;,&amp;#34;check-readthedocs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;4f85d46a92dc17713078e5de73f8a13190edf6fc&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;fa412071e4f5d44d44f9e365f4676f9df92456a2&amp;#34;}]" data-config-url="https://github.com/scientific-python/repo-review/blob/main/.pre-commit-config.yaml"&gt;25&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="3"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scientific-python/repo-review/issues"&gt;0&lt;/a&gt;/&lt;a href="https://github.com/scientific-python/repo-review/pulls"&gt;3&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scikit-hep/awkward" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scikit-hep/awkward"&gt;awkward&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/awkward"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="21"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;,&amp;#34;name-tests-test&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;cmake-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/cheshirekow/cmake-format-precommit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;e2c2116d86a80e72e7146a06e68b7c228afc6319&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;25bcf95026b96e2dd3c0aec3090c3d6ef6ca2e6c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;shellcheck&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/shellcheck-py/shellcheck-py&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;a6564f5d57444e123433a5c9af733e3975c77229&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;require-test-name-identifier&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-github-workflows&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;39478bf2c099a58683d3f1aedf675105318b078d&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;ad26ebfa797fcb9b8f83275937c1c1d6e126719c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;validate-pyproject&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/abravalheri/validate-pyproject&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;82d21874c3242e4dc27bb47641c996902ef64eef&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;c92afdf2c6ca336aaa8f39e2bd8d48f62dbd8e1f&amp;#34;}]" data-config-url="https://github.com/scikit-hep/awkward/blob/main/.pre-commit-config.yaml"&gt;21&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="260"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scikit-hep/awkward/issues"&gt;194&lt;/a&gt;/&lt;a href="https://github.com/scikit-hep/awkward/pulls"&gt;66&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="scientific-python/cookie"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/scientific-python/cookie"&gt;cookie&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/sp-repo-review"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.14&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="25"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;name-tests-test&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.17.1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.10.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;prettier&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/rbubley/mirrors-prettier&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v3.9.10&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rumdl&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/rvben/rumdl-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.3.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;typos&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/crate-ci/typos&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.51.1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.31.1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;,&amp;#34;disallow-words&amp;#34;,&amp;#34;disallow-bad-permalinks&amp;#34;,&amp;#34;cog&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;}]" data-config-url="https://github.com/scientific-python/cookie/blob/main/.pre-commit-config.yaml"&gt;25&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="32"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/scientific-python/cookie/issues"&gt;22&lt;/a&gt;/&lt;a href="https://github.com/scientific-python/cookie/pulls"&gt;10&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="tomerfiliba/plumbum"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/tomerfiliba/plumbum"&gt;plumbum&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="9"&gt;&#10; &lt;a href="https://pypi.org/project/plumbum"&gt;&lt;span class="badge badge-blue"&gt;3.9&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="20"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;b969e2851312ca2b24bbec879ba4954341d1bd12&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;a66e98df7b4aeeb3724184b332785976d062b92e&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;validate-pyproject&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/abravalheri/validate-pyproject&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;4b2e70d08cb2ccd26d1fba73588de41c7a5d50b7&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3a6eb0fadf60b3cccfd80bad9dbb6fae7e47b316&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;flake8-lazy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/flake8-lazy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;5fed9a818f2583f0403aed779bf2b6c9aa8d25f4&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;451b56af716f9f0d0c2b816503a3fd0cf8b036fa&amp;#34;}]" data-config-url="https://github.com/tomerfiliba/plumbum/blob/master/.pre-commit-config.yaml"&gt;20&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="168"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/tomerfiliba/plumbum/issues"&gt;136&lt;/a&gt;/&lt;a href="https://github.com/tomerfiliba/plumbum/pulls"&gt;32&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="henryiii/flake8-errmsg"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/henryiii/flake8-errmsg"&gt;flake8-errmsg&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/flake8-errmsg"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="26"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;python-check-blanket-noqa&amp;#34;,&amp;#34;python-check-blanket-type-ignore&amp;#34;,&amp;#34;python-no-eval&amp;#34;,&amp;#34;python-use-type-annotations&amp;#34;,&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3a6eb0fadf60b3cccfd80bad9dbb6fae7e47b316&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;prettier&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/rbubley/mirrors-prettier&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;0ee178619d696787ca73d210cc191d720868c631&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;blacken-docs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/adamchainz/blacken-docs&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;dda8db18cfc68df532abf33b185ecd12d5b7b326&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;321478e58f4938179c6b86e4ddfa923d1547a49b&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;7ff8d35ae36a7d2b968f2f90b4c723e292e594ee&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;shellcheck&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/shellcheck-py/shellcheck-py&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;a6564f5d57444e123433a5c9af733e3975c77229&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;cef8b8350da46d8114c7e6b7272aebdccdf193ce&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;}]" data-config-url="https://github.com/henryiii/flake8-errmsg/blob/main/.pre-commit-config.yaml"&gt;26&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="3"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/henryiii/flake8-errmsg/issues"&gt;1&lt;/a&gt;/&lt;a href="https://github.com/henryiii/flake8-errmsg/pulls"&gt;2&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="henryiii/flake8-lazy"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/henryiii/flake8-lazy"&gt;flake8-lazy&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="11"&gt;&#10; &lt;a href="https://pypi.org/project/flake8-lazy"&gt;&lt;span class="badge badge-blue"&gt;3.11&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="30"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;blacken-docs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/adamchainz/blacken-docs&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;fda77690955e9b63c6687d8806bafd56a526e45f&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;name-tests-test&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3a6eb0fadf60b3cccfd80bad9dbb6fae7e47b316&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;prettier&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/rbubley/mirrors-prettier&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;331f33fa4dfbcbca7c3da3620c137fde0faab273&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;f368fb366ff7f2f808dd324b83a6d32267799e19&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;2834ec6639549dd6796205c8f011dedcd587288b&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;pyrefly-check&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/facebook/pyrefly-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;442488886535c5e530391851a63d96c775477eda&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;57b21406f092110c18776e39b0bda50d37c945c8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;shellcheck&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/shellcheck-py/shellcheck-py&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;745eface02aef23e168a8afb6b5737818efbea95&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;validate-pyproject&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/abravalheri/validate-pyproject&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;17e12779811926f000bdfa1795f9e3735dd71ac3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-dependabot&amp;#34;,&amp;#34;check-github-workflows&amp;#34;,&amp;#34;check-readthedocs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;0494aa7fa1314e98913a41227d8f0a515b2c1049&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-sdist&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/check-sdist&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;5230295f53448dcfc8cc4a9eb00cc776ca92f964&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;sp-repo-review&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/scientific-python/cookie&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1589a99867d6cac494ac7545fe6a83108580a3ee&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;c92afdf2c6ca336aaa8f39e2bd8d48f62dbd8e1f&amp;#34;}]" data-config-url="https://github.com/henryiii/flake8-lazy/blob/main/.pre-commit-config.yaml"&gt;30&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="0"&gt;&lt;span class="badge badge-green"&gt;&lt;a href="https://github.com/henryiii/flake8-lazy/issues"&gt;&amp;#10003;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="henryiii/check-sdist"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/henryiii/check-sdist"&gt;check-sdist&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="9"&gt;&#10; &lt;a href="https://pypi.org/project/check-sdist"&gt;&lt;span class="badge badge-blue"&gt;3.9&amp;ndash;3.15&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="25"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;name-tests-test&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.10.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;prettier&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/rbubley/mirrors-prettier&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v3.9.9&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.16.10&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;mypy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-mypy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-sdist&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/check-sdist&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.6.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;shellcheck&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/shellcheck-py/shellcheck-py&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.11.0.1-1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-dependabot&amp;#34;,&amp;#34;check-github-workflows&amp;#34;,&amp;#34;check-metaschema&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/python-jsonschema/check-jsonschema&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;0.38.2&amp;#34;}]" data-config-url="https://github.com/henryiii/check-sdist/blob/main/.pre-commit-config.yaml"&gt;25&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="4"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/henryiii/check-sdist/issues"&gt;1&lt;/a&gt;/&lt;a href="https://github.com/henryiii/check-sdist/pulls"&gt;3&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="PelicanPlatform/pelicanfs" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/PelicanPlatform/pelicanfs"&gt;pelicanfs&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="11"&gt;&#10; &lt;a href="https://pypi.org/project/pelicanfs"&gt;&lt;span class="badge badge-blue"&gt;3.11&amp;ndash;3.13&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="8"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;trailing-whitespace&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;check-yaml&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;25bcf95026b96e2dd3c0aec3090c3d6ef6ca2e6c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;flake8-lazy&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/henryiii/flake8-lazy&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;7f268b3b3aaf7feca756ca610e37971382976365&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;pyright&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/RobertCraigie/pyright-python&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;1aa6dfeb849ae43fb6f16fc17228bcbd358a19c3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;c92afdf2c6ca336aaa8f39e2bd8d48f62dbd8e1f&amp;#34;}]" data-config-url="https://github.com/PelicanPlatform/pelicanfs/blob/main/.pre-commit-config.yaml"&gt;8&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="41"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/PelicanPlatform/pelicanfs/issues"&gt;30&lt;/a&gt;/&lt;a href="https://github.com/PelicanPlatform/pelicanfs/pulls"&gt;11&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="pytest-dev/pytest-github-actions-annotate-failures"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/pytest-dev/pytest-github-actions-annotate-failures"&gt;pytest GHA annotate-failures&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data" data-value="10"&gt;&#10; &lt;a href="https://pypi.org/project/pytest-github-actions-annotate-failures"&gt;&lt;span class="badge badge-blue"&gt;3.10&amp;ndash;3.14&lt;/span&gt;&lt;/a&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="13"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3e8a8703264a2f4a69428a0aa4dcb512790b2c8c&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;,&amp;#34;ruff-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;f368fb366ff7f2f808dd324b83a6d32267799e19&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;zizmor&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/zizmorcore/zizmor-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;c92afdf2c6ca336aaa8f39e2bd8d48f62dbd8e1f&amp;#34;}]" data-config-url="https://github.com/pytest-dev/pytest-github-actions-annotate-failures/blob/main/.pre-commit-config.yaml"&gt;13&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="5"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/pytest-dev/pytest-github-actions-annotate-failures/issues"&gt;1&lt;/a&gt;/&lt;a href="https://github.com/pytest-dev/pytest-github-actions-annotate-failures/pulls"&gt;4&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="goofit/GooFit" class="noncore"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/goofit/GooFit"&gt;GooFit&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="20"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;black&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/psf/black-pre-commit-mirror&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;26.5.1&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;debug-statements&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;requirements-txt-fixer&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;ruff-check&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/astral-sh/ruff-pre-commit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.16.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;cmake-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/cheshirekow/cmake-format-precommit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.6.13&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;rst-backticks&amp;#34;,&amp;#34;rst-directive-colons&amp;#34;,&amp;#34;rst-inline-touching-normal&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pygrep-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.10.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;clang-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-clang-format&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v22.1.8&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;shellcheck&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/shellcheck-py/shellcheck-py&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.11.0.1&amp;#34;}]" data-config-url="https://github.com/goofit/GooFit/blob/master/.pre-commit-config.yaml"&gt;20&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="36"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/goofit/GooFit/issues"&gt;24&lt;/a&gt;/&lt;a href="https://github.com/goofit/GooFit/pulls"&gt;12&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="CLIUtils/CLI11"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/CLIUtils/CLI11"&gt;CLI11&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="23"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;black&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/psf/black-pre-commit-mirror&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;26.10.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;,&amp;#34;check-toml&amp;#34;,&amp;#34;check-json&amp;#34;,&amp;#34;end-of-file-fixer&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;,&amp;#34;check-illegal-windows-names&amp;#34;,&amp;#34;check-shebang-scripts-are-executable&amp;#34;,&amp;#34;check-executables-have-shebangs&amp;#34;,&amp;#34;debug-statements&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;clang-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/mirrors-clang-format&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v23.1.2&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;cmake-format&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/cheshirekow/cmake-format-precommit&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.6.13&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;prettier&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/rbubley/mirrors-prettier&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v3.9.9&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;script-must-have-extension&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/jumanjihouse/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;3.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;markdownlint-cli2&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/DavidAnson/markdownlint-cli2&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v0.23.3&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;disallow-caps&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;avoid-msvc-macro&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;local&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;codespell&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/codespell-project/codespell&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v2.4.3&amp;#34;}]" data-config-url="https://github.com/CLIUtils/CLI11/blob/main/.pre-commit-config.yaml"&gt;23&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="94"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/CLIUtils/CLI11/issues"&gt;60&lt;/a&gt;/&lt;a href="https://github.com/CLIUtils/CLI11/pulls"&gt;34&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="iris-hep/jekyll-indico"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/iris-hep/jekyll-indico"&gt;jekyll-indico&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="9"&gt;&#10; &lt;button type="button" class="badge badge-gray hooks-badge" title="Click to see pre-commit hooks" data-hook-groups="[{&amp;#34;hooks&amp;#34;:[&amp;#34;check-added-large-files&amp;#34;,&amp;#34;mixed-line-ending&amp;#34;,&amp;#34;trailing-whitespace&amp;#34;,&amp;#34;check-merge-conflict&amp;#34;,&amp;#34;check-case-conflict&amp;#34;,&amp;#34;check-symlinks&amp;#34;,&amp;#34;check-yaml&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/pre-commit/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v6.0.0&amp;#34;},{&amp;#34;hooks&amp;#34;:[&amp;#34;remove-crlf&amp;#34;,&amp;#34;forbid-tabs&amp;#34;],&amp;#34;repo&amp;#34;:&amp;#34;https://github.com/Lucas-C/pre-commit-hooks&amp;#34;,&amp;#34;rev&amp;#34;:&amp;#34;v1.5.6&amp;#34;}]" data-config-url="https://github.com/iris-hep/jekyll-indico/blob/main/.pre-commit-config.yaml"&gt;9&lt;/button&gt;&#10; &lt;/td&gt;&lt;td class="col-data" data-value="0"&gt;&lt;span class="badge badge-green"&gt;&lt;a href="https://github.com/iris-hep/jekyll-indico/issues"&gt;&amp;#10003;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;tr data-project="halogenica/beautifulhugo"&gt;&#10; &lt;td&gt;&lt;a href="https://github.com/halogenica/beautifulhugo"&gt;beautifulhugo&lt;/a&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data"&gt;&lt;/td&gt;&lt;td class="col-data" data-value="6"&gt;&lt;span class="badge badge-gray"&gt;&lt;a href="https://github.com/halogenica/beautifulhugo/issues"&gt;3&lt;/a&gt;/&lt;a href="https://github.com/halogenica/beautifulhugo/pulls"&gt;3&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10; &lt;tfoot&gt;&#10; &lt;tr&gt;&lt;th data-sort="name"&gt;Name&lt;/th&gt;&lt;th class="col-data" data-sort="python" title="Supported Python versions (from PyPI classifiers)"&gt;Python&lt;/th&gt;&lt;th class="col-data" data-sort="hooks" title="pre-commit hooks"&gt;Hooks&lt;/th&gt;&lt;th class="col-data" data-sort="issues" title="Issues/Pull Requests"&gt;Issues/PRs&lt;/th&gt;&lt;/tr&gt;&#10; &lt;/tfoot&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt; &#10; &lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Idea and code inspiration stolen with permission from&#10;&lt;a href="https://bernat.tech/about"&gt;Bernát Gábor&lt;/a&gt;. Greyed out projects are ones I can&#10;commit to but only help out occasionally.&lt;/p&gt;</description></item><item><title>Python 3.15</title><link>https://iscinumpy.dev/post/python-315/</link><pubDate>Wed, 06 May 2026 12:00:00 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/python-315/</guid><description>&lt;p&gt;Python 3.15 is out! This is a really impactful release, with some really big&#10;additions. A new lazy import system, a powerful sampling profiler, not one but&#10;two new builtins, the usual color/types/errors updates, and lots of key changes&#10;for developers.&lt;/p&gt;</description></item><item><title>Starting With Agentic AI</title><link>https://iscinumpy.dev/post/starting-with-agentic-ai/</link><pubDate>Tue, 05 May 2026 20:00:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/starting-with-agentic-ai/</guid><description>&lt;p&gt;AI suddenly passed the &amp;ldquo;more time saved than spent&amp;rdquo; point around December 2025.&#10;A little late, I&amp;rsquo;ve finally started using agentic AI in various places over the&#10;last 2-3 months, and wanted to jot down my thoughts on what works, what doesn&amp;rsquo;t&#10;(yet?), and what the future might look like. If you are curious about AI for&#10;programming, or have been skeptical in the past, if &amp;ldquo;AI slop&amp;rdquo; is the first thing&#10;that comes to mind, this post will show you some ways that AI can be really&#10;helpful. Certain tasks have been completely transformed. Notice, I said &amp;ldquo;some&amp;rdquo;,&#10;not &amp;ldquo;all&amp;rdquo;! But it is a lot.&lt;/p&gt;</description></item><item><title>Repo Review 1.0</title><link>https://iscinumpy.dev/post/repo-review-1/</link><pubDate>Sat, 04 Apr 2026 10:52:51 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/repo-review-1/</guid><description>&lt;p&gt;I&amp;rsquo;ve just released &lt;a href="https://github.com/scientific-python/repo-review"&gt;repo-review&lt;/a&gt; 1.0 with a huge update to the WebApp, along&#10;with some other solid improvements in speed, simplicity, and stability.&#10;Repo-review&amp;rsquo;s two most popular plugins, &lt;a href="https://github.com/scientific-python/cookie"&gt;sp-repo-review&lt;/a&gt; and&#10;&lt;a href="https://validate-pyproject.readthedocs.io"&gt;validate-pyproject&lt;/a&gt;, can take full advantage of the new asynchronous fetching&#10;mechanism. And if you use the upcoming Python 3.15, the CLI is more responsive&#10;than ever thanks to lazy loading!&lt;/p&gt;</description></item><item><title>Working to make Python lazy</title><link>https://iscinumpy.dev/post/flake8-lazy/</link><pubDate>Tue, 24 Mar 2026 09:00:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/flake8-lazy/</guid><description>&lt;p&gt;Python 3.15a7, which is now just a &lt;code&gt;uv python install 3.15&lt;/code&gt; away on all major&#10;platforms, has lazy imports! This exciting feature, proposed in &lt;a href="https://peps.python.org/pep-0810"&gt;PEP 810&lt;/a&gt;,&#10;promises to make CLI applications faster (especially when using flags like&#10;&lt;code&gt;--help&lt;/code&gt;), and could make a lot of large code with lots of imports that don&amp;rsquo;t&#10;always get used faster too. Unlike the earlier, failed attempt, this requires&#10;libraries to put in some work. I&amp;rsquo;ve developed a helper tool to make it easy; I&amp;rsquo;d&#10;like to cover what lazy imports are and how to use my tool. Since this is the&#10;first library that I used AI heavily in developing, the second half of the post&#10;will cover how my experience with AI for a task like this went.&lt;/p&gt;&#10;&lt;p&gt;TL;DR: run &lt;code&gt;uvx flake8-lazy --apply=list&lt;/code&gt; to make your code magically faster on&#10;Python 3.15!&lt;/p&gt;</description></item><item><title>New in boost-histogram 1.7 / Hist 2.10</title><link>https://iscinumpy.dev/post/hist-2-10/</link><pubDate>Fri, 06 Feb 2026 17:16:40 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/hist-2-10/</guid><description>&lt;figure class="transparent"&gt;&#10; &lt;img src="https://iscinumpy.dev/post/boost-histogram-06/images/BoostHistogramPythonLogo.png" alt="boost-histogram logo" width="405" /&gt;&#10;&lt;/figure&gt;&#10;&#10;&#10;&lt;p&gt;I&amp;rsquo;ve just released &lt;a href="https://github.com/scikit-hep/boost-histogram/releases/tag/v1.7.0"&gt;boost-histogram 1.7&lt;/a&gt; and &lt;a href="https://github.com/scikit-hep/hist/releases/tag/v2.10.0"&gt;hist 2.10&lt;/a&gt;, with a major new&#10;feature and a big typing improvement! I&amp;rsquo;d like to quickly outline what&amp;rsquo;s new&#10;here. Python 3.10+ is now required.&lt;/p&gt;</description></item><item><title>Tools to help you write better code</title><link>https://iscinumpy.dev/page/presentations/2026-01-16-sqat/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2026-01-16-sqat/</guid><description/></item><item><title>How we made Python's packaging library 3x faster</title><link>https://iscinumpy.dev/post/packaging-faster/</link><pubDate>Fri, 09 Jan 2026 13:30:00 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/packaging-faster/</guid><description>&lt;p&gt;Along with a &lt;a href="https://github.com/pypa/pip"&gt;pip&lt;/a&gt; (and now &lt;a href="https://github.com/pypa/packaging"&gt;packaging&lt;/a&gt;) maintainer, Damian Shaw, I have&#10;been working on making &lt;a href="https://github.com/pypa/packaging"&gt;packaging&lt;/a&gt;, the library behind almost all packaging&#10;related tools, faster at reading versions and specifiers, something tools like&#10;pip have to do thousands of times during resolution. Using Python 3.15&amp;rsquo;s new&#10;statistical profiler and metadata from every package ever uploaded to PyPI, I&#10;measured and improved core Packaging constructs while keeping the code readable&#10;and simple. Reading in &lt;code&gt;Version&lt;/code&gt;s can be up to 2x faster and &lt;code&gt;SpecifierSet&lt;/code&gt;s can&#10;be up to 3x faster in &lt;a href="https://github.com/pypa/packaging/releases/tag/26.0"&gt;packaging &lt;code&gt;26.0&lt;/code&gt;&lt;/a&gt;, now released! Other&#10;operations have been optimized, as well, up to 5x in some cases. See the&#10;&lt;a href="https://discuss.python.org/t/announcement-packaging-26-0rc1-released/105631"&gt;announcement&lt;/a&gt; and &lt;a href="https://packaging.pypa.io/en/stable/changelog.html"&gt;release notes&lt;/a&gt; too; this post will focus on the&#10;performance work only.&lt;/p&gt;</description></item><item><title>Advent of Code 2025 in Typescript</title><link>https://iscinumpy.dev/post/aoc-2025/</link><pubDate>Wed, 24 Dec 2025 00:09:00 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/aoc-2025/</guid><description>&lt;p&gt;After two years of &lt;a href="https://adventofcode.com"&gt;Advent of Code&lt;/a&gt; in &lt;a href="https://rust-lang.org"&gt;Rust&lt;/a&gt;, I thought I&amp;rsquo;d try&#10;&lt;a href="https://www.typescriptlang.org"&gt;TypeScript&lt;/a&gt;. I&amp;rsquo;ve always wanted to improve &lt;a href="https://repo-review.readthedocs.io/en/latest"&gt;repo-review&lt;/a&gt;&amp;rsquo;s&#10;&lt;a href="https://learn.scientific-python.org/development/guides/repo-review"&gt;webapp&lt;/a&gt;, and that requires knowledge of the packaging&#10;systems for JavaScript, so I thought I&amp;rsquo;d try TypeScript this year. I also used&#10;this as an opportunity to learn more AI tooling too, mostly CoPilot in&#10;&lt;a href="https://code.visualstudio.com"&gt;VSCode&lt;/a&gt; &amp;amp; &lt;a href="https://chatgpt.com"&gt;ChatGPT&lt;/a&gt;. I&amp;rsquo;d like to share my experience and thoughts! My code&#10;is at &lt;a href="https://github.com/henryiii/aoc2025"&gt;aoc2025&lt;/a&gt; (and &lt;a href="https://github.com/henryiii/aoc2024"&gt;aoc2024&lt;/a&gt;, &lt;a href="https://github.com/henryiii/aoc2023"&gt;aoc2023&lt;/a&gt;).&lt;/p&gt;</description></item><item><title>What's new in Python π</title><link>https://iscinumpy.dev/page/presentations/2025-11-24-rse/</link><pubDate>Mon, 24 Nov 2025 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2025-11-24-rse/</guid><description/></item><item><title>Python Histograms</title><link>https://iscinumpy.dev/page/presentations/2025-11-12-rse/</link><pubDate>Wed, 12 Nov 2025 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2025-11-12-rse/</guid><description/></item><item><title>Using Venvs</title><link>https://iscinumpy.dev/page/presentations/2025-09-19-hsf-india/</link><pubDate>Fri, 19 Sep 2025 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2025-09-19-hsf-india/</guid><description/></item><item><title>UHI 1.0: histogram serialization</title><link>https://iscinumpy.dev/post/uhi-1-0/</link><pubDate>Wed, 20 Aug 2025 16:00:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/uhi-1-0/</guid><description>&lt;p&gt;&lt;a href="https://github.com/scikit-hep/uhi/releases/tag/v1.0.0"&gt;UHI 1.0&lt;/a&gt; is out, with a major new feature: a new histogram serialization&#10;spec! This spec supports multiple formats (HDF5, zip, and JSON initially), and&#10;can be supported by multiple libraries (Boost-histogram/hist initially). There&amp;rsquo;s&#10;also a new test suite helper for libraries targeting the UHI indexing spec.&lt;/p&gt;</description></item><item><title>pybind11 3.0.0</title><link>https://iscinumpy.dev/post/pybind11-3-0-0/</link><pubDate>Thu, 10 Jul 2025 00:13:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/pybind11-3-0-0/</guid><description>&lt;figure class="transparent"&gt;&#10; &lt;img src="https://iscinumpy.dev/post/pybind11-2-6-0/images/pybind11-logo.png" alt="pybind11 logo" width="405" /&gt;&#10;&lt;/figure&gt;&#10;&#10;&#10;&lt;p&gt;Pybind11 3.0 has been released! I would like to highlight some of the key&#10;changes below; be sure to check out the &lt;a href="https://pybind11.readthedocs.io/en/latest/changelog.html"&gt;changelog&lt;/a&gt; and &lt;a href="https://pybind11.readthedocs.io/en/latest/upgrade.html"&gt;upgrade guide&lt;/a&gt; for&#10;more information! This release includes an ABI bump, the first required bump in&#10;many years on Unix (Windows has had required bumps more often). This release&#10;contains the multi-year smart-holder branch, multi-phase init and subinterpreter&#10;support, &lt;code&gt;py::native_enum&lt;/code&gt;, an interface to warnings, typing improvements, and&#10;more. CMake now defaults to &lt;a href="https://cmake.org/cmake/help/latest/module/FindPython.html"&gt;FindPython&lt;/a&gt; mode.&lt;/p&gt;&#10;&lt;p&gt;Support for Python 3.14, 3.14t, GraalPy, PyPy 3.11, and iOS have been added,&#10;while legacy support for Python 3.7, PyPy 3.8/3.9, and CMake &amp;lt;3.15 has been&#10;removed. Most deprecated features have been kept for this release, but anything&#10;producing a warning in 3.0 may be removed in a future 3.x version.&lt;/p&gt;</description></item><item><title>Packaging a Scientific Python Project</title><link>https://iscinumpy.dev/page/presentations/2025-0709-scipy/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2025-0709-scipy/</guid><description/></item><item><title>🎡 cibuildwheel 3.0</title><link>https://iscinumpy.dev/post/cibuildwheel-3-0-0/</link><pubDate>Thu, 05 Jun 2025 01:54:45 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cibuildwheel-3-0-0/</guid><description>&lt;p&gt;&lt;a href="https://cibuildwheel.pypa.io"&gt;cibuildwheel&lt;/a&gt; 3.0.0 is out, with some very big additions. We&amp;rsquo;ve added&#10;GraalPy, Python 3.14 (and 3.14t) betas, and iOS support! We&amp;rsquo;ve got several new&#10;options: &lt;code&gt;test-sources&lt;/code&gt;, &lt;code&gt;test-environment&lt;/code&gt;, and (experimental)&#10;&lt;code&gt;pyodide-version&lt;/code&gt;. We now fully use &lt;code&gt;enable&lt;/code&gt; (and PyPy requires using it), and&#10;we no longer inject setuptools and wheel in build environments. Defaults have&#10;changed, too: &lt;code&gt;build&lt;/code&gt; is now the default frontend, &lt;code&gt;manylinux_2_28&lt;/code&gt; is the&#10;default manylinux image, with 32-bit linux now being opt-in. We&amp;rsquo;ve removed&#10;support for Python 3.6 and 3.7, we now require 3.11+ to run cibuildwheel itself,&#10;and EoL manylinux/musllinux images now need to be fully specified.&lt;/p&gt;&#10;&lt;p&gt;We&amp;rsquo;ve had some fantastic releases of cibuildwheel since my last post over 2.19,&#10;so I&amp;rsquo;ll include a few of the new features from those releases, too. I&amp;rsquo;ll also&#10;note a few of the features being worked on for future releases.&lt;/p&gt;</description></item><item><title>Python π</title><link>https://iscinumpy.dev/post/python-314/</link><pubDate>Thu, 08 May 2025 09:05:54 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/python-314/</guid><description>&lt;p&gt;Python π (3.14) is out! The big feature this time around is template strings.&#10;Free-threading is no longer experimental. There&amp;rsquo;s also lots more color&#10;(including syntax highlighting in the REPL!), remote debugging, deferred&#10;evaluation of annotations, and the usual error message and performance&#10;improvements. Subinterpreters are now accessible without the C-API (finally!),&#10;and free-threaded Python is no longer experimental.&lt;/p&gt;</description></item><item><title>Building Python Packages</title><link>https://iscinumpy.dev/page/presentations/2025-03-19-rse/</link><pubDate>Wed, 19 Mar 2025 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2025-03-19-rse/</guid><description/></item><item><title>Tools to help you write better code</title><link>https://iscinumpy.dev/page/presentations/2025-01-22-sqat/</link><pubDate>Wed, 22 Jan 2025 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2025-01-22-sqat/</guid><description/></item><item><title>scikit-build-core 0.10</title><link>https://iscinumpy.dev/post/scikit-build-core-0-10/</link><pubDate>Mon, 05 Aug 2024 23:09:13 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/scikit-build-core-0-10/</guid><description>&lt;p&gt;Scikit-build-core 0.10 is out, and it is one of the largest releases we&amp;rsquo;ve&#10;produced in terms of new configuration options. It automatically reads your&#10;minimum CMake version, you can tell it to read your scikit-build-core&#10;minimum-version, and there are settings for many of the advanced things users&#10;used to do with scikit-build (classic), like rebuilds or pure Python fallbacks&#10;on build failures.&lt;/p&gt;</description></item><item><title>The two flavors of Python 3.13</title><link>https://iscinumpy.dev/page/presentations/2024-07-01-pyhep/</link><pubDate>Mon, 01 Jul 2024 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2024-07-01-pyhep/</guid><description/></item><item><title>🎡 cibuildwheel 2.19</title><link>https://iscinumpy.dev/post/cibuildwheel-2-19-0/</link><pubDate>Mon, 10 Jun 2024 12:05:51 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cibuildwheel-2-19-0/</guid><description>&lt;p&gt;&lt;a href="https://cibuildwheel.pypa.io"&gt;cibuildwheel&lt;/a&gt; 2.19 is out, with some very big additions. A new platform,&#10;&lt;a href="https://pyodide.org"&gt;Pyodide&lt;/a&gt;, has been added for building WebAssembly wheels. We&amp;rsquo;ve added CPython&#10;3.13 free-threaded builds, now on all OS&amp;rsquo;s. And we have an opt-in speed&#10;improvement with the &lt;code&gt;build[uv]&lt;/code&gt; build-frontend option.&lt;/p&gt;&#10;&lt;p&gt;We&amp;rsquo;ve had some fantastic releases of cibuildwheel since my last post over 2.10,&#10;so I&amp;rsquo;ll include a few of the new features from those releases, too, with a&#10;highlight on a larger feature that can use more explaining: &lt;code&gt;inherit&lt;/code&gt; for&#10;overrides.&lt;/p&gt;</description></item><item><title>Modern binary build systems</title><link>https://iscinumpy.dev/page/presentations/2024-05-17-pycon/</link><pubDate>Fri, 17 May 2024 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2024-05-17-pycon/</guid><description/></item><item><title>Python 3.13</title><link>https://iscinumpy.dev/post/python-313/</link><pubDate>Thu, 09 May 2024 15:33:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/python-313/</guid><description>&lt;p&gt;Python 3.13 betas are out (Edit: 3.13.0 is out!), which means the features are&#10;locked in. For the first time in thirty years, Python has a new, more colorful&#10;REPL! There&amp;rsquo;s also a no-GIL compile-time option (free-threaded), an optional&#10;JIT, some new typing features, and better error messages (again).&lt;/p&gt;</description></item><item><title>Software Quality Assurance Tooling</title><link>https://iscinumpy.dev/page/presentations/2024-01-23-sqat/</link><pubDate>Tue, 23 Jan 2024 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2024-01-23-sqat/</guid><description/></item><item><title>Learning Rust with Advent of Code 2023</title><link>https://iscinumpy.dev/page/presentations/2024-01-10-rust/</link><pubDate>Wed, 10 Jan 2024 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2024-01-10-rust/</guid><description/></item><item><title>Inline run dependencies in pipx 1.4.2</title><link>https://iscinumpy.dev/post/pep723/</link><pubDate>Mon, 04 Dec 2023 15:00:06 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/pep723/</guid><description>&lt;p&gt;While it can also do much more, Python is a fantastic language for writing small&#10;scripts and utilities with its expressive syntax and batteries-included standard&#10;library. But what if you need just a bit more? PyPI is one of the best package&#10;repositories for any language, and being able to access it &lt;em&gt;without&lt;/em&gt; having to&#10;write a multi-file library and setting up virtual environments would be a&#10;dream - one that is becoming reality. Pipx 1.4.2 has an experimental&#10;implementation of the &lt;del&gt;provisionally&lt;/del&gt; accepted &lt;a href="https://peps.python.org/pep-0723"&gt;PEP 723&lt;/a&gt;, and I&amp;rsquo;d like to&#10;show it off here, as it&amp;rsquo;s tremendously useful for simple scripts &amp;amp; utilities.&#10;Support is also available in Nox 2024.04.15 and Hatch 1.10.&lt;/p&gt;</description></item><item><title>Project report - henryiii</title><link>https://iscinumpy.dev/page/presentations/2023-11-13-rsepeer/</link><pubDate>Mon, 13 Nov 2023 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2023-11-13-rsepeer/</guid><description/></item><item><title>Software Quality Assurance Tooling</title><link>https://iscinumpy.dev/page/presentations/2023-10-27-sqat/</link><pubDate>Fri, 27 Oct 2023 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2023-10-27-sqat/</guid><description/></item><item><title>C++23</title><link>https://iscinumpy.dev/post/cpp-23/</link><pubDate>Mon, 23 Oct 2023 11:00:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cpp-23/</guid><description>&lt;!-- rumdl-disable-file MD024 --&gt;&#10;&lt;p&gt;C++23 is complete and pretty much finalized, so let&amp;rsquo;s explore the new features&#10;in C++, from a data science point of view. This is not as large of a release as&#10;C++20 or C++11, but it&amp;rsquo;s still a hefty release with lots of nice new features -&#10;larger than C++17.&lt;/p&gt;&#10;&lt;p&gt;Some of the major new features are building on themes from C++20, such as vastly&#10;expanded ranges and views, more &lt;code&gt;constexpr&lt;/code&gt;/&lt;code&gt;consteval&lt;/code&gt;, module support for the&#10;standard library, &lt;code&gt;std::print&lt;/code&gt; to supplement &lt;code&gt;std::format&lt;/code&gt;, and a&#10;&lt;code&gt;std::generator&lt;/code&gt; to support coroutines. There are also several general features,&#10;lambdas and classes get along much better now, there are new preprocessor&#10;additions (!), a stacktrace library, flat maps/sets, and new &lt;code&gt;std::optional&lt;/code&gt;&#10;monadics, deducing &lt;code&gt;this&lt;/code&gt;, and many various additions.&lt;/p&gt;</description></item><item><title>The Scientific Python Development Guide</title><link>https://iscinumpy.dev/post/cookie/</link><pubDate>Fri, 14 Jul 2023 00:45:32 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cookie/</guid><description>&lt;p&gt;One outcome of the&#10;&lt;a href="https://scientific-python.org/summits/developer/2023/"&gt;2023 Scientific Python Developer Summit&lt;/a&gt;&#10;was the &lt;a href="https://learn.scientific-python.org/development"&gt;Scientific Python Development Guide&lt;/a&gt;, a comprehensive guide to modern&#10;Python package development, complete with a &lt;a href="https://github.com/scientific-python/cookie"&gt;new project template&lt;/a&gt;&#10;supporting 12 build backends and a &lt;a href="https://learn.scientific-python.org/development/guides/repo-review"&gt;WebAssembly-powered checker&lt;/a&gt;&#10;with checks linked to the guide. The guide covers topics like &lt;a href="https://learn.scientific-python.org/development/guides/packaging-simple/"&gt;modern&lt;/a&gt;,&#10;&lt;a href="https://learn.scientific-python.org/development/guides/packaging-compiled/"&gt;compiled&lt;/a&gt;, and &lt;a href="https://learn.scientific-python.org/development/guides/packaging-classic/"&gt;classic&lt;/a&gt; packaging, &lt;a href="https://learn.scientific-python.org/development/guides/style/"&gt;style&lt;/a&gt; checks, &lt;a href="https://learn.scientific-python.org/development/guides/mypy/"&gt;type&#10;checking&lt;/a&gt;, &lt;a href="https://learn.scientific-python.org/development/guides/docs/"&gt;docs&lt;/a&gt;, &lt;a href="https://learn.scientific-python.org/development/guides/tasks/"&gt;task runners&lt;/a&gt;, &lt;a href="https://learn.scientific-python.org/development/guides/gha-basic/"&gt;CI&lt;/a&gt;, &lt;a href="https://learn.scientific-python.org/development/guides/pytest/"&gt;tests&lt;/a&gt;,&#10;and much more! There also are sections of &lt;a href="https://learn.scientific-python.org/development/tutorials/"&gt;tutorials&lt;/a&gt;, &lt;a href="https://learn.scientific-python.org/development/principles/"&gt;principles&lt;/a&gt;, and&#10;some common &lt;a href="https://learn.scientific-python.org/development/patterns/"&gt;patterns&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;This guide (along with cookie &amp;amp; repo-review) started in &lt;a href="https://scikit-hep.org"&gt;Scikit-HEP&lt;/a&gt; in 2020.&#10;During the summit, it was merged with the &lt;a href="https://nsls-ii.github.io/"&gt;NSLS-II&lt;/a&gt; guidelines, which provided&#10;the basis for the &lt;a href="https://learn.scientific-python.org/development/principles/"&gt;principles&lt;/a&gt; section. I&amp;rsquo;d like to thank and acknowledge Dan&#10;Allan and Gregory Lee for working tirelessly during the summit to rework,&#10;rewrite, merge, and fix the guide, including writing most of the &lt;a href="https://learn.scientific-python.org/development/tutorials/"&gt;tutorials&lt;/a&gt;&#10;pages and first &lt;a href="https://learn.scientific-python.org/development/patterns/"&gt;patterns&lt;/a&gt; page, and rewriting the &lt;a href="https://learn.scientific-python.org/development/tutorials/dev-environment/"&gt;environment&lt;/a&gt; page as a&#10;tutorial.&lt;/p&gt;</description></item><item><title>Introducing repo-review</title><link>https://iscinumpy.dev/post/repo-review/</link><pubDate>Thu, 13 Jul 2023 22:00:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/repo-review/</guid><description>&lt;p&gt;I&amp;rsquo;ve released a new&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; toolkit for running checks, similar to Ruff and Flake8&#10;but designed to check configuration, called &lt;a href="https://repo-review.readthedocs.io"&gt;repo-review&lt;/a&gt;. It requires Python&#10;3.10+&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; to run and has no built-in checks, but is easy to write plugins for. A&#10;set of checks based on the &lt;a href="https://learn.scientific-python.org/development"&gt;Scientific Python Development Guide&lt;/a&gt; (which I also&#10;&lt;a href="https://iscinumpy.dev/post/cookie"&gt;have a post about&lt;/a&gt;!) are available as a plugin, &lt;code&gt;sp-repo-review&lt;/code&gt;.&#10;You can run &lt;code&gt;repo-review&lt;/code&gt; in WebAssembly (via Pyodide), or in pre-commit, or as&#10;a GitHub Action. It supports multiple output formats, including Rich, HTML, and&#10;JSON. The system is based on fixtures (like pytest) and topologically sorts&#10;requirements. You don&amp;rsquo;t need to depend on repo-review to add a repo-review&#10;plugin. You can see a live version using sp-repo-review&#10;&lt;a href="https://learn.scientific-python.org/development/guides/repo-review/"&gt;in-place here&lt;/a&gt;&#10;or &lt;a href="https://scientific-python.github.io/repo-review/"&gt;standalone here&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Python 3.12</title><link>https://iscinumpy.dev/post/python-312/</link><pubDate>Mon, 19 Jun 2023 17:00:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/python-312/</guid><description>&lt;p&gt;Python 3.12&amp;rsquo;s beta&amp;rsquo;s are out, which means the features are locked in. The theme&#10;this year has been cleanup and typing. &lt;code&gt;distutils&lt;/code&gt; has been removed, and&#10;setuptools is no longer present in default environments.&lt;/p&gt;</description></item><item><title>Software Quality Assurance Tooling</title><link>https://iscinumpy.dev/page/presentations/2023-01-23-sqat/</link><pubDate>Mon, 23 Jan 2023 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2023-01-23-sqat/</guid><description/></item><item><title>Setup Windows</title><link>https://iscinumpy.dev/post/setup-windows/</link><pubDate>Mon, 12 Dec 2022 11:54:16 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/setup-windows/</guid><description>&lt;p&gt;I set up an ARM DevKit recently, so I wanted to catalog what I do to setup&#10;Windows here. This is not as polished or complete as my macOS setups, because&#10;this is not something I use as a daily driver. But it might be useful, and I&amp;rsquo;m&#10;open to suggestions to improve it. This should work for Intel or ARM Windows.&lt;/p&gt;&#10;&lt;p&gt;Also see &lt;a href="https://iscinumpy.dev/post/setup-a-new-mac"&gt;macOS&lt;/a&gt; &lt;a href="https://iscinumpy.dev/post/setup-apple-silicon"&gt;(AS)&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>What's new in Python 3.11</title><link>https://iscinumpy.dev/page/presentations/2022-10-19-rse/</link><pubDate>Wed, 19 Oct 2022 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2022-10-19-rse/</guid><description/></item><item><title>🎡 cibuildwheel 2.10</title><link>https://iscinumpy.dev/post/cibuildwheel-2-10-0/</link><pubDate>Tue, 13 Sep 2022 08:42:26 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cibuildwheel-2-10-0/</guid><description>&lt;p&gt;&lt;a href="https://github.com/pypa/cibuildwheel"&gt;cibuildwheel&lt;/a&gt; 2.10 is out, with some important additions. PEP 517 config&#10;settings added, &lt;code&gt;--only&lt;/code&gt; (which has an interesting use in GHA), and Cirrus CI&#10;support (including our first Apple Silicon native runner!) are highlights. We&#10;also support Python 3.11 now (as of 2.11.2, RC&amp;rsquo;s in older releases).&lt;/p&gt;&#10;&lt;p&gt;We&amp;rsquo;ve had some fantastic releases of cibuildwheel this year, including some very&#10;powerful features you might be interested in using, and I haven&amp;rsquo;t covered&#10;releases since 2.2, so let&amp;rsquo;s take an in-depth look at what&amp;rsquo;s new for this and&#10;the last few releases!&lt;/p&gt;</description></item><item><title>Everything you didn't know you needed</title><link>https://iscinumpy.dev/page/presentations/2022-08-05-codas-hep/</link><pubDate>Fri, 05 Aug 2022 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2022-08-05-codas-hep/</guid><description/></item><item><title>Python 3.10</title><link>https://iscinumpy.dev/post/python-310/</link><pubDate>Sat, 23 Jul 2022 10:00:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/python-310/</guid><description>&lt;p&gt;Python 3.10 is out (and has been for a while, I&amp;rsquo;m late posting this), with new&#10;features and changes. The big new language feature this update is pattern&#10;matching. We get much better errors, the always-present typing improvements, and&#10;finally some real usage of the new PEG parser from 3.9.&lt;/p&gt;</description></item><item><title>Building binary extensions with pybind11, scikit build, and cibuildwheel</title><link>https://iscinumpy.dev/page/presentations/2022-07-15-scipy/</link><pubDate>Fri, 15 Jul 2022 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2022-07-15-scipy/</guid><description/></item><item><title>Awkward Packaging: building Scikit-HEP</title><link>https://iscinumpy.dev/page/presentations/2022-07-14-scipy/</link><pubDate>Thu, 14 Jul 2022 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2022-07-14-scipy/</guid><description/></item><item><title>Python 3.11</title><link>https://iscinumpy.dev/post/python-311/</link><pubDate>Wed, 11 May 2022 16:11:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/python-311/</guid><description>&lt;p&gt;Python 3.11 has hit the beta (now released!) stage, which means no more new&#10;features. It&amp;rsquo;s a perfect time to play with it! The themes in this update are the&#10;standard ones: The faster CPython project is now fully going (3.11 is 25% faster&#10;on average), along with improved error messages, typing, and asyncio. Beyond&#10;this, the only major new feature is a library for reading TOML files; this this&#10;is probably only exciting if you are involved in Python packaging (but I am, so&#10;I&amp;rsquo;m excited!).&lt;/p&gt;</description></item><item><title>Scikit-HEP Developer Pages: Guidelines for modern packaging</title><link>https://iscinumpy.dev/page/presentations/2022-04-30-pycon/</link><pubDate>Sat, 30 Apr 2022 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2022-04-30-pycon/</guid><description/></item><item><title>Building Binary Packages</title><link>https://iscinumpy.dev/page/presentations/2022-04-29-pycon/</link><pubDate>Fri, 29 Apr 2022 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2022-04-29-pycon/</guid><description/></item><item><title>Digital RSE: Automatic Code Quality Checks</title><link>https://iscinumpy.dev/page/presentations/2022-03-09-rse/</link><pubDate>Tue, 08 Mar 2022 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2022-03-09-rse/</guid><description/></item><item><title>boost-histogram / Hist</title><link>https://iscinumpy.dev/page/presentations/2022-03-02-pyhep/</link><pubDate>Wed, 02 Mar 2022 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2022-03-02-pyhep/</guid><description/></item><item><title>CMake best practices</title><link>https://iscinumpy.dev/page/presentations/2022-02-02-sc/</link><pubDate>Wed, 02 Feb 2022 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2022-02-02-sc/</guid><description/></item><item><title>Python 3.7</title><link>https://iscinumpy.dev/post/python-37/</link><pubDate>Sat, 15 Jan 2022 22:41:05 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/python-37/</guid><description>&lt;p&gt;Python 3.7 has been out for a while. In fact, it&amp;rsquo;s the oldest version of Python&#10;still receiving support when this was written. I&amp;rsquo;d still like to write a &amp;ldquo;what&amp;rsquo;s&#10;new&amp;rdquo;, targeting users who are upgrading to a Python 3.7+ only codebase, and want&#10;to know what to take advantage of!&lt;/p&gt;</description></item><item><title>Poetry Versions</title><link>https://iscinumpy.dev/post/poetry-versions/</link><pubDate>Thu, 09 Dec 2021 11:00:00 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/poetry-versions/</guid><description>&lt;p&gt;&lt;a href="https://python-poetry.org"&gt;Poetry&lt;/a&gt; provides an all-in-one solution to Python packaging. I want to focus&#10;on why I was quite hard on Poetry in my last post, specifically on its default&#10;version capping and solver quirks, and also a few other negative things. This is&#10;a followup to&#10;&lt;a href="https://iscinumpy.dev/post/bound-version-constraints"&gt;Should you have upper version bounds&lt;/a&gt;, which&#10;you should read before this post.&lt;/p&gt;</description></item><item><title>Should You Use Upper Bound Version Constraints?</title><link>https://iscinumpy.dev/post/bound-version-constraints/</link><pubDate>Thu, 09 Dec 2021 10:00:00 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/bound-version-constraints/</guid><description>&lt;p&gt;Bound version constraints (upper caps) are starting to show up in the Python&#10;ecosystem. This is causing &lt;a href="https://github.com/scikit-hep/pyhf/discussions/1595"&gt;real world problems&lt;/a&gt; with&#10;libraries following this recommendation, and is likely to &lt;a href="https://github.com/pypa/packaging/pull/482#issuecomment-963030131"&gt;continue to get&#10;worse&lt;/a&gt;; this practice does not scale to large numbers&#10;of libraries or large numbers of users. In this discussion I would like to&#10;explain why &lt;em&gt;always&lt;/em&gt; providing an upper limit causes far more harm than good&#10;&lt;em&gt;even for true SemVer libraries&lt;/em&gt;, why libraries that pin upper limits require&#10;&lt;em&gt;more frequent&lt;/em&gt; updates rather than less, and why it is not scalable. After&#10;reading this, hopefully you will always consider every cap you add, you will&#10;know the (few) places where pinning an upper limit is reasonable, and will&#10;possibly even avoid using libraries that pin upper limits needlessly until the&#10;author updates them to remove these pins.&lt;/p&gt;&#10;&lt;p&gt;If this 10,000 word behemoth is a bit long for you, then skip around using the&#10;table of contents, or see the &lt;a href="#tldr"&gt;TL;DR&lt;/a&gt; section at the end, or read&#10;&lt;a href="https://bernat.tech/posts/version-numbers"&gt;version numbers by Bernát Gábor&lt;/a&gt;, which is shorter but is a&#10;fantastic read with good examples and cute dog pictures. Or&#10;&lt;a href="https://hynek.me/articles/semver-will-not-save-you/"&gt;Hynek&amp;rsquo;s Semantic Versioning Will Not Save You&lt;/a&gt;&#10;Be sure to check at least&#10;&lt;a href="#analysis-of-a-javascript-project"&gt;the JavaScript project analysis&lt;/a&gt; before you&#10;leave!&lt;/p&gt;&#10;&lt;p&gt;Also be warned, I pick on &lt;a href="https://python-poetry.org"&gt;Poetry&lt;/a&gt; quite a bit. The rising popularity of&#10;&lt;a href="https://python-poetry.org"&gt;Poetry&lt;/a&gt; is likely due to the simplicity of having one tool vs. many for&#10;packaging, but it happens to also have a special dependency solver, a new upper&#10;bound syntax, and a &lt;a href="https://python-poetry.org/docs/faq/#why-are-unbound-version-constraints-a-bad-idea"&gt;strong recommendation to always limit upper&#10;versions&lt;/a&gt; - in direct opposition to &lt;a href="https://snarky.ca/why-i-dont-like-semver/"&gt;members of the&#10;Python core developer team&lt;/a&gt; and PyPA developers. Not&#10;all libraries with excessive version capping are Poetry projects (like&#10;TensorFlow), but many, many of them are. To be clear, Poetry doesn&amp;rsquo;t force&#10;version pinning on you, but it does push you really, really hard to always&#10;version cap, and it&amp;rsquo;s targeting new Python users that don&amp;rsquo;t know any better yet&#10;than to accept bad recommendations. And these affect the whole ecosystem,&#10;including users who do not use poetry, but want to depend on libraries that do!&#10;I do really like other aspects of Poetry, and would like to&#10;&lt;a href="https://iscinumpy.dev/post/scikit-build-proposal"&gt;eventually&lt;/a&gt; help it build binary packages with Scikit-build&#10;(CMake) via a plugin, and it has some great developers. If I don&amp;rsquo;t pick on&#10;Poetry enough for you, don&amp;rsquo;t worry, I have a&#10;&lt;a href="https://iscinumpy.dev/post/poetry-versions"&gt;follow-up post&lt;/a&gt; that picks on it in much more detail.&#10;Also, check out &lt;a href="https://pdm.fming.dev"&gt;pdm&lt;/a&gt;, which gives many of the benefits of Poetry while&#10;following PEP standards. Also &lt;a href="https://pixi.sh"&gt;pixi&lt;/a&gt;, which works with the Conda ecosystem.&lt;/p&gt;&#10;&lt;p&gt;If you come across something that can&amp;rsquo;t be solved, try using&#10;&lt;code&gt;--exclude-newer &amp;lt;DATE&amp;gt;&lt;/code&gt; in &lt;a href="https://github.com/astral-sh/uv"&gt;uv&lt;/a&gt; and &lt;a href="https://pdm.fming.dev"&gt;pdm&lt;/a&gt;. This limits the solve by&#10;ignoring packages newer than some date.&lt;/p&gt;&#10;&lt;!-- prettier-ignore-start --&gt;&#10;&lt;!-- prettier-ignore-end --&gt;</description></item><item><title>App vs Library</title><link>https://iscinumpy.dev/post/app-vs-library/</link><pubDate>Thu, 09 Dec 2021 09:00:00 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/app-vs-library/</guid><description>&lt;p&gt;What is the difference between an app and a library? This seemingly simple&#10;question confuses some, and it turns out to be a harder question to answer than&#10;you might expect. While the actual distinction between these common terms will&#10;always be muddled in practice, I propose a specific definition to be used when&#10;considering dependencies. This distinction is important when&#10;&lt;a href="https://iscinumpy.dev/post/bound-version-constraints"&gt;discussing bound version constraints&lt;/a&gt; in the&#10;next post.&lt;/p&gt;</description></item><item><title>Scikit Build Proposal</title><link>https://iscinumpy.dev/post/scikit-build-proposal/</link><pubDate>Wed, 27 Oct 2021 08:00:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/scikit-build-proposal/</guid><description>&lt;p&gt;I&amp;rsquo;ve spent the last few years trying to make it easy for anyone to extend Python&#10;with compiled languages. I&amp;rsquo;ve worked on &lt;a href="https://github.com/pybind/pybind11"&gt;pybind11&lt;/a&gt;, a powerful C++ library&#10;that allows users to write advanced Python extensions using just C++11, used by&#10;some of the largest projects, SciPy, PyTorch, Google, LLVM, and tens of&#10;thousands of other libraries, down to very small extensions. I also work on&#10;&lt;a href="https://github.com/pypa/cibuildwheel"&gt;cibuildwheel&lt;/a&gt;, which makes building binaries (called wheels) on continuous&#10;integration (CI) simple. It is again powerful enough to be used by huge&#10;projects, like Scikit-learn, matplotlib, mypy; and is simple enough to be used&#10;by hundreds of other packages. Recently it was accepted into the Python&#10;Packaging Authority (PyPA). There is one missing piece, though, to complete this&#10;picture of compiled extensions that is easy to use for small projects, and&#10;powerful enough for large projects: the build system. I believe the solution to&#10;that is &lt;a href="https://github.com/scikit-build/scikit-build"&gt;scikit-build&lt;/a&gt;, and I&amp;rsquo;d like to work on it over the next three years.&lt;/p&gt;&#10;&lt;p&gt;Scikit-build is a tool for integrating a package with a CMake build system into&#10;Python. You can utilize the vast collection of packages and projects using CMake&#10;already, and you have access to modern building features, like multithreaded&#10;builds, library discovery, superb compiler and IDE support, and all sorts of&#10;extended tooling. Modern CMake is quite pleasant to write compared to times&#10;past; I have written &lt;a href="https://cliutils.gitlab.io/modern-cmake/"&gt;a book&lt;/a&gt; and &lt;a href="https://hsf-training.github.io/hsf-training-cmake-webpage"&gt;training course&lt;/a&gt; on it. We&#10;ship up-to-date &lt;code&gt;cmake&lt;/code&gt; and &lt;code&gt;ninja&lt;/code&gt; wheels for all binary platforms.&lt;/p&gt;&#10;&lt;p&gt;Update: Funded! I&amp;rsquo;ll be working on this starting August 1, 2022!&lt;/p&gt;&#10;&lt;p&gt;I wrote a proposal for an NSF CSSI Elements project containing three parts. The&#10;first part will cover core development on Scikit-build to address the current&#10;shortcomings and to prepare it for a post-distutils (Python 3.12+) world. The&#10;second part would cover assisting libraries with a science use case in either&#10;transitioning to scikit-build (ideally from an existing CMake build system with&#10;Python bindings, but I can help mentor developers in writing bindings (ideally&#10;pybind11), setting up CI, and writing CMake code as well (see my book or&#10;workshop on Modern CMake, and I&amp;rsquo;m happy to help old scikit-build projects&#10;transition to better practices)). As part of this, I would be building up the&#10;examples and documentation, leading into the third part of the proposal: A&#10;series of training events and training material, including plans for something&#10;alongside SciPy.&lt;/p&gt;&#10;&lt;p&gt;You can also see an outline at&#10;&lt;a href="https://github.com/scikit-build/scikit-build/wiki"&gt;scikit-build/scikit-build/wiki&lt;/a&gt;&#10;or at the end of this post.&lt;/p&gt;&#10;&lt;p&gt;Thank you for all the projects! The proposal was submitted Dec 8, 2021; mid year&#10;we should find out if it was accepted!&lt;/p&gt;</description></item><item><title>Useful Links</title><link>https://iscinumpy.dev/page/useful-links/</link><pubDate>Fri, 22 Oct 2021 15:44:45 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/useful-links/</guid><description>&lt;h2 id="python"&gt;Python&lt;/h2&gt;&#10;&lt;h3 id="learning-materials"&gt;Learning materials&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://hepsoftwarefoundation.org/training/curriculum.html"&gt;HSF training curriculum (Python, bash, git, docker, and more)&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="topical-articles"&gt;Topical articles&lt;/h3&gt;&#10;&lt;h4 id="cpython-core-developers"&gt;CPython core developers&lt;/h4&gt;&#10;&lt;p&gt;&lt;strong&gt;Brett Cannon&lt;/strong&gt; is a CPython core developer, and is very interested in&#10;standardizing packaging. &lt;a href="https://snarky.ca"&gt;https://snarky.ca&lt;/a&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://snarky.ca/why-i-dont-like-semver/"&gt;Why I don&amp;rsquo;t like SemVer anymore&lt;/a&gt;:&#10;A great resource to make you think about what SemVer means and where it falls&#10;short.&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://snarky.ca/what-the-heck-is-pyproject-toml/"&gt;What the heck is pyproject.toml&lt;/a&gt;:&#10;A intro to modern Python packaging&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://snarky.ca/a-quick-and-dirty-guide-on-how-to-install-packages-for-python/"&gt;A quick-and-dirty guide on how to install packages for Python&lt;/a&gt;:&#10;This showw the &amp;ldquo;correct&amp;rdquo; way to throw together packages (pre-pipx).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&lt;strong&gt;Paul Ganssle&lt;/strong&gt; is CPython core developer, and maintains zoneinfo.&#10;&lt;a href="https://blog.ganssle.io"&gt;https://blog.ganssle.io&lt;/a&gt;&lt;/p&gt;</description></item><item><title>🎡 cibuildwheel 2.2</title><link>https://iscinumpy.dev/post/cibuildwheel-2-2-0/</link><pubDate>Wed, 20 Oct 2021 11:27:29 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cibuildwheel-2-2-0/</guid><description>&lt;p&gt;Another great release from &lt;a href="https://cibuildwheel.readthedocs.io"&gt;cibuildwheel&lt;/a&gt;, &lt;a href="https://github.com/pypa/cibuildwheel/releases/tag/v2.2.0"&gt;2.2.0&lt;/a&gt;, is out! There are a few&#10;important additions in this release that you should be aware of, so I will&#10;outline the major changes here. We will cover the new musllinux wheels, overload&#10;configuration, and incoming changes to pip and PyPy expected in the next&#10;release. As always, it is recommended that you pin your cibuildwheel version and&#10;then provide some automated way to keep the pin up-to-date, such as GitHub&amp;rsquo;s&#10;dependabot. You should be updating just before you make a release, as well, but&#10;you probably don&amp;rsquo;t want to be surprised by new wheels during your release&#10;process!&lt;/p&gt;</description></item><item><title>🎡 cibuildwheel 2.0</title><link>https://iscinumpy.dev/post/cibuildwheel-2-0/</link><pubDate>Fri, 16 Jul 2021 12:23:20 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cibuildwheel-2-0/</guid><description>&lt;p&gt;The &lt;a href="https://cibuildwheel.readthedocs.io"&gt;cibuildwheel&lt;/a&gt; package has just had a major release with some fantastic&#10;features. Python 2.7 and 3.5 support has been removed (and PyPy3.6), allowing us&#10;to update to the latest manylinux and auditwheel versions, and support the newly&#10;unified manylinux PyPy3.7 images. We now allow users to select &lt;code&gt;pypa/build&lt;/code&gt; as a&#10;build frontend. We now have a custom option to enable pre-release Pythons (3.10&#10;currently) for testing before they are ABI stable (please don&amp;rsquo;t release wheels&#10;until that happens). Maybe most exciting, cibuildwheel now supports&#10;configuration in &lt;code&gt;pyproject.toml&lt;/code&gt;, allowing you to be even further isolated from&#10;dependence on your CI system; you can easily produce Linux and Windows wheels&#10;locally (macOS still installs to system locations). And, since my&#10;&lt;a href="https://iscinumpy.dev/post/cibuildwheel-1-9-0"&gt;last post&lt;/a&gt; and&#10;&lt;a href="https://iscinumpy.dev/post/overview-of-cibuildwheel"&gt;introduction post&lt;/a&gt;, cibuildwheel is now part of&#10;the PyPA!&lt;/p&gt;</description></item><item><title>pybind11</title><link>https://iscinumpy.dev/page/presentations/2021-07-16-scipy/</link><pubDate>Fri, 16 Jul 2021 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2021-07-16-scipy/</guid><description/></item><item><title>Announcing CLI11 2.0</title><link>https://iscinumpy.dev/post/announcing-cli11-20/</link><pubDate>Wed, 14 Jul 2021 14:34:02 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/announcing-cli11-20/</guid><description>&lt;p&gt;&lt;a href="https://github.com/CLIUtils/CLI11"&gt;CLI11&lt;/a&gt;, a powerful library for writing beautiful command line interfaces in&#10;C++11, has &lt;a href="https://github.com/CLIUtils/CLI11/releases/tag/v2.0.0"&gt;been updated to 2.0&lt;/a&gt;. A lot of deprecated things have been&#10;removed, and there was a lot of cleanup under-the-hood; making CLI11 simpler. A&#10;few defaults have changed slightly, like better TOML support by default.&lt;/p&gt;&#10;&lt;p&gt;CLI11 does a better job than ever understanding any sort of container you&#10;provide - complex numbers are natively supported, along with atomic types. A&#10;long requested feature, simple version flags, has been added. Subcommands are&#10;more customizable. And there have been quite a few bugfixes for rare issues.&lt;/p&gt;</description></item><item><title>Powerful Python Packaging for Scientific Codes</title><link>https://iscinumpy.dev/page/presentations/2021-07-08-pyhep/</link><pubDate>Thu, 08 Jul 2021 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2021-07-08-pyhep/</guid><description/></item><item><title>High-Performance Histogramming for HEP Analysis</title><link>https://iscinumpy.dev/page/presentations/2021-07-07-pyhep/</link><pubDate>Wed, 07 Jul 2021 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2021-07-07-pyhep/</guid><description/></item><item><title>Level Up Your Python (part 2)</title><link>https://iscinumpy.dev/page/presentations/2021-07-06-pyhep/</link><pubDate>Tue, 06 Jul 2021 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2021-07-06-pyhep/</guid><description/></item><item><title>Level Up Your Python (part 1)</title><link>https://iscinumpy.dev/page/presentations/2021-07-05-pyhep/</link><pubDate>Mon, 05 Jul 2021 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2021-07-05-pyhep/</guid><description/></item><item><title>Python 3.9</title><link>https://iscinumpy.dev/post/python-39/</link><pubDate>Fri, 12 Feb 2021 12:00:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/python-39/</guid><description>&lt;p&gt;Python 3.9 is out (and has been for a while, I&amp;rsquo;m late posting this), with new&#10;features and changes. The themes for this release have been heavily internal&#10;improvements, such as a new more powerful parser, and the usual static typing&#10;improvements, along with a several bits new-user facing new syntax. This makes&#10;3.9 a smaller release, but still it has some nice features of note.&lt;/p&gt;</description></item><item><title>Setup an Apple Silicon Mac</title><link>https://iscinumpy.dev/post/setup-apple-silicon/</link><pubDate>Thu, 11 Feb 2021 17:00:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/setup-apple-silicon/</guid><description>&lt;p&gt;I recently got an M1 mac, and I&amp;rsquo;ll be cataloging my experience with using it for&#10;scientific software development. I&amp;rsquo;ll be returning to update this page&#10;periodically, and will eventually have a focused recommendation for Apple&#10;Silicon setup, similar to &lt;a href="https://iscinumpy.dev/post/setup-a-new-mac"&gt;my Intel setup&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>🎡 cibuildwheel 1.8.0 and 1.9.0</title><link>https://iscinumpy.dev/post/cibuildwheel-1-9-0/</link><pubDate>Sun, 07 Feb 2021 20:13:41 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cibuildwheel-1-9-0/</guid><description>&lt;p&gt;&lt;a href="https://cibuildwheel.readthedocs.io"&gt;&lt;code&gt;cibuildwheel&lt;/code&gt;&lt;/a&gt; has just had two back-to-back releases, two weeks apart,&#10;representing several months of hard work and a few exciting features! I will be&#10;covering both releases at once, so we will discuss Apple Silicon support,&#10;architecture emulation on Linux, integrated PEP 621 Requires-Python support, the&#10;native GitHub Action, extended build and test controls, and more!&lt;/p&gt;&#10;&lt;p&gt;If you are following the releases, 1.7.0 came out last November (2020), and&#10;included the fantastic output folding feature, which makes logs much easier to&#10;read on CI systems that support folding, and makes it much easier to see how&#10;long each step takes. The 1.7.x series also included the addition of the&#10;&lt;a href="https://cibuildwheel.readthedocs.io/en/stable/working-examples/"&gt;working examples section&lt;/a&gt; of the documentation, which tracks&#10;some known projects using &lt;code&gt;cibuildwheel&lt;/code&gt;, such as scikit-learn, Matplotlib, and&#10;MyPy; it is a great place to go to look into how other projects have integrated&#10;&lt;a href="https://cibuildwheel.readthedocs.io"&gt;&lt;code&gt;cibuildwheel&lt;/code&gt;&lt;/a&gt; into their workflow.&lt;/p&gt;&#10;&lt;p&gt;I have a &lt;a href="https://iscinumpy.dev/post/overview-of-cibuildwheel"&gt;general overview post&lt;/a&gt; as well. Now&#10;let&amp;rsquo;s look at what&amp;rsquo;s new! Update: cibuildwheel is now an official package of the&#10;PyPA!&lt;/p&gt;</description></item><item><title>Overview of cibuildwheel 🎡</title><link>https://iscinumpy.dev/post/overview-of-cibuildwheel/</link><pubDate>Sat, 06 Feb 2021 20:58:16 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/overview-of-cibuildwheel/</guid><description>&lt;p&gt;This is the first of two posts on &lt;a href="https://cibuildwheel.readthedocs.io"&gt;&lt;code&gt;cibuildwheel&lt;/code&gt;&lt;/a&gt;, a fantastic project I&#10;joined after switching to it from my own &lt;a href="https://github.com/scikit-hep/azure-wheel-helpers"&gt;azure-wheel-helpers&lt;/a&gt;, which I&amp;rsquo;ve&#10;blogged about &lt;a href="https://iscinumpy.dev/post/azure-devops-python-wheels/"&gt;here before&lt;/a&gt;. It is the best wheelbuilding&#10;system available for Python today, and can make something that is normally a&#10;pain to setup and a headache to maintain a breeze (by forcing all the headaches&#10;on us, of course, as maintainers, but it&amp;rsquo;s better to solve issues centrally!&#10;Obviously we rather like solving these problems. Or we are just crazy, which is&#10;also possible ;) ).&lt;/p&gt;&#10;&lt;p&gt;Be sure to checkout&#10;&lt;a href="https://iscinumpy.dev/post/cibuildwheel-1-9-0"&gt;the followup post over new features in 1.8.0 and 1.9.0&lt;/a&gt;,&#10;too! Also, &lt;code&gt;cibuildwheel&lt;/code&gt; was recently accepted into the PyPA!&lt;/p&gt;</description></item><item><title>CMake: Best Practices</title><link>https://iscinumpy.dev/page/presentations/2021-02-02-scrt/</link><pubDate>Tue, 02 Feb 2021 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2021-02-02-scrt/</guid><description/></item><item><title>pybind11 2.6.0</title><link>https://iscinumpy.dev/post/pybind11-2-6-0/</link><pubDate>Wed, 21 Oct 2020 15:00:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/pybind11-2-6-0/</guid><description>&lt;figure class="transparent"&gt;&#10; &lt;img src="https://iscinumpy.dev/post/pybind11-2-6-0/images/pybind11-logo.png" alt="pybind11 logo" width="405" /&gt;&#10;&lt;/figure&gt;&#10;&#10;&#10;&lt;p&gt;I am pleased to announce the release of &lt;a href="https://github.com/pybind/pybind11/releases/tag/v2.6.0"&gt;pybind11 2.6.0&lt;/a&gt;! This is the largest&#10;release since 2.2 (released over three years ago). I would like to highlight&#10;some of the key changes below; be sure to check out the &lt;a href="https://pybind11.readthedocs.io/en/latest/changelog.html"&gt;changelog&lt;/a&gt; and&#10;&lt;a href="https://pybind11.readthedocs.io/en/latest/upgrade.html"&gt;upgrade guide&lt;/a&gt; for more information! The focus of this release was stability,&#10;packaging, and supporting more platforms, though there are a lot of small&#10;features and useful additions, covered by &lt;a href="https://pybind11.readthedocs.io"&gt;newly expanded docs&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Making of SciPy 2020's High Performance Histograms as Objects</title><link>https://iscinumpy.dev/post/making-of-scipy-2020/</link><pubDate>Thu, 13 Aug 2020 12:05:13 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/making-of-scipy-2020/</guid><description>&lt;figure class="transparent"&gt;&#10; &lt;img src="https://www.youtube.com/watch?v=ERraTfHkPd0" alt="Screenshot of SciPy video showing overlay effect" width="80%" /&gt;&#10;&lt;/figure&gt;&#10;&#10;&#10;&lt;p&gt;Now that SciPy 2020 is over, I would like to share the process I used to create&#10;the talk video. The effect was designed to recreate the feeling of watching an&#10;actual in-person talk. I will first cover parts, detailing what I got and some&#10;general suggestions, then I&amp;rsquo;ll discuss the filming process, and finally, I will&#10;cover the post-process procedure and software. The entire process took about a&#10;day and a half, with an overnight render, and cost about $200 (best compared to&#10;the cost of registration of a live conference).&lt;/p&gt;</description></item><item><title>The boost-histogram Package</title><link>https://iscinumpy.dev/page/presentations/2020-07-17-pyhep/</link><pubDate>Fri, 17 Jul 2020 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2020-07-17-pyhep/</guid><description/></item><item><title>boost-histogram: High-performance histograms as objects</title><link>https://iscinumpy.dev/page/presentations/2020-07-07-scipy/</link><pubDate>Tue, 07 Jul 2020 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2020-07-07-scipy/</guid><description/></item><item><title>Johns Hopkins COVID-19 Dataset in Pandas</title><link>https://iscinumpy.dev/post/johns-hopkins-covid/</link><pubDate>Mon, 30 Mar 2020 15:30:00 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/johns-hopkins-covid/</guid><description>&lt;p&gt;COVID-19 is ravaging the globe. Let&amp;rsquo;s look at the excellent Johns Hopkins&#10;dataset using Pandas. This will serve both as a guideline for getting the data&#10;and exploring on your own, as well as an example of Pandas multi-indexing in an easy&#10;to understand situation. I am currently involved in &lt;a href="https://science-responds.org"&gt;science-responds&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Python, NumPy, and Pandas</title><link>https://iscinumpy.dev/page/presentations/2020-01-28-rdm/</link><pubDate>Tue, 28 Jan 2020 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2020-01-28-rdm/</guid><description/></item><item><title>The boost-histogram beta release</title><link>https://iscinumpy.dev/post/boost-histogram-06/</link><pubDate>Fri, 13 Dec 2019 11:00:00 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/boost-histogram-06/</guid><description>&lt;figure class="transparent"&gt;&#10; &lt;img src="https://iscinumpy.dev/post/boost-histogram-06/images/BoostHistogramPythonLogo.png" alt="boost-histogram logo" width="405" /&gt;&#10;&lt;/figure&gt;&#10;&#10;&#10;&lt;p&gt;The foundational histogramming package for Python, &lt;a href="https://github.com/scikit-hep/boost-histogram"&gt;boost-histogram&lt;/a&gt;, hit beta&#10;status with version 0.6! This is a major update to the new &lt;a href="https://github.com/boostorg/histogram"&gt;Boost.Histogram&lt;/a&gt;&#10;bindings. Since I have not written about boost-histogram yet here, I will&#10;introduce the library in its current state. Version 0.6.2 was based on the&#10;recently released &lt;a href="https://www.boost.org"&gt;Boost C++ Libraries&lt;/a&gt; &lt;a href="https://www.boost.org/users/history/version_1_72_0.html"&gt;1.72&lt;/a&gt; Histogram&#10;package. Feel free to &lt;a href="https://boost-histogram.readthedocs.io/en/latest/"&gt;visit the docs&lt;/a&gt;, or keep reading&#10;this post.&lt;/p&gt;&#10;&lt;p&gt;This Python library is part of a larger picture in the &lt;a href="https://scikit-hep.org"&gt;Scikit-HEP&lt;/a&gt; ecosystem&#10;of tools for Particle Physics and is funded by &lt;a href="https://diana-hep.org"&gt;DIANA/HEP&lt;/a&gt; and &lt;a href="https://iris-hep.org"&gt;IRIS-HEP&lt;/a&gt;.&#10;It is the core library for making and manipulating histograms. Other packages&#10;are under development to provide a complete set of tools to work with and&#10;visualize histograms. The &lt;a href="https://github.com/scikit-hep/aghast"&gt;Aghast&lt;/a&gt; package is designed to convert between&#10;popular histogram formats, and the Hist package will be designed to make common&#10;analysis tasks simple, like plotting via tools such as the &lt;a href="https://github.com/scikit-hep/mplhep"&gt;mplhep&lt;/a&gt; package.&#10;Hist and Aghast will be initially driven by HEP (High Energy Physics and&#10;Particle Physics) needs, but outside issues and contributions are welcome and&#10;encouraged.&lt;/p&gt;</description></item><item><title>High-Performance Python: GPUs</title><link>https://iscinumpy.dev/page/presentations/2019-12-05-minicourse/</link><pubDate>Thu, 05 Dec 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-12-05-minicourse/</guid><description/></item><item><title>High-Performance Python: CPUs</title><link>https://iscinumpy.dev/page/presentations/2019-11-20-minicourse/</link><pubDate>Wed, 20 Nov 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-11-20-minicourse/</guid><description/></item><item><title>Recent developments in histogram libraries</title><link>https://iscinumpy.dev/page/presentations/2019-11-07-chep/</link><pubDate>Thu, 07 Nov 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-11-07-chep/</guid><description/></item><item><title>Python 3.8</title><link>https://iscinumpy.dev/post/python-38/</link><pubDate>Fri, 25 Oct 2019 14:11:20 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/python-38/</guid><description>&lt;p&gt;Python 3.8 is out, with new features and changes. The themes for this release&#10;have been performance, ABI/internals, and static typing, along with a smattering&#10;of new syntax. Given the recent&#10;&lt;a href="https://numpy.org/neps/nep-0029-deprecation_policy.html"&gt;community statement on Python support&lt;/a&gt;,&#10;we should be staying up to date with the current changes in Python. As Python 2&#10;sunsets, we are finally in an era where we can hope to someday use the features&#10;we see coming out of Python release again!&lt;/p&gt;</description></item><item><title>Python 3.8: What's new</title><link>https://iscinumpy.dev/page/presentations/2019-10-17-pyhep-python38/</link><pubDate>Thu, 17 Oct 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-10-17-pyhep-python38/</guid><description/></item><item><title>Python Histogramming Packages</title><link>https://iscinumpy.dev/page/presentations/2019-10-17-pyhep-hist/</link><pubDate>Thu, 17 Oct 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-10-17-pyhep-hist/</guid><description/></item><item><title>Boost Histogram Roadmap</title><link>https://iscinumpy.dev/page/presentations/2019-09-12-irisretreat/</link><pubDate>Thu, 12 Sep 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-09-12-irisretreat/</guid><description/></item><item><title>Modern CMake Workshop</title><link>https://iscinumpy.dev/page/presentations/2019-08-20-atlas/</link><pubDate>Tue, 20 Aug 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-08-20-atlas/</guid><description/></item><item><title>Modern CMake</title><link>https://iscinumpy.dev/page/presentations/2019-08-14-picscie/</link><pubDate>Wed, 14 Aug 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-08-14-picscie/</guid><description/></item><item><title>C++20</title><link>https://iscinumpy.dev/post/cpp-20/</link><pubDate>Sat, 20 Jul 2019 22:42:21 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cpp-20/</guid><description>&lt;p&gt;The final meeting for new features in C++ is over, so let&amp;rsquo;s explore the new&#10;features in C++, from a data science point of view. This is the largest release&#10;of C++ since C++11, and when you consider C++14 and C++17 to be interim&#10;releases, the entire 9 year cycle is possibly the largest yet! It may not feel&#10;quite as massive as C++11, since we didn&amp;rsquo;t have interim releases for C++11 and&#10;because C++11 is a much more complete, useful language than C++03, but this is&#10;still a really impactful release! This is also the first version to include&#10;every major feature from Bjarne Stroustrup&amp;rsquo;s &amp;ldquo;The Design and Evolution of C++&amp;rdquo;,&#10;also known as D&amp;amp;E, from 1994!&lt;/p&gt;&#10;&lt;p&gt;Let&amp;rsquo;s look at the major new features, as well as collections of smaller ones.&lt;/p&gt;</description></item><item><title>Setup a New Mac</title><link>https://iscinumpy.dev/post/setup-a-new-mac/</link><pubDate>Thu, 18 Jul 2019 11:01:06 -0400</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/setup-a-new-mac/</guid><description>&lt;p&gt;Here is a list of my favorite things to do to properly setup macOS for&#10;scientific work. I periodically update it; feel free to leave a comment if&#10;something breaks. This should work on macOS 11 on Intel; see&#10;&lt;a href="https://iscinumpy.dev/post/setup-apple-silicon"&gt;my post on Apple Silicon&lt;/a&gt; to track progress on a&#10;similar setup.&lt;/p&gt;</description></item><item><title>AmpGen &amp; Particle/DecayLanguage</title><link>https://iscinumpy.dev/page/presentations/2019-06-19-iris-apd/</link><pubDate>Wed, 19 Jun 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-06-19-iris-apd/</guid><description/></item><item><title>Histograms</title><link>https://iscinumpy.dev/page/presentations/2019-06-19-iris-hist/</link><pubDate>Wed, 19 Jun 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-06-19-iris-hist/</guid><description/></item><item><title>Azure DevOps: Python Wheels</title><link>https://iscinumpy.dev/post/azure-devops-python-wheels/</link><pubDate>Tue, 07 May 2019 22:00:00 +0200</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/azure-devops-python-wheels/</guid><description>&lt;p&gt;Note: I now &lt;em&gt;highly&lt;/em&gt; recommend &lt;a href="https://cibuildwheel.readthedocs.io"&gt;cibuildwheel&lt;/a&gt; instead of custom binary wheels.&#10;See &lt;a href="https://scikit-hep.org/developer/gha_pure"&gt;GHA Pure Python Wheels&lt;/a&gt; and &lt;a href="https://scikit-hep.org/developer/gha_wheels"&gt;GHA Binary Wheels&lt;/a&gt; for modern methods to&#10;produce wheels on GitHub Actions (directly applicable to Azure, as well, with&#10;minor changes; cibuildwheel works on almost all major CI providers).&#10;&lt;a href="https://iscinumpy.dev/tags/cibuildwheel/"&gt;See my new posts on cibuildwheel!&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;This is the third post in &lt;a href="https://iscinumpy.dev/categories/azure-devops"&gt;a series&lt;/a&gt; about Azure&#10;DevOps. This one is about making Python wheels. If you &lt;a href="https://pythonwheels.com"&gt;want to play&#10;nice&lt;/a&gt; with Python users, or you have a complex build, this will&#10;make your package far more accessible to users. They are faster to install and&#10;to use and more secure. We will quickly cover making universal wheels, then we&#10;will move on to fully compiled binaries, including C++14, manylinux2010, and&#10;other hot topics. This series was developed to update the testing and releasing&#10;of Python packages for &lt;a href="http://scikit-hep.org"&gt;Scikit-HEP&lt;/a&gt;. The results of this tutorial can be seen&#10;in the &lt;a href="https://github.com/scikit-hep/boost-histogram"&gt;boost-histogram&lt;/a&gt; repository, under the &lt;code&gt;.ci&lt;/code&gt; folder.&lt;/p&gt;</description></item><item><title>Azure DevOps: Releases</title><link>https://iscinumpy.dev/post/azure-devops-releases/</link><pubDate>Tue, 07 May 2019 21:00:00 +0200</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/azure-devops-releases/</guid><description>&lt;p&gt;This is the second post in &lt;a href="https://iscinumpy.dev/categories/azure-devops"&gt;a series&lt;/a&gt; about Azure&#10;DevOps. This one is about release pipelines; if you use Azure to build packages&#10;(like binaries, etc.), how do you push them to a final endpoint? In this&#10;example, we will be building a simple pure Python package, and pushing the&#10;result to Test-PyPI. You can adapt it to your situation, however. The&#10;&lt;a href="https://iscinumpy.dev/post/azure-devops-python-wheels"&gt;third post&lt;/a&gt; will cover building Python&#10;binaries. This series was developed to update the testing and releasing of&#10;Python packages for &lt;a href="http://scikit-hep.org"&gt;Scikit-HEP&lt;/a&gt;. Several of the projects in Scikit-HEP are&#10;using release pipelines, including &lt;a href="https://github.com/scikit-hep/boost-histogram"&gt;boost-histogram&lt;/a&gt; and &lt;a href="https://github.com/scikit-hep/particle"&gt;Particle&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Note: I now highly recommend GitHub Actions, which is almost &amp;ldquo;Azure 2.0&amp;rdquo;. You&#10;can read my tutorials on GitHub Actions on the &lt;a href="https://scikit-hep.org/developer/gha_basic"&gt;Scikit-HEP developer pages&lt;/a&gt;.&#10;The release process, in particular, is simpler, and you still get the benefit of&#10;artifacts.&lt;/p&gt;</description></item><item><title>Azure DevOps: Introduction</title><link>https://iscinumpy.dev/post/azure-devops-intro/</link><pubDate>Tue, 07 May 2019 20:00:00 +0200</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/azure-devops-intro/</guid><description>&lt;p&gt;Continuous Integration (CI) is fantastic for software development and&#10;deployment. One of the newest entries into the CI market&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; is Microsoft&amp;rsquo;s&#10;&lt;a href="https://azure.microsoft.com/en-us/services/devops/"&gt;Azure DevOps&lt;/a&gt;. Their Open Source support is impressive; it is likely part of&#10;the recent push&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt; by Microsoft to be more Open Source friendly. Open Source&#10;projects get 10 parallel builds, unlimited build minutes, 6 hour job timeouts,&#10;and incredibly fast jobs on macOS, Linux, and Windows, all via a single&#10;platform. Quite a few major projects&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt; have been moving to Azure since the&#10;initial release in December 2018. The configuration of DevOps is second only to&#10;GitLab CI in ease of use and possibly the most expressive system available. The&#10;multiple pipeline support also scales well to complicated procedures.&lt;/p&gt;&#10;&lt;p&gt;This is the first in &lt;a href="https://iscinumpy.dev/categories/azure-devops"&gt;a series&lt;/a&gt; of posts covering an&#10;introduction to setting up projects in Azure DevOps, developed to update the&#10;testing and releasing of Python packages for &lt;a href="http://scikit-hep.org"&gt;Scikit-HEP&lt;/a&gt;, a project for a&#10;coherent High Energy Physics Python analysis toolset. The&#10;&lt;a href="https://iscinumpy.dev/post/azure-devops-releases"&gt;second post&lt;/a&gt; covers release pipelines, and the&#10;&lt;a href="https://iscinumpy.dev/post/azure-devops-python-wheels"&gt;third&lt;/a&gt; covers building binary Python packages&#10;using DevOps.&lt;/p&gt;&#10;&lt;p&gt;Note: I now highly recommend GitHub Actions, which is almost &amp;ldquo;Azure 2.0&amp;rdquo;, if you&#10;are interested in setting up CI. The language is very similar, although&#10;simplified, with some non-backward compatible bugfixes (such as multiline&#10;expressions will error if any line files, instead of just on the last line in&#10;Azure). You can read my tutorials on GitHub Actions on the &lt;a href="https://scikit-hep.org/developer/gha_basic"&gt;Scikit-HEP developer&#10;pages&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>A hybrid deep learning approach to vertexing</title><link>https://iscinumpy.dev/page/presentations/2019-04-17-iml/</link><pubDate>Wed, 17 Apr 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-04-17-iml/</guid><description/></item><item><title>boost-histogram and hist</title><link>https://iscinumpy.dev/page/presentations/2019-04-15-iris/</link><pubDate>Mon, 15 Apr 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-04-15-iris/</guid><description/></item><item><title>A hybrid deep learning approach to vertexing</title><link>https://iscinumpy.dev/page/presentations/2019-04-03-ctd/</link><pubDate>Wed, 03 Apr 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-04-03-ctd/</guid><description/></item><item><title>Conda: a complete reproducible ROOT environment in under 5 minutes</title><link>https://iscinumpy.dev/page/presentations/2019-03-21-how-conda/</link><pubDate>Thu, 21 Mar 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-03-21-how-conda/</guid><description/></item><item><title>Machine Learning for the Primary Vertex reconstruction</title><link>https://iscinumpy.dev/page/presentations/2019-03-20-how-ml/</link><pubDate>Wed, 20 Mar 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-03-20-how-ml/</guid><description/></item><item><title>A hybrid deep learning approach to vertexing</title><link>https://iscinumpy.dev/page/presentations/2019-03-11-acat/</link><pubDate>Mon, 11 Mar 2019 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2019-03-11-acat/</guid><description/></item><item><title>ROOT on Conda Forge</title><link>https://iscinumpy.dev/post/root-conda/</link><pubDate>Wed, 13 Feb 2019 10:18:37 +0100</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/root-conda/</guid><description>&lt;p&gt;For High Energy Physics, the go-to framework for big data analysis has been&#10;CERN&amp;rsquo;s &lt;a href="https://root.cern"&gt;ROOT&lt;/a&gt; framework. ROOT is a massive C++ library that even predates the&#10;STL in some areas. It is&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; &lt;em&gt;also&lt;/em&gt; a JIT C++ interpreter called Cling, probably&#10;the best in the business. If you have&#10;&lt;a href="https://andersy005.github.io/blog/2018/01/20/play-interactively-with-cpp-getting-started-with-xeus-cling/"&gt;heard of&lt;/a&gt;&#10;the &lt;a href="https://github.com/QuantStack/xeus-cling"&gt;Xeus&lt;/a&gt; C++ Kernel for Jupyter, that is built on top of Cling. ROOT has&#10;everything a HEP physicist could want: math, plotting, histograms, tuple and&#10;tree structures, a very powerful file format for IO, machine learning, Python&#10;bindings, and more. It also does things like dictionary generation and arbitrary&#10;class serialization (other large frameworks like &lt;a href="https://qt.io"&gt;Qt&lt;/a&gt; have similar generation&#10;tools).&lt;/p&gt;&#10;&lt;p&gt;You may already be guessing one of the most common problems for ROOT. It is huge&#10;and difficult to install &amp;ndash; if you build from source, that&amp;rsquo;s a several hour task&#10;on a single core. It has gotten &lt;a href="https://root.cern/install/"&gt;much better&lt;/a&gt; in the&#10;last 6 years, and there are several places you can find ROOT, but there are&#10;still areas where it is challenging. This is especially true for Python; ROOT is&#10;linked to your distro&amp;rsquo;s Python (both python2 and python3 if your distro supports&#10;it, as of ROOT 6.22); but the common rule for using Python is &amp;ldquo;don&amp;rsquo;t touch your&#10;system Python&amp;rdquo; - so modern Python users should be in a virtual environment, and&#10;for that ROOT requires the system site-packages option be enabled, which is not&#10;always ideal. And, if you use the &lt;a href="https://www.anaconda.com/distribution/"&gt;Anaconda Python distribution&lt;/a&gt;,&#10;which is the most popular scientific distribution of Python and massively&#10;successful for ML frameworks, the general rule even for people who build ROOT&#10;themselves has been: don&amp;rsquo;t. But now, you can get a fully featured ROOT binary&#10;package for macOS or Linux, Python 2.7, 3.6, 3.7, or 3.8 from &lt;a href="https://conda-forge.org"&gt;Conda-Forge&lt;/a&gt;,&#10;the most popular Anaconda community channel! Many more HEP recipes have now been&#10;added to Conda-Forge, as well! ROOT now also provides a &lt;a href="https://root.cern/new-docker-images/"&gt;conda docker image&lt;/a&gt;,&#10;too!&lt;/p&gt;</description></item><item><title>ROOT Install Options</title><link>https://iscinumpy.dev/post/root-install/</link><pubDate>Mon, 04 Feb 2019 10:44:37 +0100</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/root-install/</guid><description>&lt;p&gt;For particle physicists, ROOT is one of the most important toolkits around. It&#10;is a huge suite of tools that predates the C++ standard library, and has almost&#10;anything a particle physicist could want. It has driven developments in other&#10;areas too. ROOT&amp;rsquo;s current C++ interpreter, CLING, is the most powerful C++&#10;interpreter available and is used by the Xeus project for Jupyter. The Python&#10;work has helped PyPy, with CPPYY also coming from ROOT. However, due to the&#10;size, complexity, and age of some parts of ROOT, it can be a bit challenging to&#10;install; and it is even more challenging when you want it to talk to Python. I&#10;would like to point to the brand-new Conda-Forge ROOT package for Linux and&#10;macOS, and point out a few other options for macOS installs. Note for Windows&#10;users: Due to the fact that ROOT expects the type &lt;code&gt;long&lt;/code&gt; to match the system&#10;pointer size, 64-bit Windows cannot be supported for quite some time. While you&#10;can use it in 32 bit form, this is generally impossible to connect to Python,&#10;which usually will be a 64-bit build.&lt;/p&gt;</description></item><item><title>Illustrations and videos</title><link>https://iscinumpy.dev/page/illustrations/</link><pubDate>Mon, 10 Dec 2018 11:32:00 +0100</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/illustrations/</guid><description>&lt;p&gt;These are some illustrations and videos that I have made over the years.&lt;/p&gt;</description></item><item><title>Histogram Speeds in Python</title><link>https://iscinumpy.dev/post/histogram-speeds-in-python/</link><pubDate>Thu, 01 Nov 2018 14:58:09 +0100</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/histogram-speeds-in-python/</guid><description>&lt;p&gt;Let&amp;rsquo;s compare several ways of making Histograms. I&amp;rsquo;m going to assume you would&#10;like to end up with a nice OO histogram interface, so all the 2D methods will&#10;fill a Physt histogram. We will be using a 2 x 1,000,000 element array and&#10;filling a 2D histogram, or 10,000,000 elements in a 1D histogram. Binnings are&#10;regular.&lt;/p&gt;&#10;&lt;h2 id="1d-10000000-item-histogram"&gt;1D 10,000,000 item histogram&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Example&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;KNL&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;MBP&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;X24&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;NumPy: histogram&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;704 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;147 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;114 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;NumPy: bincount&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;432 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;110 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;117 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;fast-histogram&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;337 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;45.9 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;45.7 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Numba&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;312 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;58.8 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;60.7 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="2d-1000000-item-histogram"&gt;2D 1,000,000 item histogram&lt;/h3&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Example&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;KNL&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;MBP&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;X24&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Physt&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.21 s&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;293 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;246 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;NumPy: histogram2d&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;456 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;114 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;88.3 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;NumPy: add.at&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;247 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;62.7 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;49.7 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;NumPy: bincount&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;81.7 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;23.3 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;20.3 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;fast-histogram&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;53.7 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;10.4 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;7.31 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;fast-hist threaded 0.5&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(6) 62.5 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;9.78 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(6) 15.4 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;fast-hist threaded (m)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;62.3 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;4.89 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;3.71 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Numba&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;41.8 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;10.2 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;9.73 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Numba threaded&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(6) 49.2 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;4.23 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(6) 4.12 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Cython&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;112 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;12.2 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;11.2 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Cython threaded&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(6) 128 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;5.68 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(8) 4.89 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;pybind11 sequential&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;93.9 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;9.20 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;17.8 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;pybind11 OpenMP atomic&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;4.06 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;6.87 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.91 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;pybind11 C++11 atomic&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(32) 10.7 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;7.08 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(48) 2.65 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;pybind11 C++11 merge&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(32) 23.0 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;6.03 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;(48) 4.79 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;pybind11 OpenMP merge&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;8.74 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;5.04 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;1.79 ms&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;</description></item><item><title>PV finding with CNNs</title><link>https://iscinumpy.dev/page/presentations/2018-09-26-lhcb/</link><pubDate>Wed, 26 Sep 2018 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2018-09-26-lhcb/</guid><description/></item><item><title>iminuit: interactive python wrapper around MINUIT2</title><link>https://iscinumpy.dev/page/presentations/2018-09-12-root/</link><pubDate>Wed, 12 Sep 2018 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2018-09-12-root/</guid><description/></item><item><title>A Python upgrade to the GooFit package for parallel fitting</title><link>https://iscinumpy.dev/page/presentations/2018-07-09-chep/</link><pubDate>Mon, 09 Jul 2018 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2018-07-09-chep/</guid><description/></item><item><title>Binding Minuit2</title><link>https://iscinumpy.dev/post/binding-minuit2/</link><pubDate>Sat, 07 Jul 2018 21:00:00 +0200</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/binding-minuit2/</guid><description>&lt;p&gt;Let&amp;rsquo;s try a non-trivial example of a binding: Minuit2 (6.14.0 standalone&#10;edition).&lt;/p&gt;</description></item><item><title>Tools to Bind to Python</title><link>https://iscinumpy.dev/post/tools-to-bind-to-python/</link><pubDate>Sat, 07 Jul 2018 21:00:00 +0200</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/tools-to-bind-to-python/</guid><description>&lt;p&gt;This was originally given as a PyHEP 2018 talk. It is designed to be&#10;interactive, and can be run in SWAN if you have a CERN account. If you want to&#10;run it manually, just download the repository:&#10;&lt;a href="https://github.com/henryiii/pybindings_cc"&gt;github.com/henryiii/pybindings_cc&lt;/a&gt;.&#10;It is easy to run in Anaconda.&lt;/p&gt;</description></item><item><title>Tools to bind to Python</title><link>https://iscinumpy.dev/page/presentations/2018-07-07-pyhep2018/</link><pubDate>Sat, 07 Jul 2018 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2018-07-07-pyhep2018/</guid><description/></item><item><title>Announcing CLI11 1.6</title><link>https://iscinumpy.dev/post/announcing-cli11-16/</link><pubDate>Wed, 27 Jun 2018 14:44:40 +0200</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/announcing-cli11-16/</guid><description>&lt;p&gt;&lt;a href="https://github.com/CLIUtils/CLI11"&gt;CLI11&lt;/a&gt;, a powerful library for writing beautiful command line interfaces in&#10;C++11, has &lt;a href="https://github.com/CLIUtils/CLI11/releases"&gt;been updated to 1.6&lt;/a&gt;, the largest update ever. CLI11&#10;output is more customizable than ever, and has a better functionality separation&#10;under the hood.&lt;/p&gt;&#10;&lt;p&gt;CLI11 has had the formatting system completely redesigned, with minor or&#10;complete customization of the output possible. Configuration file reading and&#10;writing also can be configured; a new example with json instead of ini&#10;formatting is included. Validators (finally) have custom help output, as well.&#10;Many odd corner cases have been made possible, such as interleaving options.&lt;/p&gt;</description></item><item><title>CMake 3.11</title><link>https://iscinumpy.dev/post/cmake-311/</link><pubDate>Mon, 02 Apr 2018 11:16:57 +0200</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cmake-311/</guid><description>&lt;p&gt;CMake 3.11 was just released; this is a particularly exciting release for CMake.&#10;I&amp;rsquo;d like to give a quick and friendly introduction to the new features that&#10;might make the largest difference for CMake users.&lt;/p&gt;</description></item><item><title>Announcing GooFit 2.1</title><link>https://iscinumpy.dev/post/announcing-goofit-21/</link><pubDate>Thu, 07 Dec 2017 03:20:00 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/announcing-goofit-21/</guid><description>&lt;!-- prettier-ignore-start --&gt;&#10;&lt;p class="white"&gt;&lt;img src="https://iscinumpy.dev/images/post/2017/GooFitLogo21small.png" alt="GooFit logo" loading="lazy"&gt;&#10;&lt;/p&gt;&#10;&lt;!-- prettier-ignore-end --&gt;&#10;&lt;p&gt;GooFit 2.1 introduces the full-featured Python bindings to GooFit. These&#10;bindings mimic the C++ usage of GooFit, including bindings for all PDFs, and&#10;also provide NumPy-centric conversions, live Jupyter notebook printing, pip&#10;install, and more. Most of the examples in C++ are provided in Python form, as&#10;well.&lt;/p&gt;&#10;&lt;p&gt;Several other API changes were made. Observables are now distinguished from&#10;Variables and provided as a separate class. Both these classes are now passed&#10;around by copy everywhere.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; The three and four body amplitude classes have&#10;been refactored and simplified. OpenMP is now supported via homebrew on macOS;&#10;GooFit is one of the only packages that currently can build with OpenMP on the&#10;default macOS compiler. Eigen is now available, and &lt;a href="https://github.com/CLIUtils/CLI11"&gt;CLI11&lt;/a&gt; has been updated to&#10;version 1.3.&lt;/p&gt;&#10;&lt;p&gt;GooFit 2.1 will receive continuing support while development on GooFit 2.2&#10;presses on with a new indexing scheme for PDFs.&lt;/p&gt;</description></item><item><title>My Software</title><link>https://iscinumpy.dev/page/software/</link><pubDate>Wed, 06 Dec 2017 13:17:33 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/software/</guid><description>&lt;h2 id="my-projects"&gt;My projects&lt;/h2&gt;&#10;&lt;p&gt;Besides being an admin at &lt;a href="https://scikit-hep.org"&gt;Scikit-HEP&lt;/a&gt;, and active in conda-forge and&#10;homebrew, these are some of the projects I work on directly:&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Name&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://pybind11.readthedocs.io"&gt;pybind11&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Binding C++11+ and Python beautifully.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://cibuildwheel.readthedocs.io"&gt;cibuildwheel&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Create Python wheels beautifully.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/scikit-hep/boost-histogram"&gt;boost-histogram&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Histograms in Python based on Boost.Histogram for C++14.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/CLIUtils/CLI11"&gt;CLI11&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;A powerful but easy to use C++11 command line interface parser.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/scikit-hep/particle"&gt;Particle&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Particle descriptions in Python.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/scikit-hep/decaylanguage"&gt;DecayLanguage&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Decay chains in Python.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://plumbum.readthedocs.io/en/latest"&gt;Plumbum&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;A shell tools library for Python, with color, ssh, paths, cli, and more.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/GooFit/GooFit"&gt;GooFit&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;An OpenMP/CUDA powered fitting library.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/iris-hep/jekyll-indico"&gt;Jekyll-Indico&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;A plugin to collect Indico meetings for Jekyll, written in Ruby.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/conda-forge/root-feedstock"&gt;Conda-Forge ROOT&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;A project that did the impossible: make ROOT a conda package!&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/utgwkk/pytest-github-actions-annotate-failures"&gt;pytest-github-actions-annotate-failures&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;A utility to convert pytest errors to annotations in GitHub Actions.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;Classic or smaller historic projects:&lt;/p&gt;</description></item><item><title>Include What You Use</title><link>https://iscinumpy.dev/post/include-what-you-use/</link><pubDate>Tue, 05 Dec 2017 14:06:35 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/include-what-you-use/</guid><description>&lt;p&gt;Include-what-you-use is a promising little tool for cleaning up a codebase. It&#10;didn&amp;rsquo;t end up working for the use I had for it, but it still could be useful.&#10;Here is a quick guideline on installing it on macOS.&lt;/p&gt;</description></item><item><title>Comparing CLI11 and Boost PO</title><link>https://iscinumpy.dev/post/comparing-cli11-and-boostpo/</link><pubDate>Sun, 03 Dec 2017 16:31:50 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/comparing-cli11-and-boostpo/</guid><description>&lt;p&gt;CLI11 started years ago as a set of tools built on Boost Program Options (PO),&#10;and has since matured into the powerful, easy-to-use stand-alone library it is&#10;available today. If you would like to see the original inspiration for CLI11,&#10;look at&#10;&lt;a href="https://github.com/CLIUtils/CLI11/blob/v0.1/include/Program.hpp"&gt;Program.hpp in CLI11 0.1&lt;/a&gt;.&#10;The rest of the post will focus on a comparison between making a CLI app in the&#10;two libraries. I am going to assume that you are preparing fairly basic but&#10;non-trivial programs in the following comparison.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; CLI11 is more concise, and provides more control with better defaults&#10;in many cases, but was inspired by Boost PO.&lt;/p&gt;</description></item><item><title>Announcing CLI11 1.3</title><link>https://iscinumpy.dev/post/announcing-cli11-13/</link><pubDate>Fri, 01 Dec 2017 09:03:50 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/announcing-cli11-13/</guid><description>&lt;p&gt;&lt;a href="https://github.com/CLIUtils/CLI11"&gt;CLI11&lt;/a&gt;, a powerful library for writing beautiful command line interfaces in&#10;C++11, has &lt;a href="https://github.com/CLIUtils/CLI11/releases"&gt;been updated to 1.3&lt;/a&gt;, the largest update ever. CLI11 is&#10;more powerful than ever, and has simpler and more consistent parsing under the&#10;hood.&lt;/p&gt;&#10;&lt;p&gt;This version focused on refactoring several key systems to ensure correct&#10;behavior in the interaction of different settings. Most caveats about features&#10;only working on the main App have been addressed, and extra arguments have been&#10;reworked. Inheritance of defaults makes configuring CLI11 much easier without&#10;having to subclass. Policies add new ways to handle multiple arguments to match&#10;your favorite CLI programs. Error messages and help messages are better and more&#10;flexible. Several bugs and odd behaviors in the parser have been fixed.&lt;/p&gt;</description></item><item><title>Watching GitHub Releases</title><link>https://iscinumpy.dev/post/watching-github-releases/</link><pubDate>Tue, 28 Nov 2017 16:54:14 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/watching-github-releases/</guid><description>&lt;p&gt;If you use an RSS feed reader, you can watch all your favorite GitHub&#10;repositories for new releases! Just follow:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;https://github.com/USER/REPO/releases.atom&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can see a long discussion with other options&#10;&lt;a href="https://github.com/isaacs/github/issues/410#issuecomment-163761492"&gt;here&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>OpenMP on High Sierra</title><link>https://iscinumpy.dev/post/omp-on-high-sierra/</link><pubDate>Mon, 13 Nov 2017 15:41:35 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/omp-on-high-sierra/</guid><description>&lt;p&gt;Building OpenMP code is actually possible using Apple Clang that comes default&#10;with macOS&amp;rsquo;s Xcode! Although Apple does not build the OpenMP library, the&#10;compiler still supports it. In this post, I demonstrate the procedure necessary&#10;to include OpenMP in your build, both with the new support in CMake 3.12, as&#10;well as how it would be done without it.&lt;/p&gt;</description></item><item><title>Writing</title><link>https://iscinumpy.dev/page/writing/</link><pubDate>Fri, 10 Nov 2017 22:08:21 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/writing/</guid><description>&lt;h2 id="gitjupyter-books"&gt;Git/Jupyter Books&lt;/h2&gt;&#10;&lt;p&gt;Here is a list of GitBooks that I have either written or helped write:&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Name&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://henryiii.github.io/level-up-your-python"&gt;Level Up Your Python&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Intermediate to advanced Python, for a Princeton Research Computing Workshop.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://cliutils.gitlab.io/modern-cmake/"&gt;Modern CMake&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;A fantastic, up-to-date resource for CMake the way it should be.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/henryiii/compclass"&gt;CompClass&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Computational Science in Python course given at the University of Cincinnati, Fall 2018.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://lhcb.github.io/developkit-lessons/first-development-steps/"&gt;DevelopKit&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Developing software in LHCb&amp;rsquo;s Run 3.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://cliutils.gitlab.io/plugin-term"&gt;GitBook Plugin - Term&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;A powerful terminal formatting plugin (used in other GitBooks).&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://cliutils.github.io/CLI11/book/"&gt;CLI11 Tutorial&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Command line parsing made beautiful.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://goofit.gitlab.io/root-tutorial"&gt;UC ROOT Tutorial&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Basic ROOT for HEP, conversion from old material.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://goofit.gitlab.io/Goo2Torial"&gt;GooFit 2Torial&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Using GooFit, writing GooFit.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="tutorials-and-workshops"&gt;Tutorials and workshops&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Name&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Description&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://hsf-training.github.io/hsf-training-cmake-webpage/"&gt;HSF Modern CMake workshop&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Workshop on CMake for ATLAS students at LBNL.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/henryiii/python-performance-minicourse"&gt;Python CPU minicourse&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Minicourse for high-performance CPU programming.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/henryiii/pygpu-minicourse"&gt;Python GPU minicourse&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Minicourse for GPU programming.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;a href="https://github.com/henryiii/pandas-notebook"&gt;Pandas demo&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Demo of Pandas.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="websites"&gt;Websites&lt;/h2&gt;&#10;&lt;p&gt;These are websites I have either created or worked on.&lt;/p&gt;</description></item><item><title>About the author</title><link>https://iscinumpy.dev/page/about/</link><pubDate>Tue, 10 Oct 2017 14:17:15 -0500</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/about/</guid><description>&lt;p&gt;Henry Schreiner is a Computational Physicist / Research Software Engineer in&#10;High Energy Physics at Princeton University. He specializes in the interface&#10;between high-performance compiled codes and interactive computation in Python,&#10;in software distribution, and in interface design. He has previously worked on&#10;computational cosmic-ray tomography for archaeology and high performance GPU&#10;model fitting. He is currently a member of the IRIS-HEP project, developing&#10;tools for the next era of the Large Hadron Collider (LHC).&lt;/p&gt;</description></item><item><title>Goofit 2.0</title><link>https://iscinumpy.dev/page/presentations/2017-08-22-acat2017/</link><pubDate>Tue, 22 Aug 2017 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2017-08-22-acat2017/</guid><description/></item><item><title>Recent developments in GooFit</title><link>https://iscinumpy.dev/page/presentations/2018-02-12-diana-goofit/</link><pubDate>Tue, 22 Aug 2017 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2018-02-12-diana-goofit/</guid><description/></item><item><title>GPUs in LHCb for Analysis</title><link>https://iscinumpy.dev/page/presentations/2017-08-03-dpf2017/</link><pubDate>Thu, 03 Aug 2017 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2017-08-03-dpf2017/</guid><description/></item><item><title>Modernizing GooFit: A Case Study</title><link>https://iscinumpy.dev/page/presentations/2017-07-12-pearc17/</link><pubDate>Wed, 12 Jul 2017 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2017-07-12-pearc17/</guid><description/></item><item><title>Announcing GooFit 2.0</title><link>https://iscinumpy.dev/post/announcing-goofit-20/</link><pubDate>Thu, 08 Jun 2017 17:54:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/announcing-goofit-20/</guid><description>&lt;p&gt;The next version of the premier CUDA/OpenMP fitting program for HEP analysis,&#10;GooFit 2.0, &lt;a href="https://github.com/GooFit/GooFit"&gt;has been released&lt;/a&gt;. GooFit is now easy to build on a wide&#10;variety of Unix systems, and supports debuggers and IDEs. GooFit is faster, has&#10;unit tests, and working examples. More PDFs and examples have been added, as&#10;well as newly released example datasets that are downloaded automatically.&#10;GooFit now has built in support for MPI, and can use that to deploy to multiple&#10;graphics cards on the same machine. A new command line parser (&lt;a href="https://github.com/CLIUtils/CLI11"&gt;CLI11&lt;/a&gt;) and&#10;drastically improved logging and errors have made code easier to write and&#10;debug. Usage of GooFit specific terminology is now reduced, using standard&#10;Thrust or CUDA terms when possible, lowering the barrier for new developers. A&#10;new Python script has been added to assist users converting from pre 2.0 code.&lt;/p&gt;&#10;&lt;p&gt;The file structure of GooFit and the build system have been completely revamped.&#10;The fake &lt;code&gt;nvcc&lt;/code&gt; features have been removed, as have the &lt;code&gt;rootstuff&lt;/code&gt; copies of&#10;ROOT classes. PDFs are now organized by type and compile and link separately.&#10;Multiple PDF caching support has improved. The build system now uses CMake and&#10;manages external libraries.&lt;/p&gt;&#10;&lt;p&gt;A new feature of the CMake build system is GooFit Packages, which are complete&#10;packages that can be added to GooFit and built, allowing analysis code to live&#10;in a separate location from GooFit, rather than the old method of simply forking&#10;GooFit and adding your analysis manually. A GooFit Package can be made into an&#10;example trivially. See &lt;a href="https://github.com/maddocbf/goofit_KKPiPi"&gt;this package&lt;/a&gt;&#10;for an example.&lt;/p&gt;&#10;&lt;p&gt;GooFit 2.0 will receive continuing support while development on GooFit 2.1&#10;presses on.&lt;/p&gt;&#10;&lt;h2 id="links"&gt;Links&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://github.com/GooFit/GooFit"&gt;GooFit on GitHub&lt;/a&gt; • &lt;a href="https://GooFit.github.io"&gt;GooFit webpage&lt;/a&gt; • &lt;a href="https://GooFit.github.io/GooFit"&gt;API documentation&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Announcing CLI11 Version 1.0</title><link>https://iscinumpy.dev/post/announcing-cli11-10/</link><pubDate>Thu, 01 Jun 2017 14:05:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/announcing-cli11-10/</guid><description>&lt;p&gt;CLI11, a powerful library for writing command line interfaces in C++11, has just&#10;been released. There are no requirements beyond C++11 support (and even&#10;&lt;code&gt;&amp;lt;regex&amp;gt;&lt;/code&gt; support not required). It works on Mac, Linux, and Windows, and has&#10;100% test coverage on all three systems. You can simply drop in a single header&#10;file (&lt;code&gt;CLI11.hpp&lt;/code&gt; available in &lt;a href="https://github.com/CLIUtils/CLI11/releases"&gt;releases&lt;/a&gt;) to use CLI11 in your own application.&#10;Other ways to integrate it into a build system are listed in the &lt;a href="https://github.com/CLIUtils/CLI11/blob/master/README.md"&gt;README&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;The library was inspired by the Python libraries &lt;a href="http://plumbum.readthedocs.io/en/latest/"&gt;Plumbum&lt;/a&gt; and &lt;a href="http://click.pocoo.org/5/"&gt;Click&lt;/a&gt;, and&#10;incorporates many of their user friendly features. The library is extensively&#10;documented, with a &lt;a href="https://github.com/CLIUtils/CLI11/blob/master/README.md"&gt;friendly introduction&lt;/a&gt;, a tutorial filled (in&#10;progress) &lt;a href="https://cliutils.gitlab.io/CLI11"&gt;GitBook&lt;/a&gt;, and more technical &lt;a href="https://cliutils.github.io/CLI11"&gt;API docs&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>CLI11</title><link>https://iscinumpy.dev/page/presentations/2017-04-24-diana-cli11/</link><pubDate>Mon, 24 Apr 2017 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/presentations/2017-04-24-diana-cli11/</guid><description/></item><item><title>Perfect forwarding for methods</title><link>https://iscinumpy.dev/post/perfect-forwarding-for-methods/</link><pubDate>Fri, 17 Mar 2017 10:43:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/perfect-forwarding-for-methods/</guid><description>&lt;p&gt;I often see perfect forwarding listed for constructor arguments, but not usually&#10;for functions with a return or methods. Here is my solution for a method of&#10;class &lt;code&gt;Cls&lt;/code&gt;:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;typename&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="n"&gt;Args&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;auto&lt;/span&gt; &lt;span class="n"&gt;method&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Cls&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;cls&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Args&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;typename&lt;/span&gt; &lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;result_of&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;decltype&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;Cls&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;method&lt;/span&gt;&lt;span class="p"&gt;)(&lt;/span&gt;&lt;span class="n"&gt;Cls&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Args&lt;/span&gt;&lt;span class="p"&gt;...)&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;::&lt;/span&gt;&lt;span class="n"&gt;type&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;cls&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;method&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;forward&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Args&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)...);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This is useful if you want to call protected methods from a “helper” friend&#10;class, for example, to expose them to tests without having to require&#10;GoogleTest/GoogleMock to be available for regular users.&lt;/p&gt;</description></item><item><title>Setting up SSH forwarding</title><link>https://iscinumpy.dev/post/setting-up-ssh-forwarding/</link><pubDate>Wed, 01 Mar 2017 10:49:33 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/setting-up-ssh-forwarding/</guid><description>&lt;p&gt;SSH forwarding can improve your security along with reducing the need to type&#10;passwords and have multiple keys linked to your GitHub/GitLab instance. The&#10;procedure is:&lt;/p&gt;</description></item><item><title>Lua Environment Modules</title><link>https://iscinumpy.dev/post/lua-environment-modules/</link><pubDate>Wed, 11 Jan 2017 06:08:00 -0800</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/lua-environment-modules/</guid><description>&lt;p&gt;This is a guide to setting up Lmod (lua environment modules) on a CentOS system.&#10;I&amp;rsquo;ve used a similar procedure to set them up on a Mac, as well, so this is still&#10;a useful guide to the workings of Lmod if you use a different system; mostly&#10;paths will change. On a Mac, you&amp;rsquo;ll want to install &lt;code&gt;Lmod&lt;/code&gt; from the &lt;code&gt;science&lt;/code&gt;&#10;tap in &lt;code&gt;brew&lt;/code&gt;. There are several good pages covering environment modules (TCL&#10;version), but not many that use the newer Lua syntax. This document aims to fill&#10;that role.&lt;/p&gt;</description></item><item><title>Python 3 upgrade</title><link>https://iscinumpy.dev/post/python-3-upgrade/</link><pubDate>Wed, 12 Oct 2016 08:30:00 +0200</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/python-3-upgrade/</guid><description>&lt;p&gt;About ten years ago, Guido Van Rossum, the Python author and Benevolent Dictator&#10;for Life (BDFL), along with the Python community, decided to make several&#10;concurrent backward incompatible changes to Python 2.5 and release a new&#10;version, Python 3.0.&lt;/p&gt;</description></item><item><title>C++17</title><link>https://iscinumpy.dev/post/cpp-17/</link><pubDate>Sat, 10 Sep 2016 08:30:00 +0200</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cpp-17/</guid><description>&lt;p&gt;The every-three-year cycle has changed the development of C++; we are now&#10;getting consistent releases somewhere in-between the major and minor releases of&#10;old. The 2017 release may be called minor by some, with a huge portion of the&#10;planned improvements being pushed back another 3-6 years, but there were several&#10;substantial changes in useful areas; it is much more impactful than C++14, for&#10;example. This almost feels like a lead-in release to C++20.&lt;/p&gt;&#10;&lt;p&gt;The &lt;code&gt;std::variant&lt;/code&gt;, &lt;code&gt;std::optional&lt;/code&gt;, and &lt;code&gt;std::any&lt;/code&gt; additions to the standard&#10;library are huge, and can restructure the way you program (and are available for&#10;older C++ releases through Boost and other libraries).&lt;/p&gt;</description></item><item><title>C++14</title><link>https://iscinumpy.dev/post/cpp-14/</link><pubDate>Fri, 09 Sep 2016 08:30:00 +0200</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cpp-14/</guid><description>&lt;p&gt;Unlike C++11, this is a minor release, focused mostly on improvements on top of&#10;C++11 changes, with very little that one could call &amp;ldquo;new&amp;rdquo;. C++14 feels a little&#10;more natural than C++11 by expanding the usage of features and implementing&#10;common sense additions that were missed in the original C++11 release. There&#10;were also quite a few bug fixes; several of these were backported into C++11&#10;mode in compilers.&lt;/p&gt;&#10;&lt;p&gt;Also, while C++11 is always available in ROOT 6, C++14 requires a flag and&#10;compatible compiler, so C++14 features are often unavailable. The Conda-Forge&#10;ROOT package has C++17 enabled.&lt;/p&gt;</description></item><item><title>C++11</title><link>https://iscinumpy.dev/post/cpp-11/</link><pubDate>Thu, 08 Sep 2016 08:30:00 +0200</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cpp-11/</guid><description>&lt;p&gt;C++11 was the largest change ever made to C++; and due to the changed release&#10;schedule, probably will remain the largest single change. It is a well thought&#10;out, mostly backward-compatible change that can cause you to completely rethink&#10;the way you write code in C++. It is best thought of as almost a new language, a&#10;sort of (C++)++ language. There are too many changes to list here, and there are&#10;excellent resources available, so this is meant to just give you a taste of some&#10;of the most useful changes.&lt;/p&gt;&#10;&lt;p&gt;Many of the features work best together, or are related. There already are great&#10;resources for learning about C++11 (listed at the bottom of this lesson), and&#10;C++11 is already in use in most software. Therefore, the remainder of this&#10;lesson will cover a few of the common idioms in C++11 that a programmer&#10;experienced with the older C++ might not immediately think of.&lt;/p&gt;</description></item><item><title>GoogleTest and CMake</title><link>https://iscinumpy.dev/post/googletest-and-cmake/</link><pubDate>Fri, 25 Mar 2016 16:12:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/googletest-and-cmake/</guid><description>&lt;p&gt;This is a quick recipe for setting up CMake to use googletest in your projects.&#10;First, make a &lt;code&gt;tests&lt;/code&gt; folder in the root of your project. Then, add&#10;&lt;code&gt;add_subdirectory(tests)&lt;/code&gt; to your &lt;code&gt;CMakeLists.txt&lt;/code&gt;, after you&amp;rsquo;ve finished adding&#10;the libraries in your project. Note that the way I&amp;rsquo;ve written this probably&#10;requires CMake 3.4+.&lt;/p&gt;</description></item><item><title>A simple introduction to asyncio</title><link>https://iscinumpy.dev/post/a-simple-introduction-to-asyncio/</link><pubDate>Thu, 19 Nov 2015 09:46:00 -0800</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/a-simple-introduction-to-asyncio/</guid><description>&lt;p&gt;This is a simple explanation of the &lt;code&gt;asyncio&lt;/code&gt; module and new supporting language&#10;features in Python 3.5. Even though the new keywords &lt;code&gt;async&lt;/code&gt; and &lt;code&gt;await&lt;/code&gt; are new&#10;language constructs, they are mostly&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; useless without an event loop, and that&#10;is supplied in the standard library as &lt;code&gt;asyncio&lt;/code&gt;. Also, you need awaitable&#10;functions, which are only supplied by &lt;code&gt;asyncio&lt;/code&gt; (or in the growing set of async&#10;libraries, like &lt;code&gt;asyncssh&lt;/code&gt;, &lt;code&gt;quamash&lt;/code&gt; etc.).&lt;/p&gt;</description></item><item><title>A little example of how asyncio works</title><link>https://iscinumpy.dev/post/a-little-example-of-how-asyncio-works/</link><pubDate>Thu, 19 Nov 2015 09:43:00 -0800</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/a-little-example-of-how-asyncio-works/</guid><description>&lt;p&gt;This is a simple example to show how Asyncio works without using Asyncio itself,&#10;instead using a basic and poorly written event loop. This is only meant to give&#10;a flavor of what Asyncio does behind the curtains. I&amp;rsquo;m avoiding most details of&#10;the library design, like callbacks, just to keep this simple. Since this is&#10;written as an illustration, rather than real code, I&amp;rsquo;m going to dispense with&#10;trying to keep it 2.7 compatible.&lt;/p&gt;</description></item><item><title>Feynman Diagrams in Tikz</title><link>https://iscinumpy.dev/post/feynman-diagrams-in-tikz/</link><pubDate>Fri, 30 Oct 2015 07:02:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/feynman-diagrams-in-tikz/</guid><description>&lt;p&gt;There is a package for making Feynman diagrams in LaTeX. Unfortunately, it is&#10;old and &lt;code&gt;dvi&lt;/code&gt; latex only. If you are using pdflatex or lualatex, as you should&#10;be, it does not work. Even in regular LaTeX, it&amp;rsquo;s a bit of a pain. Why is there&#10;not a new package for pdflatex? Turns out, you don&amp;rsquo;t need one. Due to the&#10;powerful drawing library Tikz, you can create any diagram easily, and can&#10;customize it completely. For example:&lt;/p&gt;&#10;&#10; &#10;&lt;figure class="center white"&gt;&#10; &lt;img src="https://iscinumpy.dev/images/post/2015/fd_color.png" alt="Example diagram" width="50%" /&gt;&#10;&lt;/figure&gt;</description></item><item><title>Including CRY cosmic ray generator in CMake</title><link>https://iscinumpy.dev/post/cry-cosmic-ray-generator-in-cmake/</link><pubDate>Mon, 19 Oct 2015 09:07:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/cry-cosmic-ray-generator-in-cmake/</guid><description>&lt;p&gt;I realized that CRY did not have a CMake based install option, so including it&#10;in a GEANT4 cmake project might not be obvious. This is how you would do it in&#10;your CMakeLists.txt:&lt;/p&gt;</description></item><item><title>GTest Submodule</title><link>https://iscinumpy.dev/post/gtest-submodule/</link><pubDate>Wed, 07 Oct 2015 06:43:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/gtest-submodule/</guid><description>&lt;blockquote&gt;&#10;&lt;p&gt;Note: There is a better way to do this described&#10;&lt;a href="https://iscinumpy.dev/post/googletest-and-cmake"&gt;here&lt;/a&gt;.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;If you&amp;rsquo;ve ever tried &lt;code&gt;apt-get&lt;/code&gt; or &lt;code&gt;brew&lt;/code&gt; to try to install gtest, you are&#10;probably familiar with the fact that gtest is not &amp;ldquo;recommended&amp;rdquo; for global&#10;install on your system. As an alternative, the recommendation is that you make&#10;it part of your project. The process for making gtest part of your project,&#10;however, is not well documented, at least for modern git projects. What follows&#10;is the procedure I used to do so.&lt;/p&gt;</description></item><item><title>Slots in Python</title><link>https://iscinumpy.dev/post/slots-in-python/</link><pubDate>Thu, 06 Aug 2015 16:01:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/slots-in-python/</guid><description>&lt;p&gt;Slots seem to be poorly documented. What they do is simple, but whether they are&#10;used is tricky. This is a little mini-post on slots.&lt;/p&gt;</description></item><item><title>Basics of metaclasses</title><link>https://iscinumpy.dev/post/basics-of-metaclasses/</link><pubDate>Thu, 06 Aug 2015 15:59:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/basics-of-metaclasses/</guid><description>&lt;p&gt;This is a quick tutorial over the basics of what metaclasses do.&lt;/p&gt;&#10;&lt;h2 id="the-metaclass"&gt;The Metaclass&lt;/h2&gt;&#10;&lt;p&gt;Metaclasses, while seemingly a complex topic, really just do something very&#10;simple. They control what happens when you have code that turns into a class&#10;object. The normal place they are executed is right after the class statement.&#10;Let&amp;rsquo;s see that in action by using print as our metaclass.&lt;/p&gt;</description></item><item><title>Factory classmethods in Python</title><link>https://iscinumpy.dev/post/factory-classmethods-in-python/</link><pubDate>Wed, 29 Jul 2015 09:13:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/factory-classmethods-in-python/</guid><description>&lt;p&gt;I haven&amp;rsquo;t seen a great deal of practical documentation about using classmethods&#10;as factories in Python (which is arguably the most important use of a&#10;classmethod, IMO). This post hopes to fill in that gap.&lt;/p&gt;</description></item><item><title>Making an autoload extension for IPython</title><link>https://iscinumpy.dev/post/making-an-autoload-extension-for-ipython/</link><pubDate>Fri, 24 Jul 2015 07:06:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/making-an-autoload-extension-for-ipython/</guid><description>&lt;p&gt;I recently decided to try my hand at making an auto-load extension for Python&#10;and Plumbum. I was planning to suggest it as a new feature, then I thought it&#10;might be an experimental feature, and now it&amp;rsquo;s just a blog post. But it was an&#10;interesting idea and didn&amp;rsquo;t seem to be well documented process on the web. So,&#10;here it is.&lt;/p&gt;&#10;&lt;p&gt;The plan was to make commands like this:&lt;/p&gt;</description></item><item><title>Uncertainty extension for IPython</title><link>https://iscinumpy.dev/post/uncertainty-extension-for-ipython/</link><pubDate>Fri, 24 Jul 2015 06:45:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/uncertainty-extension-for-ipython/</guid><description>&lt;p&gt;Wouldn&amp;rsquo;t it be nice if we had uncertainty with a nice notation in IPython? The&#10;current method would be to use raw Python,&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;uncertainties&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ufloat&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ufloat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;12.34&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre class="output"&gt;&#10;12.340+/-0.010&#10;&lt;/pre&gt;&#10;&lt;p&gt;Let&amp;rsquo;s use the infix library to make the notation easier. We&amp;rsquo;ll define &lt;code&gt;|pm|&lt;/code&gt; to&#10;mean &lt;code&gt;+/-&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Plumbum color</title><link>https://iscinumpy.dev/post/plumbum-color-post/</link><pubDate>Wed, 22 Jul 2015 12:25:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/plumbum-color-post/</guid><description>&lt;p&gt;I&amp;rsquo;ve been working on a color addition to Plumbum for a little while, and I&amp;rsquo;d&#10;like to share the basics of using it with you now. This library was originally&#10;built around a special &lt;code&gt;str&lt;/code&gt; subclass, but now is built on the new &lt;code&gt;Styles&lt;/code&gt;&#10;representation and is far more powerful than the first implementation. It safely&#10;does nothing if you do not have a color-compatible system (posix + tty&#10;currently), but can be forced if need be. It is included with Plumbum, so you&#10;don&amp;rsquo;t have to add a requirement for your scripts that is non-essential (as color&#10;often is). It is integrated with &lt;code&gt;plumbum.cli&lt;/code&gt;, too. Also, I&amp;rsquo;ve managed to&#10;accelerate the color selection algorithms about 8x, allowing near game-like&#10;speeds. (see the &lt;code&gt;fullcolor.py&lt;/code&gt; example).&lt;/p&gt;</description></item><item><title>University of Texas Doctoral Thesis Template</title><link>https://iscinumpy.dev/post/univerity-of-texas-thesis/</link><pubDate>Sun, 12 Jul 2015 17:05:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/univerity-of-texas-thesis/</guid><description>&lt;p&gt;I have created a thesis class file for a UT Thesis in LaTeX. It has already been&#10;used for at least one passing thesis, so it does meet the current UT guidelines.&#10;(Please let me know if there are any issues!)&lt;/p&gt;&#10;&lt;p&gt;Since I use Bitbucket for all my private repositories (like my thesis itself),&#10;the code is in a Bitbucket repository rather than GitHub. Here is the link if&#10;you want to create a pull request or want to compile the class and documentation&#10;from the source .dtx file.&lt;/p&gt;</description></item><item><title>Plumbum scripting</title><link>https://iscinumpy.dev/post/plumbum-scripting/</link><pubDate>Sun, 12 Jul 2015 14:07:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/plumbum-scripting/</guid><description>&lt;p&gt;Scripting in Bash is a pain. Bash can do almost anything, and is unbeatable for&#10;small scripts, but it struggles when scaling up to doing anything close to a&#10;real world scripting problem. Python is a natural choice, especially for the&#10;scientist who already is using it for analysis. But, it&amp;rsquo;s much harder to do&#10;basic tasks in Python. So you are left with scripts starting out as Bash&#10;scripts, and then becoming a mess, then being (usually poorly) ported to Python,&#10;or even worse, being run by a Python script. I&amp;rsquo;ve seen countless Python scripts&#10;that run Bash scripts that run real programs. I&amp;rsquo;ve even written one or two. It&amp;rsquo;s&#10;not pretty.&lt;/p&gt;&#10;&lt;p&gt;I recently came (back) across a really powerful library for doing efficient&#10;command line scripts in Python. It contains a set of tools that makes the four&#10;(five with color) main tasks of command line scripts simple and powerful. I will&#10;also go over the one main drawback of the library (and the possible&#10;enhancement!).&lt;/p&gt;</description></item><item><title>Simple Overloading in Python</title><link>https://iscinumpy.dev/post/simple-operator-overloading-in-python/</link><pubDate>Tue, 07 Jul 2015 09:45:00 -0700</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/post/simple-operator-overloading-in-python/</guid><description>&lt;p&gt;This is intended as an example to demonstrate the use of overloading in object&#10;oriented programming. This was written as a Jupyter notebook (aka IPython) in&#10;Python 3. To run in Python 2, simply rename the variables that have unicode&#10;names, and replace &lt;code&gt;truediv&lt;/code&gt; with &lt;code&gt;div&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;While there are several nice Python libraries that support uncertainty (for&#10;example, the powerful&#10;&lt;a href="https://pypi.python.org/pypi/uncertainties/"&gt;uncertainties&lt;/a&gt; package and the&#10;related units and uncertainties package&#10;&lt;a href="http://pint.readthedocs.org/en/0.6/"&gt;pint&lt;/a&gt;), they usually use standard error&#10;combination rules. For a beginning physics class, often &amp;lsquo;maximum error&amp;rsquo;&#10;combination is used. Here, instead of using a standard deviation based error and&#10;using combination rules based on uncorrelated statistical distributions, we&#10;assume a simple maximum error and simply add errors.&lt;/p&gt;&#10;&lt;p&gt;To implement this, let&amp;rsquo;s build a Python class and use overloading to implement&#10;algebraic operations.&lt;/p&gt;</description></item><item><title>Archives</title><link>https://iscinumpy.dev/page/archive/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>henryfs@princeton.edu (Henry Schreiner)</author><guid>https://iscinumpy.dev/page/archive/</guid><description/></item></channel></rss>