iztro-py
紫微斗数Python库 - 纯Python实现,支持多语言输出。
项目简介
iztro-py 是一个功能强大的紫微斗数(Purple Star Astrology)Python库。与 py-iztro 不同,这是一个纯Python原生实现,无需JavaScript解释器依赖。
主要特性
- ✨ 纯Python实现 - 无需JavaScript运行时环境
- 🌍 多语言支持 - 支持简体中文、繁體中文、English、日本語、한국어、Tiếng Việt
- 🔒 类型安全 - 使用Pydantic模型确保数据完整性
- 🎯 流畅API - 支持方法链式调用
- 📦 易于使用 - pip一键安装
安装
pip install iztro-py
快速开始
基本用法
from iztro_py import astro
# 通过阳历日期创建星盘(默认中文输出)
chart = astro.by_solar('2000-8-16', 6, '男')
# 获取命宫
soul_palace = chart.get_soul_palace()
print(f"命宫: {soul_palace.translate_name()}")
print(f"天干地支: {soul_palace.translate_heavenly_stem()} {soul_palace.translate_earthly_branch()}")
# 查询主星
for star in soul_palace.major_stars:
print(f"主星: {star.translate_name()} - 亮度: {star.translate_brightness()}")
多语言支持
from iztro_py import astro
# 简体中文(默认)
chart = astro.by_solar('2000-8-16', 6, '男', language='zh-CN')
print(chart.get_soul_palace().translate_name('zh-CN')) # 输出: 福德宫
# 繁體中文
chart = astro.by_solar('2000-8-16', 6, '男', language='zh-TW')
print(chart.get_soul_palace().translate_name('zh-TW')) # 输出: 福德宮
# English
chart = astro.by_solar('2000-8-16', 6, '男', language='en-US')
print(chart.get_soul_palace().translate_name('en-US')) # 输出: Spirit
# 日本語
chart = astro.by_solar('2000-8-16', 6, '男', language='ja-JP')
print(chart.get_soul_palace().translate_name('ja-JP')) # 输出: 福徳宮
# 한국어
chart = astro.by_solar('2000-8-16', 6, '남', language='ko-KR')
print(chart.get_soul_palace().translate_name('ko-KR')) # 输出: 복덕궁
# Tiếng Việt
chart = astro.by_solar('2000-8-16', 6, 'nam', language='vi-VN')
print(chart.get_soul_palace().translate_name('vi-VN')) # 输出: Phúc Đức Cung
查询星曜
# 查找特定星曜
ziwei = chart.star('ziweiMaj')
if ziwei:
print(f"星曜: {ziwei.translate_name()}")
print(f"亮度: {ziwei.translate_brightness()}")
print(f"所在宫位: {ziwei.palace().translate_name()}")
三方四正
# 获取命宫的三方四正
soul_palace = chart.get_soul_palace()
surpalaces = chart.surrounded_palaces(soul_palace.index)
for palace in surpalaces.all_palaces():
print(f"{palace.translate_name()}: {[s.translate_name() for s in palace.major_stars]}")
支持的语言
- zh-CN: 简体中文(默认)🇨🇳
- zh-TW: 繁體中文 🇹🇼
- en-US: English 🇺🇸
- ja-JP: 日本語 🇯🇵
- ko-KR: 한국어 🇰🇷
- vi-VN: Tiếng Việt 🇻🇳
涵盖紫微斗数主要流行的东亚和东南亚地区!
文档
与 iztro (JS版本) 的对比
| iztro-py | py-iztro | |
|---|---|---|
| 实现方式 | 纯Python | JavaScript包装器 |
| 依赖 | 仅Python标准库 | 需要JS解释器 |
| 性能 | 高 | 较低(跨语言调用开销) |
| 类型安全 | ✓ Pydantic模型 | ✗ |
| 多语言支持 | ✓ | ✗ |
开发
安装开发依赖
pip install -e ".[dev]"
运行测试
pytest
pytest --cov=src/iztro_py --cov-report=html
代码格式化
black src tests
mypy src
相关链接
许可证
MIT License
贡献
欢迎提交 Issue 和 Pull Request!
如果这个项目对你有帮助,请给它一个 ⭐️
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
iztro_py-0.4.0.tar.gz
(59.8 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
iztro_py-0.4.0-py3-none-any.whl
(68.4 kB
view details)
File details
Details for the file iztro_py-0.4.0.tar.gz.
File metadata
- Download URL: iztro_py-0.4.0.tar.gz
- Upload date:
- Size: 59.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
905909f9d3f7aab3ea9b1eec44c1467cd13c3b670493e1e8b5bb94a532dedf64
|
|
| MD5 |
4295406cac9e72093939c68fd3f797df
|
|
| BLAKE2b-256 |
24618fd09cbd72b19870dae2b06e0b74527a9d61519c135ad5b967ace3595edc
|
File details
Details for the file iztro_py-0.4.0-py3-none-any.whl.
File metadata
- Download URL: iztro_py-0.4.0-py3-none-any.whl
- Upload date:
- Size: 68.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d1a73ba67c143c32ccdf165e6b9d6df894865d5ef846ca7c63419f1a2ea1ee5
|
|
| MD5 |
8a77dcb3a829510409b28f3099f15882
|
|
| BLAKE2b-256 |
8676040c0f777f2add3c3ad700b4eb019473121a1b41b8e6241b47d8569e68ff
|