Skip to main content

Strophe

Strophe は、Stanza の観測可能な意味論との互換性を目指す C++20 製の ネイティブ実行器です。Python API は nanobind で公開し、ビルドには scikit-build-core と CMake、Python 環境・依存関係の管理には uv を使います。

通常の pip または uv 等でインストールできます。

pip install strophe # pip
uv add strophe # uv

現在は native schema、model bundle loader に加え、LangID、多言語 tokenizer、 MWT、POS、lemma、depparse、NER、sentiment、constituency、coref の native inference に加え、MorphSeg の native inference を実装しています。 POS、depparse、NER、sentiment、constituency は static embedding に加え ATen charLM と LibTorch Transformer profile を 扱えます。coref は LoRA adapter を変換時に基底 Transformer へ融合し、 AOTInductor と ATen の scoring head で実行します。 UTF-8 バイト列と Python の code point index の対応を保持する SoA storage 上に、次の軽量 view を実装しています。

  • Document
  • Sentence
  • Token
  • Word
  • Span
  • ConstituencyTree
  • CorefMention / CorefChain / CorefAttachment

Document.sentencesSentence.tokensSentence.wordsToken.wordsSpan.tokens などは Python list を毎回作るのではなく、negative index、slice、 iterator、reversed()in に対応した native sequence view を返します。 to_dict() は互換境界として実際の list[list[dict]] を生成します。

全 processor は型付きで登録済みです。

langid, tokenize, mwt, pos, lemma, depparse, ner, sentiment,
constituency, coref, morphseg

依存関係と提供 annotation を公開し、Pipeline 構築時に順序を検証します。 langidtokenizemwtposlemmadepparsenersentimentconstituencycorefmorphseg は変換済み bundle を CPU/float32 の ATen 演算で実行します。MorphSeg は Embedding → 2 層 BiLSTM → 線形射影 → GELU → 線形分類 → argmax を ATen で実行し、入力語はシステム ICU の NFKC → case fold → NFC で正規化します。 Transformer encoder は変換時に torch.export / AOTInductor で対象環境用の LibTorch package にコンパイルし、C++ から Python 依存の torch が提供する 共有ライブラリで実行します。それ以外の processor は引き続き ProcessorNotImplementedError を明示的に送出します。lemma bundle が POS を 使う場合は、Pipeline 構築時にも pos を必須 annotation として扱います。 公開 API を単独で実行できる小さな例は examples/ にまとめています。

データモデル

Stanza の Document.to_dict() と同じ flattened MWT 形式から native storage を 構築できます。

import strophe

doc = strophe.Document.from_dict(
    [
        [
            {
                "id": 1,
                "text": "Stanford",
                "lemma": "Stanford",
                "upos": "PROPN",
                "head": 0,
                "deprel": "root",
                "start_char": 0,
                "end_char": 8,
                "ner": "S-ORG",
            }
        ]
    ],
    text="Stanford",
)

assert doc.sentences[0].words[0].lemma == "Stanford"
assert doc.ents[0].type == "ORG"
assert isinstance(doc.to_dict(), list)

processor の構成とロード状態も問い合わせられます。tokenizer/MWT を実行するには、 converter の --output-dir と同じ root を model_dir に渡します。default package は index.json にある対象 processor の concrete package が一つなら それを選択します。

pipeline = strophe.Pipeline(
    "en",
    processors="tokenize,mwt",
    model_dir="models",
    resources_version="1.14.0",
)

doc = pipeline("I can't believe it works.")

assert pipeline.processors[0].implemented is True
assert [token.text for token in doc.sentences[0].tokens] == [
    "I",
    "can't",
    "believe",
    "it",
    "works",
    ".",
]
assert [word.text for word in doc.sentences[0].tokens[1].words] == [
    "ca",
    "n't",
]

processor ごとに異なる bundle package を選ぶ場合は、download() と同じ processor-to-package mapping を package に渡せます。mapping にない processor は "default" として解決されます。

pipeline = strophe.Pipeline(
    "en",
    processors="tokenize,pos,ner",
    package={
        "tokenize": "combined_nocharlm",
        "pos": "combined_charlm",
        "ner": "ontonotes-ww-multi_charlm",
    },
    model_dir="models",
)

開発

Python 3.10 以降、C++20 対応コンパイラ、CMake、Python package の torch、 Highway、ICU が必要です。CMake は build に使う Python へ torch の CMake prefix を問い合わせ、NO_DEFAULT_PATH でその package に限定して LibTorch を解決 します。Highway は Python と独立して runtime dispatch を行い、標準の CMake config package として find_package() で探索します。ICU の Unicode common component は find_package(ICU COMPONENTS uc)ICU::uc target としてシステムリンク します。通常の CMake search path にない場所へ導入した場合は、 STROPHE_HIGHWAY_ROOTSTROPHE_ICU_ROOT、または CMAKE_PREFIX_PATH を指定できます。

uv build --wheel \
  -Ccmake.define.STROPHE_HIGHWAY_ROOT="/path/to/highway" \
  -Ccmake.define.STROPHE_ICU_ROOT="/path/to/icu"

wheel build では STROPHE_BUNDLE_NATIVE_DEPENDENCIES=ON が既定です。 find_package() が公開した Highway の imported target が共有ライブラリなら、 推移的な非システム依存も strophe/.libs へ収容し、 相対 runtime path から読み込みます。静的ライブラリは _strophe にリンク 済みなのでコピーしません。PyTorch の共有ライブラリは同梱せず、 Python 依存の torch package から読み込みます。OS package 用など、実行環境 の共有ライブラリを使う build では次のように無効化できます。

uv build --wheel \
  -Ccmake.define.STROPHE_BUNDLE_NATIVE_DEPENDENCIES=OFF

第三者へ wheel を配布する場合は、実際に同梱された Highway と その推移依存について、各ライセンスの再配布条件も満たす必要があります。 ICU は wheel へ同梱せず、実行環境のシステム ICU を使用します。

scikit-build-core の build directory は build/ に固定しているため、clangd は build/compile_commands.json をそのまま参照できます。通常の unit/E2E test は Strophe の公開契約とリポジトリ内で生成する deterministic な tiny bundle だけを使い、Stanza の実行環境や checkpoint を必要としません。

uv sync --group dev
uv run pytest

converter 自体を開発するときだけ、Stanza、Transformers、PEFT を含む converter group を追加します。

uv sync --group dev --group converter

wheel と source distribution は次のコマンドで作成できます。

uv build

ドキュメントは Zensical と mkdocstrings-python で生成します。

uv run --group doc zensical serve
uv run --group doc zensical build --strict

通常の CPython 3.10〜3.14 に加え、別 ABI の free-threaded CPython 3.14t を対象にします。共有可能な model object、Document の所有規則、GIL と ATen thread pool の扱いは thread safety の契約を参照してください。

ベンチマーク

benchmarks/ に固定コーパス、Strophe/Stanza の独立 runner、hyperfine 比較、両実装用の Torch Profiler entry point を用意しています。例えば full pipeline は次のように比較できます。

uv run --group converter python -m benchmarks.compare \
  --model-dir models \
  --processors tokenize,mwt,pos,lemma,depparse \
  --documents 32 \
  --iterations 5 \
  --runs 10

変換時に保存された models/<resources-version>/ は Stanza の model root として再利用します。比較条件、結果のexport、Processorごとのpackage指定、 個別 profilingの詳細は benchmark guideを参照して ください。

性能最適化は、同じ bundle、dtype、ATen 演算、演算順序、batch boundary、 argmax / top-k / Viterbi / MST の tie-break を維持する範囲に限定します。 ロード時の immutable Tensor view・LSTM state のキャッシュ、不要な Tensor / std::vector 往復の除去、出力 buffer の事前確保、Unicode・subword 列の単一走査など、算術結果に触れないデータパイプライン改善を優先します。 再学習、蒸留、量子化、低精度化、近似復号、fast-math は性能プロファイルにも 導入しません。

Stanza モデル変換

変換器は stanza.download() と同じ resource catalog の package、alias、MWT、 依存モデル解決を行います。catalog とモデルをバージョン別 cache に保存し、各 checkpoint の MD5 を検証します。Stanza の default.zip shortcut は使わず、 変換元を個別に追跡できるよう同じ package を個別モデルへ展開します。

Stropheのwheelとsdistには、Stanza checkpoint、language pack、word vector、 変換済みbundleを含めません。モデルは利用者の環境で取得・変換され、選択した モデルとその学習データ固有のライセンスが引き続き適用されます。変換済みbundleは StropheのApache-2.0ライセンスへ移行しません。

変換環境は Stanza と resource のバージョンを完全一致させます。

Python API は download と native bundle への変換を一度に行います。同じ resource catalog と checkpoint から作成済みの検証済み bundle は再利用されます。 変換依存は uv sync --group converter、配布 package では strophe[converter] で導入できます。

pip install "strophe[converter]" # pip
uv add "strophe[converter]" # uv
import strophe

converted = strophe.download(
    ["ja", "fr"],
    processors="tokenize",
    resources_version="1.14.0",
)

tokenize に対応する MWT は resource catalog から自動追加されます。LangID モデルも同じ公開 API で準備できます。

strophe.download("multilingual", processors="langid")

MorphSeg は Stanza resources JSON に checkpoint がないため、公開済みの Morphological-Segmentation safetensors を言語ごとの固定 commit と SHA-256 で取得します。対応言語は cs,en,es,fr,hu,it,la,mn,ru、concrete package 名は tuseg です。

strophe.download("en", processors="tokenize,morphseg")

pipeline = strophe.Pipeline(
    "en",
    processors="tokenize,morphseg",
    model_dir="models",
)
document = pipeline("Unhappiness")
print(document.sentences[0].words[0].morphemes)

LangID・多言語 pipeline・bulk

MultilingualPipeline は LangID を一度 bulk 実行し、判定言語ごとに文書を まとめて言語別 native Pipeline へ渡します。言語 pipeline は LRU cache され、未変換モデルは既定で公開 resource catalog から遅延 download・変換 されます。

import strophe

pipeline = strophe.MultilingualPipeline(
    processors="tokenize",
    package={"tokenize": "combined_nocharlm"},
    lang_configs={
        "ja": {},
        "fr": {
            "package": {"tokenize": "combined"},
        },
    },
    restrict=True,
)

documents = pipeline.bulk_process(
    [
        "これは日本語です。",
        "Ceci est une phrase française.",
    ]
)

assert [document.lang for document in documents] == ["ja", "fr"]

自動 download を禁止する場合は auto_download=False を指定します。通常の Pipeline にも bulk_process() と同義の process_many() があり、 pipeline([...]) も使えます。文字列列・Document 列のどちらも入力順を 保って処理します。

uv add "strophe[converter]"
uv run strophe-convert convert \
  --lang en \
  --processors tokenize \
  --package default \
  --resources-version 1.14.0 \
  --output-dir models

英語の native UD 導線(tokenize → MWT → POS → lemma → depparse)を まとめて変換する例です。tokenizer package に対応する MWT は catalog から 自動的に追加されます。

uv run strophe-convert convert \
  --lang en \
  --processors tokenize,pos,lemma,depparse \
  --package combined_nocharlm \
  --resources-version 1.14.0 \
  --output-dir models

静的 embedding の NER profile は次のように変換できます。

uv run strophe-convert convert \
  --lang en \
  --processors ner \
  --package ontonotes-ww-multi_nocharlm \
  --resources-version 1.14.0 \
  --output-dir models

英語の既定 sentiment profile と tokenizer は、依存する pretrain と双方向 charLM を含めて同じ公開 API から準備できます。

from pathlib import Path

import strophe

model_dir = Path("models")
strophe.download(
    "en",
    processors="tokenize,sentiment",
    model_dir=model_dir,
    output_dir=model_dir,
)

pipeline = strophe.Pipeline(
    "en",
    processors="tokenize,sentiment",
    model_dir=model_dir,
)
document = pipeline("This movie was wonderful.")
assert document.sentences[0].sentiment in (0, 1, 2)

現在、公式 Trainer / model loader を経由する変換アダプタは langidtokenizemwtposlemmadepparsenersentimentconstituencycorefmorphsegforward_charlmbackward_charlm に対応しています。 POS/depparse/NER/sentiment/constituency の pretrain 行列・語彙と charLM dependency も公式 loader で復元して bundle に内包します。checkpoint が Transformer を使う場合は encoder と Stanza 固有の hidden-layer mix を一つの AOTInductor package へコンパイルし、bundle 内の transformer/ へ展開します。 生成 DSO と Transformer weight blob は分離し、weight は LibTorch loader が mmap するため、大規模モデルでも巨大な DSO を dyld/loader に処理させません。 この artifact は変換時の OS、CPU architecture、Torch minor version を対象に するため、利用する環境の torch で変換してください。未対応 processor を raw checkpoint のまま変換する fallback は、旧 key migration や外部依存を 欠落させるため意図的に設けていません。

出力は Python pickle に依存しない次の構造です。

models/1.14.0/en/tokenize/combined_nocharlm.strophe/
├── manifest.json
├── assets.json
├── tensors.bin
└── transformer/            # Transformer profile の場合だけ

tensors.bin は 64-byte alignment の raw tensor 列、assets.json は vocab、 辞書、config、manifest.json は source/dependency checksum、tensor table、 任意 artifact の checksum を保持します。詳細は docs/model-bundle-v1.md を参照してください。

bundle は単独でも検証できます。

uv run strophe-convert verify \
  models/1.14.0/en/tokenize/combined_nocharlm.strophe

native loader は bundle identity、tensor range/alignment/dtype/shape を常に 検証し、tensors.bin を read-only mmap します。公開 processor と Pipeline の標準経路では、起動時に大きな model artifact を再走査しないよう SHA-256 検証を省略します。配布物の完全性も確認したい場合は verify_checksums=TruePipeline では verify_model_checksums=True)を明示してください。低水準の ModelBundle は検証用途のため既定で assets、tensor file、各 tensor と model artifact の SHA-256 を検証します。

import strophe

bundle = strophe.ModelBundle("models/1.14.0/en/tokenize/combined_nocharlm.strophe")

assert bundle.checksums_verified
assert bundle.tensor("embeddings.weight").shape == [240, 32]

pipeline = strophe.Pipeline(
    "en",
    model_dir="models",
    verify_model_checksums=True,
)

tokenizer は Stanza 1.14.0 と同じ character vocabulary/features、辞書 prefix/suffix 特徴、2段 bidirectional LSTM、token/sentence/MWT head、URL/email constraint、sentence break による長文 restart、文字 offset と whitespace 復元を実装しています。 現在受理する native inference profile は多言語 no-charLM、hierarchical one-layer、float32/CPU です。辞書 tokenizer を使う日本語、中国語(簡体・ 繁体)、タイ語なども扱えます。未対応の bundle variant は近似実行せず TokenizerModelError で拒否します。

LangID は Stanza の文字 embedding、multi-layer bidirectional LSTM、文字ごとの linear score の総和を ATen で実行します。bulk 入力は code point 長ごとに まとめて推論し、langid_lang_subset の score mask にも対応します。

MWT/lemma は、共通の bidirectional LSTM encoder、LSTMCell、soft dot attention、copy gate、greedy/beam decoder を使います。beam は Stanza と同じ 累積 score、ATen topk、backpointer、top beam の EOS 終了規則を保持します。 lemma は POS 別辞書から * fallback の順に検索し、未登録語だけを seq2seq へ 送り、edit classifier と不正出力 fallback を適用します。MWT は辞書を優先し、 seq2seq checkpoint では同じ decoder を使います。Stanza 1.14.0 の英語 combined MWT は seq2seq ではなく character boundary classifier のため、 その BiLSTM/2-class path も実装しています。

POS は Stanza の頻出語 embedding、pretrain embedding、attention 付き character LSTM、ATen charLM/LibTorch Transformer、2 層 bidirectional HighwayLSTM、UPOS linear head、XPOS/UFeats biaffine head を checkpoint の構成と同じ順序で実行し、 Word.uposWord.xposWord.feats を更新します。句読点簡約と語彙の Unicode lower、言語により分解される composite XPOS の複数 head と再結合も Stanza と一致させています。

depparse は word/lemma/POS/pretrain/character embedding、bidirectional HighwayLSTM、deep biaffine の arc/relation head、linearization/distance 補正、 exactly-one-root Chu–Liu/Edmonds、subject/object の head constraint 修復を ネイティブ実装し、Word.headWord.deprel を更新します。複合 XPOS を 使う言語では component ごとの embedding を加算します。Stanza v1.8.2 以降のソースには、UFeats 用の入力枠へ誤って POS embedding を再度渡す回帰が あります。対応対象の 1.14 公開チェックポイントはそのグラフで学習されており、 推論時だけ ufeats_emb に切り替えると未学習パラメータを使用します。このため bundle は duplicated_pos_emb を明示的な実行契約として記録します。修正版 profile はモデルの再学習を必要とします。

NER は static word embedding と学習語彙の delta embedding、単語単位の bidirectional character LSTM、ATen charLM/LibTorch Transformer、 bidirectional tagger LSTM、列別 linear head と CRF Viterbi 復号を実装します。 predict_tagset で公開列を選び、Stanza と同じ不正な singleton tag の修復後に Token.nerToken.multi_ner を設定し、Document.ents を再構築します。

sentiment は Stanza の pretrain 語彙検索、学習済み UNK vector、任意の extra embedding、片方向または双方向 ATen charLM、LibTorch Transformer、任意の 2 層 bidirectional LSTM、多窓 2D convolution/max-pooling、全結合 head を 同じ順序で実行します。文ごとの入力には Word ではなく Token.text を使い、 予測 class index を Sentence.sentiment に設定します。classify_many()bulk_process() は文長で安定 sort し、Stanza と同じ「合計 token 数」単位の batch を構成した後、元の順序へ戻します。現在の明示的な native profile は CNN model type です。ELMo、PEFT、forward 中に重みを変更する extra-embedding max-norm は近似せず変換時またはロード時に拒否します。Transformer profile は 共通変換器が受理する WordPiece、RoBERTa byte-level BPE、XLM-R Unigram 構成を 利用できます。

constituency は Word.text と checkpoint が指定する XPOS/UPOS を入力にし、 pretrain/delta/tag embedding、双方向 word LSTM、transition/constituent 履歴 LSTM、in-order transition legality、MAX constituent composition を ATen で 実行して Sentence.constituency を設定します。parse()parse_many()bulk_process() も公開します。現在の明示的な native profile は LSTMModel + IN_ORDER + MAX + LSTM history + ReLU です。parser attention、 Tree-LSTM 系 composition、maxout、PEFT は誤って近似せず変換時またはロード時に 拒否します。Transformer profile は共通変換器が受理する WordPiece、RoBERTa byte-level BPE、XLM-R Unigram 構成を利用できます。

charLM は文字 embedding と forward/backward LSTM を ATen で実行し、Stanza と 同じ改行・空白境界から単語表現を採取します。POS、depparse、NER、sentiment、 constituency に埋め込まれた dependency と、単独の CharLMPlan の両方で 利用できます。

Transformer の subword tokenizer は C++ で実装しています。BERT normalizer + greedy WordPiece に加え、GPT-2/RoBERTa の byte alphabet・Unicode pretokenizer・ ranked BPE merge と、XLM-R の SentencePiece precompiled charsmap・Metaspace・ Unigram Viterbi を扱います。ASCII lowercase の hot path は Highway、反復する pretoken は固定長 cache を使い、各単語を Stanza と同じ subword alignment へ 戻します。長文は processor ごとの overlap 規則で分割します。実装方針は gigatoken の短い token に対する単純な merge、cache、allocation 抑制を参考に しています。

coref は Stanza の CorefModel.load_model で checkpoint と PEFT adapter を 復元し、safe_merge 後の出力一致を確認してから基底 encoder を torch.export し、AOTInductor package にコンパイルします。非 LoRA checkpoint は再構築した full-finetune/base encoder を同じ経路でコンパイルします。 推論時は Python package の LibTorch が選ぶ SDPA と BLAS backend を使います。 ネイティブ側では sentence-aware subword window、学習済み subword attention、 rough mention/antecedent scoring、distance/speaker feature、anaphoricity head、 span head と zero-anaphora head を実行し、CorefChain と各 word の CorefAttachment を復元します。zero mention は Stanza と同じ (word, empty_index) ID を持つ empty Word を生成し、その word に attachment を 接続します。antecedent FFNN は checkpoint の a_scoring_batch_size 境界で chunk 化し、長文で完全な pair tensor を保持しません。 各 sentence-aware window は動的 sequence 長のまま実行し、短い文を512 subword まで埋める masked padding は計算しません。実 token の Transformer 出力は固定長 padding 時と同一です。 CorefProcessor.process_bulk() は入力順を保持します。

大文字・小文字変換と isupper / islower 判定は ASCII 近似ではなく、 Python 3.13 と同じ Unicode 15.1 table を生成物として固定しています。表は tools/generate_unicode_case.py で再生成できます。

レイアウト

src/
├── strophe/                 # Python API
└── libstrophe/
    ├── include/strophe/     # 公開 C++ ヘッダー
    └── lib/                 # C++ 実装と nanobind bindings

ライセンス

StropheはApache License 2.0で提供されます。binary wheelへ組み込まれる 第三者ソフトウェアの表示はTHIRD_PARTY_NOTICES.mdLICENSES/を参照してください。モデル資産の扱いは ドキュメントに分離して記載しています。

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

strophe-0.1.0-cp314-cp314t-win_amd64.whl (15.4 MB view details)

Uploaded CPython 3.14tWindows x86-64

strophe-0.1.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

strophe-0.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (12.6 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

strophe-0.1.0-cp314-cp314t-macosx_14_0_arm64.whl (14.7 MB view details)

Uploaded CPython 3.14tmacOS 14.0+ ARM64

strophe-0.1.0-cp314-cp314-win_amd64.whl (15.4 MB view details)

Uploaded CPython 3.14Windows x86-64

strophe-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

strophe-0.1.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (12.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

strophe-0.1.0-cp314-cp314-macosx_14_0_arm64.whl (14.7 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

strophe-0.1.0-cp313-cp313-win_amd64.whl (14.7 MB view details)

Uploaded CPython 3.13Windows x86-64

strophe-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

strophe-0.1.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (12.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

strophe-0.1.0-cp313-cp313-macosx_14_0_arm64.whl (14.7 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

strophe-0.1.0-cp312-cp312-win_amd64.whl (14.7 MB view details)

Uploaded CPython 3.12Windows x86-64

strophe-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

strophe-0.1.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (12.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

strophe-0.1.0-cp312-cp312-macosx_14_0_arm64.whl (14.7 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

strophe-0.1.0-cp311-cp311-win_amd64.whl (14.7 MB view details)

Uploaded CPython 3.11Windows x86-64

strophe-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

strophe-0.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (12.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

strophe-0.1.0-cp311-cp311-macosx_14_0_arm64.whl (14.7 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

strophe-0.1.0-cp310-cp310-win_amd64.whl (14.7 MB view details)

Uploaded CPython 3.10Windows x86-64

strophe-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

strophe-0.1.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (12.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

strophe-0.1.0-cp310-cp310-macosx_14_0_arm64.whl (14.7 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file strophe-0.1.0-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: strophe-0.1.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 15.4 MB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for strophe-0.1.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 66aed330de2678a11724effc210f06600b318b02c205a550f6d758961ae0b225
MD5 d83cf06873ac4d1902723126d735109c
BLAKE2b-256 d79edc4af73fa02474a59cbd4dc485ca43ca3e28e0733bfb258fedae07650146

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp314-cp314t-win_amd64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2c33b606442507e224735237bb9c1b859269b5a534a8d77c05e007136d3dd9fc
MD5 42ec4ff0a891a8bb748a44df59e3cf3d
BLAKE2b-256 d1d7224cf39dfe94710ba03fc80355984c2e84c59fe0c7e5e09e66b14f86088c

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5230001784c1b8aedb968ee68c4c230947abfadb8ccf646874daebdd97a5e501
MD5 3cea53d352bfc3e4ab758c229a97ff1e
BLAKE2b-256 2fbf2a1773d6165d82aac380d8fd7b51389e0c67066b6eabb7612e8ecb104ad6

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp314-cp314t-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp314-cp314t-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a604033f967f6661c30c519a7bb4e341f39674d281c37b43f86cf1d557578f15
MD5 2bfcd60954980665e67ac9bb834aaaeb
BLAKE2b-256 aa14f38856ec186a73ab331d6ae8046d21c7c6755788327abfe495e6f110bd8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp314-cp314t-macosx_14_0_arm64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: strophe-0.1.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 15.4 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for strophe-0.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 dab1aff86ea086349c131af5c8933a3662364804bc3a54a711ccafe30fce0942
MD5 7a44e9e57addaf3641e14537d675e926
BLAKE2b-256 414ba4c1e35d0f15eaeed3a5b467576f3e04908e28f0c3b7e6cc5b932f1fb71f

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp314-cp314-win_amd64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ba1b8df047e05f5550ef26df9c08ffe580a5d94a427f0955e7bd9ae83c9a5db1
MD5 557856310f3851e83c4b26505acf2bce
BLAKE2b-256 b5de91dffd449fb14cd1a1080a6b0effda10ea507707d226e7930c0180e01d21

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 280685d585b8d711612688f690d54180c3f9471ed4a5a7cb58b4405c1f17c702
MD5 7635d628752acd7d39a00739c17934b1
BLAKE2b-256 ada6e8f523a59a9fbb2e3aa27c2761a4eb5467b864fe34fb878bad30c7d40f5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 56ba69f5055e5f5c51a510390b9a20b4edfbd849de5e74ec118ea0995ba5dc46
MD5 8d0b9d89d4f10606dea2ef33b9c426fe
BLAKE2b-256 9802809243e94a119ef145304028b7ffe05d18014e10c10f8a101872b1500926

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp314-cp314-macosx_14_0_arm64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: strophe-0.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 14.7 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for strophe-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 778e2475e617958f4efe99c4640a37a594b3c047a62341e855a63ad1f9220498
MD5 3c4f7ae307825122ce79d71afa6a3f7d
BLAKE2b-256 03a99950152df10cd930be7093afa5640df1fc0b3b2016ef7043c78f27e9894d

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp313-cp313-win_amd64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 81373441022cefc467f15e88b9336f1e6f5969b48b536f72c2351aa57262a0ac
MD5 31128fd70dafec257e1142ba0b32527b
BLAKE2b-256 235108dba333d7d70bc8a125a47eba50819c89166c877d981003786f15110dfe

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fd8151b5859d7e804e71ea9e77482873cdf455f22c60331f050b8e29c94bbfbc
MD5 79aab96aaceec6ac6223058ca971c22b
BLAKE2b-256 ae3e8244d362a72a33fa9f2e88cafe6347a84bc9309b24c056af9771726d38da

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 340afc6890d1a5ff0e616329e7df4cd04fbdead53010c672c5732d7a1eaaab8f
MD5 e310a01ec74698914b89d658c3c2b6c6
BLAKE2b-256 53c3c13d2e9481d63a55cc04afabf6a089e9e81aa2e8e00bccecdea8e642cd4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: strophe-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 14.7 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for strophe-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ab5d0732a15d80f1da72099dde03950ad409e4f4490cec17bb3c730bed369e0d
MD5 a6acb4293327fb70cb6c72a40a26bd1d
BLAKE2b-256 6c1d5a3be91ebc6ea6d2a703295efa7eaefe9b5728418e096a4b6a5379eaf7a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp312-cp312-win_amd64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e7aefe15a119af6627523dae9d30b4755b787c1efce67994d500f0a27fd7e7d3
MD5 23f9861ee311163d5ec35ad1755eaae0
BLAKE2b-256 021ceca380748867922513e828d28c33b13d2386993434bd5c48e51c2a57747c

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e610a120189a0ecfa28dd50031b221371bd93cddcee686f4ad04e880f8bd9e7e
MD5 4d2464c3eb06cc72647007dbc3e77ba9
BLAKE2b-256 a3a2a1c70b5651f19d60e4fef28a7e0c1a0284c4c4b9cedd361018fb44b67bad

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4ad802cb781d76622edca17d122821ee3efb9d9861b0c50d1096720d31500bf3
MD5 da2c4c8eaa4ec96438a83c2fff67026e
BLAKE2b-256 aad33addad223091543244b6b3a37edd1567fb0433d8f61c42e51300254a3c1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: strophe-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 14.7 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for strophe-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c6e4731ae70d472aba28f03c8cce9cf59987ce9b12ccc53e725e2c5ecc258959
MD5 845e34520f486ded5912bfcb9b296e06
BLAKE2b-256 b5c962982389c1ced1788508e0c887e3a01de063b7a82d19d61a7e79d4312c57

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp311-cp311-win_amd64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 91cf0b773ba7cf5b5fb9fa9995732e9615ed439c2ec0945f88a731281fe32c63
MD5 429e9bb736ed78e2be77d295a94a15dc
BLAKE2b-256 794c411d18bf526c0504da00677337c23633c5587e5c606ee04b03e8ab791490

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eda102fdd7248f51f9f1672165530e80b2c87cd7e2ba2481cf9d56d798ec8ffa
MD5 27d6f8e9d4526a96e33ca6eb5a788545
BLAKE2b-256 aa766cb26288bfc3df4756c9d5955ecddb1b7a329674be75281c667ae1ee3932

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 2c922ee7b7d847ee61cf6ff37c6e71e61fa5aeb46bf69f34094cd117c499567a
MD5 9ee373f904b0704eb73b72645f4c08c4
BLAKE2b-256 16e087aa518facb05fa1651f2d79be4a2e690d2fe955d5f2d2f3c317d3d09e47

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: strophe-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 14.7 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for strophe-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f2f4505c85d31c271129e9223a383c1654e03e6535b73eeb06bbae07f74cab35
MD5 ca7ed9930eb0859cdb5f82a698918e0a
BLAKE2b-256 0d092936522b6c3e954863fb5100271176b53911851f864afec46a9f2461ac6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp310-cp310-win_amd64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8c9754ef95575176979f2b0fb722b90470b5ba8bcfb93050463cf3f4621b7af7
MD5 a8df6a801810ccd07c18441ab2382fd3
BLAKE2b-256 9c2b806649adbb8802f3cad7782f25c7c96381da9307f40dccdf7f4cfbb005d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1bff1ebc7dcc43053610e29401b43dd29252ed8b646da46839803c2ed090fc63
MD5 915b4864a46e7845446e96ae2baacf5b
BLAKE2b-256 e435d8d9d44924c4542b32f081fcf0bf89169fc24dba847818749b40ba2fdbbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file strophe-0.1.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for strophe-0.1.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 fffed5c1ccd3bfe9909e45fd9cf2aa2457ff50fe2e944fd4c55016d78f3c578d
MD5 7c1faf77c2742d32c393ce03a155b195
BLAKE2b-256 31a8ef094ca62ac4c028fde91d65d10833594377881ce5670333d9c6e47a7c0e

See more details on using hashes here.

Provenance

The following attestation bundles were made for strophe-0.1.0-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: release.yml on t3tra-dev/strophe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

24 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