novnow (Python)
novnow の Python API(仕様書 §19.3)。Rust と同じ機能核を インプロセス で呼ぶ
ネイティブ拡張(novnow._core)で、サブプロセスや JSON ソケットのラッパーではありません。
import novnow
with novnow.Session("my-novel") as session: # open。with 終了で閉じる
info = session.project.info() # dict(JSON と同じ構造)
scene = session.section.list()["sections"][0]["id"]
session.section.write(scene, "新しい本文\n")
session.save.now()
session = novnow.create("new-novel") # project.new
- 対応 Python: CPython 3.9 以降(abi3。1 つの wheel が 3.9+ の全版で動く)。
- 対応プラットフォーム: Linux x86_64 / aarch64、macOS x86_64 / arm64、Windows x86_64。
- 型スタブ(
__init__.pyi)とpy.typedを同梱。
ビルドとテスト
pip install maturin pytest
cd python/novnow-py
maturin develop # 開発用ビルド(venv に入れる)
pytest # tests/test_api.py
実装メモ
- 表の API(
Session・9 例外・ドメイン呼び出し)はpython/novnow/__init__.py。 ネイティブ側(src/lib.rs)はrun/command/poll_events/on_event/cancelだけを公開し、正規操作カタログ(§19.7)が唯一の実装点(§19.1.2)。 - GIL と直列化(§19.3.4): 機能核は専用ワーカースレッドが所有し、
Mutex<Driver>のロックと応答待ちはPython::allow_threads内で行います。Host: Sendへの変更は不要です。実装はREF:src/app/driver.rsとREF:python/novnow-py/src/lib.rs、実スレッドの検証はREF:python/novnow-py/tests/test_api.pyを参照してください。 - pyo3 系のクレートは vendoring が必要(
REF:docs/add-dependencies.md§2.2・パターン B-1。 対象一覧はREF:docs/plans.md§5.5)。vendoring が済むまで root の workspace 解決から 外してある(rootCargo.tomlのexclude)。
Metadata
Release files for novnow 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| novnow-0.1.0-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| novnow-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| novnow-0.1.0-cp39-abi3-manylinux_2_28_aarch64.whl | CPython 3.9 | abi3 | Linux glibc 2.28+ ARM64 | Details |
| novnow-0.1.0-cp39-abi3-macosx_11_0_x86_64.whl | CPython 3.9 | abi3 | macOS 11.0+ x86-64 | Details |
| novnow-0.1.0-cp39-abi3-macosx_11_0_arm64.whl | CPython 3.9 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 14.4 MB
Release files / novnow-0.1.0-cp39-abi3-win_amd64.whl
| Download URL | novnow-0.1.0-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
680967e3b870b6d6a7ce96797823a9008af9665813cc67ed7b25cc1fb1673d41
|
|
BLAKE2b-256 checksum How to use checksums |
7d0e71faf7b70a2032dd6fbf74231a943c0710eac4896ff9c4ae074ea6c17273
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 25, 2026.
Transparency logRelease files / novnow-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl
| Download URL | novnow-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.9 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
e46faca92663faa6de555245fc0a8689203ea0bbf384f692b7dd0e0c5de298db
|
|
BLAKE2b-256 checksum How to use checksums |
30624f3524a7b2a88b8153f83b2869c2410ee07d4345c1c381dc16249cd8643d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 25, 2026.
Transparency logRelease files / novnow-0.1.0-cp39-abi3-manylinux_2_28_aarch64.whl
| Download URL | novnow-0.1.0-cp39-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | CPython 3.9 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
1a510dcab094a21a4577d36910bd8cf32f61bd072330a747952f6861f8fda0fa
|
|
BLAKE2b-256 checksum How to use checksums |
b828fa85a03d3da958f1d0869efc07e30436f6eff4399d206902200941970602
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 25, 2026.
Transparency logRelease files / novnow-0.1.0-cp39-abi3-macosx_11_0_x86_64.whl
| Download URL | novnow-0.1.0-cp39-abi3-macosx_11_0_x86_64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.9 abi3 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
41c5e8aad334aa51584f1d29cffaf9aa726fbed0f92a491cca3c1f3e4261cacf
|
|
BLAKE2b-256 checksum How to use checksums |
853f83a2a68b5fa4f0e7aeb20e7d56868c954c5d4922307b2319050a302808e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 25, 2026.
Transparency logRelease files / novnow-0.1.0-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | novnow-0.1.0-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9df9dea0010c7bef1bca63e93cb2049492dc4ed416652563c254e1d592766559
|
|
BLAKE2b-256 checksum How to use checksums |
d051b9e86597ced40d78ad6d6864291a629c147baf8f326032c512a76e70ad95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 25, 2026.
Transparency logSecurity for novnow 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 5 files in this release have been uploaded with provenance metadata.
Attestation for novnow-0.1.0-cp39-abi3-win_amd64.whl
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 Oct 25, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.