qimen-rs Python 绑定
Python 3.10+;使用 PyO3 和 maturin,计算期间释放 GIL。calculate 返回 Python 字典,
calculate_json 提供与 Rust 完全一致的 JSON 接口。CPython 常规 GIL 构建使用 abi3 wheel。
安装
python -m pip install qimen-rs
扩展到公元 1–9999 年的时间范围要求 0.2.0+;安装命令获取当前正式版。平台要求见安装指南。
快速开始
from qimen_rs import calculate
chart = calculate({
"year": 2024,
"month": 2,
"day": 10,
"hour": 12,
"utc_offset_minutes": 480,
"day_boundary": "zi_start",
})
print(chart["palaces"])
输入是指定 UTC 偏移下的民用时间;不会读取机器时区。默认 UTC+08:00,23:00 换日。
midnight 可显式选择 00:00 换日。无效日期、未知参数等由核心统一拒绝为 ValueError;
非字典输入或不能编码为 JSON 的 Python 对象抛出 TypeError。返回字段见结果 Schema,时间与历法口径见使用指南。
可选扩展
可选标注默认关闭,通过 extensions 参数选择明确的计算规则:
from qimen_rs import ExtensionOptions, calculate
options: ExtensionOptions = {
"hidden_stems": "duty_door_hour_stem_with_center_fallback",
"strength": "classical_stars_and_five_elements",
"growth_stages": "yang_forward_yin_reverse_fire_earth",
"punishments": "six_instrument_branches",
"tombs": "growth_stage_fire_earth",
"day_horse": "day_branch_three_harmony",
"door_pressure": "door_controls_palace",
}
chart = calculate({"year": 2026, "month": 9, "day": 18, "hour": 18}, extensions=options)
print(chart["extensions"]["day_horse"]["horse"])
只填写需要的项目即可;也可将 extensions 放入请求字典,与 JSON 接口完全一致。
同时使用两种位置会报 ValueError,避免静默覆盖。空配置不生成 extensions 输出字段。
每项结果记录实际 rule,寄干保留来源和盘层,日马与基础盘的时马分别返回。
tombs 也可选择 traditional_three_wonders;该规则只判断三奇,不适用的六仪结果为
None,与“未入墓”的 False 有区别。两种入墓约定不能混用。
公共类型在 qimen_rs.types 中;JSON Schema 与软件包版本分别编号。
完整规则与适用范围见 扩展约定。
从源码安装
在所需版本的仓库根目录执行,需 Rust 1.94+:
python -m venv .venv
激活虚拟环境,Linux / macOS 使用 source .venv/bin/activate,Windows PowerShell 使用 .venv/Scripts/Activate.ps1,然后运行:
python -m pip install ./bindings/python
安装后仍使用相同的 from qimen_rs import calculate 接口。0.2.0+ 支持公元 1–9999 年的前推格里高利历;历史日期与边界输出见时间说明。
Release files for qimen-rs 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qimen_rs-0.2.0.tar.gz | 69.8 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| qimen_rs-0.2.0-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| qimen_rs-0.2.0-cp310-abi3-manylinux_2_28_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| qimen_rs-0.2.0-cp310-abi3-manylinux_2_28_aarch64.whl | CPython 3.10 | abi3 | Linux glibc 2.28+ ARM64 | Details |
| qimen_rs-0.2.0-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
| qimen_rs-0.2.0-cp310-abi3-macosx_10_12_x86_64.whl | CPython 3.10 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 1.7 MB
Release files / qimen_rs-0.2.0.tar.gz
| Download URL | qimen_rs-0.2.0.tar.gz |
|---|---|
| Size | 69.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6a69babb23ea29f5b4e9ef2ba698a63ed5a5d422b5e317cbc2e0ce96ad0ffb33
|
|
BLAKE2b-256 checksum How to use checksums |
987a38c6f359ec981c268e9d8736627577ce6e85c8ec83c7a6abbb89be984ee8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / qimen_rs-0.2.0-cp310-abi3-win_amd64.whl
| Download URL | qimen_rs-0.2.0-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 248.5 kB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
e3576a793a182416750c79f5a529006d3602113eeade83a8af368c35ee75e2fb
|
|
BLAKE2b-256 checksum How to use checksums |
811e6018ebc49cffe3ee1e9a0b2b2ae7aa27cf4d47d53cb720ed7eae5c6b9026
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / qimen_rs-0.2.0-cp310-abi3-manylinux_2_28_x86_64.whl
| Download URL | qimen_rs-0.2.0-cp310-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 374.5 kB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
d396194fdb6b87a8cc45122a23428ee06fa1b170d466529209976fd279b66895
|
|
BLAKE2b-256 checksum How to use checksums |
fedaccefedb35fa323ff1dfeefda009593c1b6100a2cb5c2af14fd1d031d38f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / qimen_rs-0.2.0-cp310-abi3-manylinux_2_28_aarch64.whl
| Download URL | qimen_rs-0.2.0-cp310-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 368.0 kB |
| Tags | CPython 3.10 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
07030bc42ddef389080f93a24690dd82034eda88ffcef36da1b62e6b88009662
|
|
BLAKE2b-256 checksum How to use checksums |
dc5e745269f22d0466dcd20d5767e7d4c24470e087c588efb65370da63a7f0ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / qimen_rs-0.2.0-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | qimen_rs-0.2.0-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 339.9 kB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
78b86fc6a63cd07d8a1ce8df62f8fcd17b9b3d27849d711f51546931a86c3be8
|
|
BLAKE2b-256 checksum How to use checksums |
e4c8c9dcadfa119b372db97f7c0ca9674fd209575cb00e3d9f797ae0558359fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / qimen_rs-0.2.0-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | qimen_rs-0.2.0-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 346.8 kB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
b7da4e85aa23305c6c97aff8913af65dfedc178df5acfd3977b1719e3cee9233
|
|
BLAKE2b-256 checksum How to use checksums |
ad635b8623c02d957714446698faeb0765b1eadd4c0d9963629f31187c703c7d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|