Skip to main content

jpnorm

PyPI Python CI License

日本語テキストの「表記ゆれ」を、用途に合わせて 1 行で吸収するライブラリ。 Rust 製コアを Python から使います。neologdn の置き換えから、検索前処理、LLM 出力の評価、 名寄せまで、プリセットを選ぶだけで始められ、必要ならフラグ単位で細かく調整できます。

Fast, configurable Japanese text normalization. Rust core with Python bindings. Pick a preset (neologdn_compat, for_search, for_compare, for_display) or tune 37 flags; unifies old/variant kanji (國→国, 髙→高), katakana loanword spellings (ヴァ→バ, trailing ー), iteration marks (人々→人人), era years (令和6年→2024年); protects URLs / emails / mentions, handles emoji, converts kanji numerals, applies custom synonym dictionaries. 3 to 5 times faster than neologdn.

import jpnorm

jpnorm.normalize("ハンカクカナ と  全角  !!")
# => 'ハンカクカナ と 全角 !!'

ブラウザで試す → https://yoshitakaoyama.github.io/jpnorm/ (テキストを貼ると全プリセットの結果が並びます)

こんなときに使います

日本語には「同じ意味なのに文字列としては別物」になる書き方が大量にあります。 半角カナと全角カナ、全角英数と半角英数、ー と 〜 と -、㈱ と (株)、 三百二十円 と 320円、コンピューター と コンピュータ、ヴァイオリン と バイオリン、 渡邊 と 渡辺、髙橋 と 高橋、人々 と 人人、令和6年 と 2024年、幽☆遊☆白書 と 幽白……。 これらを放置すると、次のような問題が起きます。

困りごと 何が起きているか jpnorm でどうするか
検索・RAG で「ヒットするはずの文書」が出てこない 索引側と検索語で表記が違う for_search で両方を同じ形に揃えてから索引・検索する
LLM / OCR / 音声認識の精度を測ると、正解と「実質同じ」なのに不一致になる 全角半角・記号・漢数字の違いで完全一致が失敗 for_compare で潰してから compare() で判定する
顧客名・商品名の名寄せや重複検出で取りこぼす 社内独自の略称・表記ゆれ カスタム辞書で 幽白 → 幽遊白書 のように正規形へ寄せる
ユーザー投稿を表示したら半角カナやゼロ幅文字で崩れた 見た目に影響する文字と、見えない制御文字 for_display で見た目を壊さない範囲だけ整える
neologdn を使っているが、URL が壊れる・絵文字を消したい・設定を変えたい neologdn は固定処理で設定できない neologdn_compat から始めて、必要なフラグだけ足し引きする

インストール

pip install jpnorm
# または
uv add jpnorm

Python 3.10 以上。Linux (x86_64 / aarch64)・macOS (x86_64 / arm64)・Windows (x64) の wheel を配布しているので、Rust ツールチェーンは不要です。 コマンドラインだけ使いたい場合は pipx install jpnorm で jpnorm コマンドが入ります。

ユースケース別ガイド

索引を作るときと検索するときの両方で同じ Normalizer を通します。 URL やメールアドレスは壊さず、絵文字は落とし、記号のバリエーションを揃えます。

from jpnorm import Normalizer

n = Normalizer("for_search")

docs = ["PYTHON入門 〜〜 初心者向け🔰", "python 入門(初心者向け)"]
n.normalize_batch(docs)
# => ['python入門 〜 初心者向け', 'python 入門(初心者向け)']

n.normalize("詳細は https://example.com/Docs?Q=1 を参照 📎")
# => '詳細は https://example.com/Docs?Q=1 を参照'   ← URL はそのまま

検索でヒット落ちの原因になりやすい「同じ語の別表記」も、辞書なしで同じ形に落とします。

n.normalize("コンピューター")      # => 'コンピュータ'   ← 末尾長音 (JIS Z 8301 方式)
n.normalize("ヴァイオリン")        # => 'バイオリン'
n.normalize("ウェブサーバー")      # => 'ウエブサーバ'
n.normalize("渡邊さんと髙橋さん")  # => '渡辺さんと高橋さん'   ← 旧字体・異体字
n.normalize("人々の舊字體")        # => '人人の旧字体'   ← 繰り返し記号・旧字体
n.normalize("令和6年度予算")       # => '2024年度予算'   ← 元号

英字は小文字に揃えます (case="keep" で無効化)。日本語と英数字の間の空白は残します (cjk_spacing="remove" で削除)。

2. LLM / OCR / 音声認識の出力評価 (for_compare + compare)

「正解データと実質同じか」を判定したい場面です。全角半角・記号・漢数字・空白の違いを すべて潰した上で、完全一致・前方一致・編集距離・LLM judge のいずれかで比較します。

from jpnorm import Normalizer, compare

n = Normalizer("for_compare")

n.normalize("合計:¥1,200(税込)")    # => '合計¥1200税込'
n.normalize("合計:¥1,200(税込)")            # => '合計¥1200税込'   ← 同じ形になる
n.normalize("第一章 はじめに")             # => '第1章はじめに'
n.normalize("売上 1万2千円 (令和六年)")      # => '売上12000円2024年'

compare("テスト結果:123", "テスト結果:123", strategy="exact", normalizer=n).matched
# => True

r = compare("東京都渋谷区", "東京都渋谷区神南1-2-3", strategy="prefix", normalizer=n)
r.matched, r.detail["direction"]
# => (True, 'prediction_is_prefix_of_reference')

r = compare("kitten", "sitting", strategy="edit_distance", threshold=0.5)
r.score   # => 0.571...  (1 - 編集距離 / 長さ)

意味的な一致まで見たい場合は LLM judge が使えます (pip install "jpnorm[anthropic]" または [openai])。

compare(
    "東京タワーの高さは333メートルです",
    "東京タワーは高さ 333m",
    strategy="llm_judge",
    llm_provider="anthropic",        # or "openai"
    llm_model="claude-haiku-4-5",
    threshold=0.8,
)

judge_fn= に自前の判定関数を渡せば API を呼ばずにテストできます。 API キーは ANTHROPIC_API_KEY / OPENAI_API_KEY から読みます。

3. 名寄せ・重複検出 (for_compare + カスタム辞書)

自社サービス名・作品名・人名など、辞書にしか載っていない表記ゆれは カスタム辞書で正規形に寄せます。辞書は正規化の最終段で最長一致置換されます。 キーは生の表記のまま書いて構いません (同じ設定で正規化してから照合されます)。

n = Normalizer("for_compare").with_custom_dict({
    "幽遊白書": ["幽白", "ゆうはく", "幽☆遊☆白書"],
    "株式会社サンプル": ["サンプル社", "(株)サンプル", "㈱サンプル"],
})

n.normalize("㈱サンプル")            # => '株式会社サンプル'
n.normalize("幽☆遊☆白書 第1巻")     # => '幽遊白書第1巻'
n.normalize("渡邊 太郎")             # => '渡辺太郎'   ← 異体字は辞書なしで統一される

# 重複検出はキーを揃えるだけ
records = ["㈱サンプル", "サンプル社", "株式会社サンプル"]
len({n.normalize(r) for r in records})   # => 1

辞書はファイルからも読めます (拡張子で形式判定、format= で明示も可)。

n = (
    Normalizer("for_compare")
    .load_custom_dict_file("brands.json")   # {"正規形": ["表記ゆれ", ...]}
    .load_custom_dict_file("terms.csv")     # 表記ゆれ,正規形
    .load_custom_dict_file("terms.tsv")     # 表記ゆれ<TAB>正規形
)
n.custom_dict_size      # 登録エントリ数
n.clear_custom_dict()

一般語の同義語は SudachiDict の synonyms.txt (Apache-2.0) をそのまま読み込めます。ライブラリにはバンドルしていないので 必要な場合はダウンロードしてください。

curl -fSL -o synonyms.txt https://raw.githubusercontent.com/WorksApplications/SudachiDict/develop/src/main/text/synonyms.txt
n = Normalizer("for_search").load_sudachi_synonyms("synonyms.txt")
n.normalize("パソコンを買った")   # => 'パーソナルコンピュータを買った'

4. ユーザー投稿の表示前クリーンアップ (for_display)

「見た目を壊さない」が原則です。半角カナだけは全角にし、絵文字・全角記号・空白は残します。

n = Normalizer("for_display")
n.normalize("ハンカクカナ + 全角 🗼")   # => 'ハンカクカナ + 全角 🗼'

保存前のサニタイズ (ゼロ幅文字・制御文字・Bidi 制御文字の除去、改行コード統一) を 足したい場合はフラグを重ねます。Bidi 制御文字の除去は Trojan Source 対策にもなります。

n = Normalizer(
    "for_display",
    remove_zero_width=True,
    remove_control=True,
    remove_bidi_control=True,
    normalize_newlines=True,
)
n.normalize("ゼロ幅\u200b文字と\u202e制御\r\n改行")   # => 'ゼロ幅文字と制御\n改行'

5. neologdn からの移行 (neologdn_compat)

引数なしの jpnorm.normalize() がこれです。半角カナ→全角、全角英数→半角、 長音符の畳み込み、空白の畳み込みなど neologdn と同等の処理を Rust で行います。

import jpnorm

jpnorm.normalize("ハンカク ト 全角 ABC")   # => 'ハンカク ト 全角 ABC'
jpnorm.normalize("あ〜〜〜")              # => 'あ〜'

neologdn と意図的に違う点は次の 3 つです (ゴールデンテストで管理しています)。

  • 日本語と英数字の間の空白を neologdn は削除しますが、jpnorm は 1 つに畳むだけで残します
  • 〜 ~ を neologdn は削除しますが、jpnorm は 〜 に統一して残します
  • ‘’ “” ¥ を neologdn は独自変換しますが、jpnorm は既定では触りません (unify_quotes=True で統一可)

移行後に「URL は保護したい」「絵文字は消したい」となったら、そこからフラグを足すだけです。

n = Normalizer("neologdn_compat", protect_urls=True, emoji="remove")

プリセット早見表

名前 いつ使うか NFKC 記号統一 旧字体・異体字・々 外来語統一 小文字化 元号→西暦 URL 保護 絵文字 漢数字→数字 記号除去 日英間の空白
none 自分でフラグを積む 残す 残す
for_display UI 表示・投稿プレビュー 長音のみ 残す 残す
neologdn_compat neologdn 置き換え (既定) ✓ ✓ 残す 残す
for_search 検索索引・RAG ✓ ✓ ✓ ✓ ✓ ✓ ✓ 除去 残す
for_compare 精度評価・名寄せ・重複検出 ✓ ✓ ✓ ✓ ✓ ✓ 除去 ✓ ✓ 削除

一覧は Normalizer.presets() で取得できます。迷ったら、表示なら for_display、 それ以外は for_search から始めて、必要に応じて for_compare に寄せるのがおすすめです。

細かく調整する

プリセットをベースに、キーワード引数で個別フラグを上書きできます。 キーは Normalizer.config が返す dict と同じで、Normalizer(**n.config) で複製できます。

n = Normalizer(
    "for_search",
    emoji="keep",              # 絵文字を残す
    kana="kata_to_hira",       # カタカナをひらがなに統一
    url_wrap=("<", ">"),       # URL を <...> で囲む (Slack/Markdown の自動リンク)
    repeat_limit=3,            # 同一文字の連続を 3 つまでに短縮
)
n.normalize("スゴーーーーイ😀 https://example.com")
# => 'すごーい😀 <https://example.com>'

n.config["nfkc"]   # => True
キー 型 内容
normalize_newlines bool CRLF / CR / NEL / LS / PS を LF に統一
remove_zero_width / remove_control / remove_bidi_control bool 不可視・制御文字の除去
nfkc bool Unicode NFKC (全角英数→半角など)
halfwidth_kana_to_fullwidth bool 半角カナ→全角カナ
kana "keep" / "hira_to_kata" / "kata_to_hira" ひらがな⇄カタカナ統一
case "keep" / "lower" / "upper" 英字の大文字小文字
kyujitai_to_shinjitai bool 旧字体→新字体 (國→国、體→体、310 字)
unify_itaiji bool 人名・地名の異体字を代表字に (髙→高、﨑→崎、濵→浜)
remove_variation_selectors bool 異体字セレクタ (IVS) の除去
expand_iteration_marks bool 々ゝゞヽヾ の展開 (人々→人人)
unify_loanword_kana bool ヴァ→バ、ウェ→ウエ、ティ→テイ、ヂ→ジ など
strip_trailing_prolonged bool 4 文字以上のカタカナ語の末尾長音を落とす (サーバー→サーバ)
era_to_western bool 令和6年 / R6年 / 令和六年 → 2024年
cjk_spacing "keep" / "remove" / "insert" 日本語と英数字の間の空白を残す / 消す / 入れる
unify_hyphens / unify_tildes / unify_prolonged / unify_quotes bool 記号バリエーションの統一
collapse_prolonged_run bool 連続する長音符・チルダを 1 つに
repeat_limit int / None 同一文字の最大連続数 (英数字は対象外)
collapse_spaces / trim bool 空白の畳み込み・前後トリム
expand_cjk_compat / remove_cjk_compat bool 機種依存文字 (㈱①㌔) の展開 / 除去
remove_symbols bool 句読点・記号の除去
kansuji_to_arabic / arabic_to_kansuji bool 漢数字⇄算用数字 (排他)。1万2千 1.5億 のような混在も解釈
canonicalize_numbers bool 1,200 / 1200.00 → 1200
protect_urls / protect_emails / protect_mentions / protect_hashtags bool 保護領域
url_wrap (str, str) / None 保護した URL を prefix/suffix で囲む
emoji "keep" / "remove" 絵文字の扱い
emoji_placeholder str / None 絵文字を指定文字列に置換

normalize / normalize_batch は処理中に GIL を解放するので、スレッドプールで並列化できます。

コマンドラインで使う

echo "ハンカクカナ と  全角  !!" | jpnorm
# ハンカクカナ と 全角 !!

jpnorm -p for_search --set emoji=keep --set kana=kata_to_hira "スゴーーーイ😀"
# すごーい😀

jpnorm -p for_compare --files --dict brands.json input.txt > normalized.txt
jpnorm --json "カナ"            # {"input": "カナ", "output": "カナ"}
jpnorm -p for_compare --show-config   # 実際に使う設定を JSON で表示
jpnorm --list-presets

パフォーマンス

neologdn (C++ 実装) と同じ入力で比較したスループットです (scripts/bench-vs-neologdn.py、Apple Silicon、Python 3.12)。

入力 neologdn jpnorm neologdn_compat jpnorm for_search
tweet (~100B) 15 MB/s 42 MB/s (2.9x) 29 MB/s (2.0x)
paragraph (~500B) 17 MB/s 70 MB/s (4.1x) 41 MB/s (2.4x)
large (~32KB) 17 MB/s 88 MB/s (5.3x) 45 MB/s (2.7x)

for_search は URL 保護・絵文字除去・機種依存文字展開が加わるぶん neologdn_compat より遅くなります。 normalize / normalize_batch は GIL を解放するので、スレッドプールでさらに並列化できます。

他のライブラリとの違い

jpnorm neologdn jaconv / mojimoji unicodedata.normalize("NFKC")
半角カナ・全角英数の統一 ✓ ✓ ✓ ✓
長音・ハイフン・チルダの統一 ✓ ✓
旧字体・異体字・繰り返し記号 (々) ✓
カタカナ外来語のゆれ (ヴ、末尾長音) ✓
元号→西暦、混在数値 (1万2千) ✓
用途別プリセット / フラグ設定 ✓
URL / メール / @mention の保護 ✓
絵文字の除去・置換 ✓
漢数字→算用数字、数値正規化 ✓
カスタム辞書・Sudachi 同義語 ✓
精度比較ユーティリティ ✓
実装 Rust C++ Python / C C

jaconv や mojimoji は「文字種変換だけしたい」場面では十分軽量です。 jpnorm は複数の処理を用途に合わせて組み合わせたいときに向いています。

Rust から使う

コアは jpnorm-core クレートとして独立しており、Python 無しでも使えます (現時点では crates.io 未公開のため git 依存で指定してください)。

[dependencies]
jpnorm-core = { git = "https://github.com/YoshitakaOyama/jpnorm" }
use jpnorm_core::{EmojiAction, Normalizer, Preset};

let n = Normalizer::builder()
    .preset(Preset::ForSearch)
    .configure(|c| c.emoji_action = EmojiAction::Keep)   // プリセットの一部を打ち消す
    .kata_to_hira()
    .build();
assert_eq!(n.normalize("カナ😀"), "かな😀");

// 保護領域の位置も取れる (検索ハイライト等に)
let r = n.normalize_with_segments("@alice と https://example.com だよ");
println!("{:?}", r.segments);

開発

git clone https://github.com/YoshitakaOyama/jpnorm.git
cd jpnorm
uv sync --group dev          # Rust 拡張をビルドして .venv に入れる
uv run pytest                # Python テスト
cargo test --workspace       # Rust テスト
cargo clippy --workspace --all-targets -- -D warnings
uv run ruff check . && uv run mypy
cargo bench -p jpnorm-core   # ベンチマーク (criterion)
uv run --with neologdn scripts/bench-vs-neologdn.py   # neologdn との比較表
wasm-pack build crates/jpnorm-wasm --target web --release --out-dir ../../playground/pkg --no-typescript
python -m http.server -d playground 8765   # プレイグラウンドをローカルで開く

Rust ソースを変更したら uv sync で再ビルドされます。 neologdn とのゴールデン比較テストは tests/golden/neologdn.jsonl を使い、 uv run --with neologdn scripts/gen-neologdn-golden.py で再生成できます。

リリースは CHANGELOG.md を更新し、v* タグを push すると wheel のビルド・PyPI 公開・ GitHub Release 作成まで自動で行われます。

ライセンス

MIT または Apache-2.0 のデュアルライセンス。好きな方を選んでください。

Metadata

Release files for jpnorm 0.1.0

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

Source distribution (sdist)

Source distribution for jpnorm 0.1.0
File Size Uploaded
jpnorm-0.1.0.tar.gz 96.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for jpnorm 0.1.0
File
jpnorm-0.1.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
jpnorm-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
jpnorm-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
jpnorm-0.1.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
jpnorm-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
jpnorm-0.1.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
jpnorm-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
jpnorm-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
jpnorm-0.1.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
jpnorm-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
jpnorm-0.1.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
jpnorm-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
jpnorm-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
jpnorm-0.1.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
jpnorm-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
jpnorm-0.1.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
jpnorm-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
jpnorm-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
jpnorm-0.1.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
jpnorm-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
jpnorm-0.1.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
jpnorm-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
jpnorm-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
jpnorm-0.1.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
jpnorm-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details

Total release size: 10.8 MB

Release files / jpnorm-0.1.0.tar.gz

Download URL jpnorm-0.1.0.tar.gz
Size 96.3 kB
Tags Source
SHA-256 checksum
How to use checksums
0b813aa3ec567f730cfd12634f72a974c0ff9707d5ddb49a79072c3f1236b520
BLAKE2b-256 checksum
How to use checksums
2d43fdd603d141e499b266f74166793d052ec4761d3fea377d201851c37a836f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp314-cp314-win_amd64.whl

Download URL jpnorm-0.1.0-cp314-cp314-win_amd64.whl
Size 336.7 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
73997a97073e38d64d2be9c408fda269843d9d8a462097d90126d381553e4375
BLAKE2b-256 checksum
How to use checksums
a2c0f4a327f96d5c63747e3c89e091c26fde84427c4688596e02694bc19e3532
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL jpnorm-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 464.9 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
543b07501ee0c13d71265792419f05ccd5dfd7e7ef456ddfa3b4ef7d2f68ceff
BLAKE2b-256 checksum
How to use checksums
561f593f84330a7b368ace2fb90157b6a4e3437e49c49f3c1a2dc854d588e956
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL jpnorm-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 464.4 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
777f74fa4d58105a538001456e35262a801d67537e5cc40410a21c74758e0708
BLAKE2b-256 checksum
How to use checksums
bc4ef19b731619d1aeabd6b45e27a4dbd6f2b55a65a6a8d7034850d2c688c29a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL jpnorm-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
Size 431.8 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
99b249f6d59eada0cbca60f32069c4fa61f3bd84b94f682ee4f9bd84736b9a18
BLAKE2b-256 checksum
How to use checksums
7fe9d834b1c001b035f3da4ee46d9e14e85975d499cc53ce7339983785eb49f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl

Download URL jpnorm-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl
Size 437.9 kB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3c184027fe8cb2d85a75e0b1df2d0269c721544741b3ea6b4aa6189d0b569e44
BLAKE2b-256 checksum
How to use checksums
1828d58b606f46baf370291b1d36710d602ecdfdc7fdf30d75b4c25b67fad8be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp313-cp313-win_amd64.whl

Download URL jpnorm-0.1.0-cp313-cp313-win_amd64.whl
Size 336.9 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
b2a9f71d0ef17d2d33725d8e6c42eeab79502c780f526992b74e42bdce48ccdc
BLAKE2b-256 checksum
How to use checksums
cdc679cad208ea60de306f22a75943db8c60aad94777db7a1ab3bc7e59f6a2ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL jpnorm-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 464.8 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8a87e5257a7a8e445f83237a07081d777870d1406445bda9ae8c7776199ca861
BLAKE2b-256 checksum
How to use checksums
16e963928ee697c745187cbd05db60740df85821920fe3508b0b573664fd22a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL jpnorm-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 464.3 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
f262a44cb8544c6713b4d0d464352fdfa891b726d08169dfd8f920c0bf1c6568
BLAKE2b-256 checksum
How to use checksums
0295a0780ef1654c316cfe21e391b6cb17360b3f01d4b9821573493f1227cce8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL jpnorm-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Size 431.8 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e0cea835b2dbf5c1a004e57a2eb0c87ebc7805c4c0b22807e0d4ad95bb6f79b3
BLAKE2b-256 checksum
How to use checksums
211b7f841741a636d3f3879629a0232496c42ebd1a45593d5def75ea07fd7a02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl

Download URL jpnorm-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 437.5 kB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
774f241ab4204526dac388ba9f7b7bd650886a416398bcbe1e2ff0fba8cc0193
BLAKE2b-256 checksum
How to use checksums
194d462f909047639df6cb0c243b60369f245f5253a4b8c46838bfd4461beaf6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp312-cp312-win_amd64.whl

Download URL jpnorm-0.1.0-cp312-cp312-win_amd64.whl
Size 337.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
062913a00246e4719a06036b0b398c117196a52a8ccc38b6f6f041b001edacfa
BLAKE2b-256 checksum
How to use checksums
ba91919d61ea0c6869a9acd451882dddc62612e2f5eab5aa5a2f7c67f176c8b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL jpnorm-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 464.9 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c211140d6a9d18f19571246dc24b634d8f416c40608b9e0d7f08d8c43feda27b
BLAKE2b-256 checksum
How to use checksums
24ad4a5403fbadcba9f2e90ac8ab096f9b54daf90f9a646ac8adf76ee4d55cf9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL jpnorm-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 464.6 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
1f0685eb22552c66459ed371d05213e520148de0f02af8b58b2e4947b9394bfa
BLAKE2b-256 checksum
How to use checksums
3ace7c185f000d5695c7d26413597a4193399c2ed4e8428a2af26c0be9635353
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL jpnorm-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Size 432.0 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9b3b99cca8d4c77db471dec3a68e6258189a7b3d37206b5deed1bbeb7f077be6
BLAKE2b-256 checksum
How to use checksums
3971c9295c00b405a54867ea8ec8145b3436b493b8b2d7389cf11538c7f7b169
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl

Download URL jpnorm-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 437.8 kB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
19c516396899e6e0f6135f4fe60dccd4274a7a3dd3169253228d359769646243
BLAKE2b-256 checksum
How to use checksums
516c687bc96c892a40a40f7a38a064de043cc2f5507b63ba4906600f388dd18e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp311-cp311-win_amd64.whl

Download URL jpnorm-0.1.0-cp311-cp311-win_amd64.whl
Size 339.7 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
4abb377d8dca203d3eff80a14d6eb3e43edca41353c6d04ffd7fa4b78cc07c5e
BLAKE2b-256 checksum
How to use checksums
7bb181cacd6732ebf6350b63bb04e57439bab1034f8ac9295c0e80ee967649dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL jpnorm-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 465.0 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f52f8aba72510ceb04a32b09ede28addb4f54a60ace50365c66b009241c3fcb6
BLAKE2b-256 checksum
How to use checksums
97ce3416004893c56778ad837529d70e936b971b9d5ed63b9b752a3707553d98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL jpnorm-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 465.0 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
bbc4163970f1e315c1d92ca72bcb0bbe9e1563dca9181b235e6f8fe6e4bb4bd9
BLAKE2b-256 checksum
How to use checksums
2b70c23ec0afc9498423ee384f2acb854734e7a6a1db9433d4ec45e1743cd853
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL jpnorm-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Size 434.3 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e879caa84ee2e8d8432da72e0d95da55ea5b6d5bd8ebe430d0ca19a35f0ca10a
BLAKE2b-256 checksum
How to use checksums
ad314b01d9ca222ceae8c413426d677267b87681d92bc8cf2ec898de2ec5d6dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl

Download URL jpnorm-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 436.0 kB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
a35d05bdaae18abfbc6c56b19d86414547ddabda6158314082a48bf6ef889343
BLAKE2b-256 checksum
How to use checksums
f370491a4c42e8b753741bc68c1a21d0f5f59287b5e33b685679a79eedcc77d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp310-cp310-win_amd64.whl

Download URL jpnorm-0.1.0-cp310-cp310-win_amd64.whl
Size 339.7 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
0b6ad0d7cb0b71708f6c96b7c6941c32feedf234a9780242f30e4890a862d6bc
BLAKE2b-256 checksum
How to use checksums
429783648720e291f8f019bc22b4ede2b1dde85b6ad25b044f9f80cba5148929
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL jpnorm-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 465.2 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c726fea5bcbae958653437c577c832163eef2e0efa3354cd4b36ea6b2d38ea0c
BLAKE2b-256 checksum
How to use checksums
ab7566ea50519f0626dff4e8eebf75893359a2a6658a8374331c6c4583b292fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL jpnorm-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 465.2 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
dc31f824454dae4b30c33c0b5b0333ffd79cd5556e4fe970b21995b5f84aa17e
BLAKE2b-256 checksum
How to use checksums
f79fb0b9dddac2fc22712830bfe822553b6cc6c0a45b9777f468e867a465a467
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL jpnorm-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Size 434.1 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4ea38c1322bf37596e701dceac424c833b8c1c7959adce858558991a7259f1c7
BLAKE2b-256 checksum
How to use checksums
9582914768b0ac4f8eb6d4abae298086e56021fd7437f5e7f7ec3f9ac3de8814
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / jpnorm-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl

Download URL jpnorm-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 436.0 kB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e89104deab46eac6665a3fc58fb725a8d5c323e3d0bd097086e357417233e38d
BLAKE2b-256 checksum
How to use checksums
5c1fb027b11d4b25ca9b94ae7b18f492917f83c3c1557e84aee3b4f431d9422f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

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

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

26 release files

0.0.4

31 release files

0.0.3

31 release files

0.0.2

26 release files

0.0.1

25 release files

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