diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b3a60bc..284987c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,59 @@ # 印度占星 Skill 更新日志 +## v6.0.38(2026-06-05)—— Yoga 源码口径对齐与 F1 深水区提升 + +> **目标**:继续 v6.0.37 的 context-aware 路线,但不盲目扩规则;优先对齐 PyJHora 源码中已经明确的 house-strength、Navamsa dispositor、watery sign/planet、以及验证脚本路径口径,减少残余 Top FP/FN。 + +### 引擎与 helper 修复 + +- `scripts/yoga_engine.py` 新增 `HOUSE_STRENGTHS` 与 `PLANET_INDEX`,显式复刻 PyJHora `const.house_strengths_of_planets`,避免 `strong()` 继续用“落 Kendra/Trikona 即强”的过宽近似。 +- custom 沙箱新增: + - `house_strength(p)`:返回 PyJHora 式星座强度 0-5。 + - `strong(p, include_neutral=False)`:默认 strength >= FRIEND;可选 include neutral。 + - `weak(p)`:strength <= NEUTRAL。 +- 修复 `bvr_dehasthoulya_yoga` 内置条件: + - 114 改为“Lagna lord 的 Navamsa dispositor 在 Rasi 中落水象星座”,而不是误取 D9 上升主。 + - 116 改为“Lagna lord 是 watery planet(Moon/Venus)”,而不是“Lagna lord 落水象星座”。 + +### 高影响规则对齐 + +- `sankha_yoga`:改用 PyJHora house-strength 口径判断 L1/L9 强弱,Top FP 从 12 收窄到 5。 +- `kahala_yoga`:对齐 PyJHora BVR-15:L1 落 Kendra/Trikona,且 L4/L9 互为 Kendra。 +- `bvr_kaahala_yoga`:对齐 PyJHora `kaahala_yoga` 的有效 D1 判定:L4 与 Jupiter 互为 Kendra。 +- `bvr_rogagrastha_precise`:对齐 PyJHora 条件 b 的实际行为:Lagna lord strength <= neutral 即可触发(源码中的 quad/trine lord 列表包含 L1 自身)。该规则本轮从 Top FN 中消失。 +- `bvr_swaveeryaddhana_precise`:补入 PyJHora 131 的 Navamsa dispositor chain D9-safe 条件。 +- `bvr_bahu_puthra_precise`:修正 221 语义为“7宫主所落 Navamsa 的 lord 落 Rasi 1/2/5”,不再错误扩大成“任意与7宫主 associated 的行星”。Top FP 从 15 清零。 + +### 验证脚本修复 + +- `scripts/validate_logic_v2.py` 固定读取/写入 `SKILL_DIR/references/*`,避免从工作区根目录运行时误读另一份 `references/` 并写出错误报告。 + +### 验证结果 + +- `scripts/validate_logic_v2.py`: + - Precision **88.37%**(v6.0.37 为 85.60%;实际 v6.0.38 旧路径校正基线为 84.25%) + - Recall **81.09%**(v6.0.37 为 72.38%;旧路径校正基线为 75.66%) + - F1 **84.57%**(v6.0.37 为 78.44%;旧路径校正基线为 79.72%) + - FP:114;FN:202 +- `scripts/run_quality_gate.py --skip-yoga-logic`:通过。 + - pytest **35 passed** + - BPHS/Ashtakavarga 不变量 **18/18** + - golden case 通过 + +### 规则库状态 + +- JSON 规则总数:**475** +- 启用规则:**381** +- 当前验证报告:`references/validation_logic_report.json` + +### 后续优化点 + +- 下一轮 Top FN 重点:`bvr_kaalanirdesat_puthranaasa_yoga`、`bvr_matrunasa_precise`、`bvr_kapata_yoga`、`bvr_vanchana_chora_bheethi_yoga`。 +- 下一轮 Top FP 重点:`mridanga_yoga`、`bvr_bandhu_pujya_yoga`、`bvr_002_sunapha_precise`、`bvr_bahu_sthree_yoga`、`bvr_bhratruvriddhi_precise`。 +- 建议继续对齐 PyJHora 的 dynamic benefics/malefics、`planets_aspecting_the_raasi()` 与 Upagraha house-index 口径。 + +--- + ## v6.0.37(2026-06-05)—— Context-aware Yoga 精度提升 > **目标**:利用 v6.0.36 已接入的 D9/Navamsa、Panchanga、Gulika/Maandi 上下文,继续修复 PyJHora/B.V. Raman 高影响 Yoga 误差,而不是回退到 D1-only 近似。 diff --git a/SKILL.md b/SKILL.md index 48cf24c3..1e4384da 100644 --- a/SKILL.md +++ b/SKILL.md @@ -1,6 +1,6 @@ --- name: jyotish-vedic-astrology -version: 6.0.37 +version: 6.0.38 description: 印度占星(Jyotish)专业解盘与推运系统。核心能力:PDF星盘输入→严谨解盘→精确推运应期输出。触发词:印度占星、吠陀占星、Jyotish、解盘、推运、星盘分析、Dasha、Transit、Nakshatra、Yoga、出生时间矫正、PDF星盘、读取PDF、分析PDF星盘、现代解读、误判纠错、Varga分盘、综合分析、过境分析、合盘、婚姻匹配、年运盘、Prashna、Argala、Jaimini、Shadbala、Ashtakavarga、HTML报告、深度解盘。 --- @@ -10,7 +10,7 @@ description: 印度占星(Jyotish)专业解盘与推运系统。核心能力 > **严格路由**:`references/strict-workflow-router.md`(⭐涉及事业/婚恋/财务/应期/技法验证时必须优先读取) > **覆盖矩阵**:`references/technique-capability-matrix.md`(⭐判断技法 covered/partial/missing 时必须参考) > **机器注册表**:`references/technique_registry.json` + `scripts/audit_capabilities.py`(⭐用于自动审计与CI门禁) -> **版本**:v6.0.37-context-aware-yoga-precision | **详细变更**:`CHANGELOG.md` +> **版本**:v6.0.38-yoga-source-alignment | **详细变更**:`CHANGELOG.md` --- @@ -301,9 +301,9 @@ $PYTHON $SCRIPT <子命令> [参数] --- -**版本**:v6.0.37-context-aware-yoga-precision +**版本**:v6.0.38-yoga-source-alignment **创建日期**:2026-04-20 -**最后更新**:2026-06-05(v6.0.37 基于 D9/Panchanga/Gulika/Maandi context 修复高影响 Yoga,拆分 PyJHora `kaahala_yoga` 与 `kahala_yoga`,新增 Kapata 高置信规则并修正多个 B.V. Raman 条件;当前 475 条 JSON 规则、381 条启用规则,D1/Rasi 逻辑验证 F1=78.44%,报告以 `references/validation_logic_report.json` 为准) +**最后更新**:2026-06-05(v6.0.38 对齐 PyJHora house-strength 口径,修复 `sankha_yoga`、`kahala_yoga`、`bvr_kaahala_yoga`、`bvr_rogagrastha_precise`、`bvr_swaveeryaddhana_precise`、`bvr_bahu_puthra_precise`、`bvr_dehasthoulya_yoga` 等残余高影响规则,并固定 `validate_logic_v2.py` 从任意 cwd 运行都读写 skill 内部 references;当前 475 条 JSON 规则、381 条启用规则,D1/Rasi 逻辑验证 Precision=88.37%、Recall=81.09%、F1=84.57%,报告以 `references/validation_logic_report.json` 为准) --- diff --git a/references/validation_logic_report.json b/references/validation_logic_report.json index 8194502f..f4c2a5aa 100644 --- a/references/validation_logic_report.json +++ b/references/validation_logic_report.json @@ -1,10 +1,10 @@ { "summary": { "charts_tested": 60, - "comparable_rules": 70, - "skill_total": 848, - "pyjhora_total": 1021, - "unmapped_pyjhora": 720, + "comparable_rules": 72, + "skill_total": 980, + "pyjhora_total": 1068, + "unmapped_pyjhora": 706, "missing_mappings": { "bvr_amaranantha_dhana_yoga": [ "amaranantha_dhana_yoga" @@ -131,12 +131,12 @@ "yuddhatpoorvadridhachitta_yoga" ] }, - "agreements": 711, - "false_positives": 137, - "false_negatives": 310, - "precision": 0.8384, - "recall": 0.6964, - "f1": 0.7608 + "agreements": 866, + "false_positives": 114, + "false_negatives": 202, + "precision": 0.8837, + "recall": 0.8109, + "f1": 0.8457 }, "false_positives": [ { @@ -144,16 +144,6 @@ "rule_id": "koorma_yoga", "rule_name": "Koorma Yoga" }, - { - "chart": "Albert Einstein", - "rule_id": "bvr_bhratruvriddhi_precise", - "rule_name": "Bhratruvriddhi Yoga" - }, - { - "chart": "Albert Einstein", - "rule_id": "mridanga_yoga", - "rule_name": "Mridanga Yoga" - }, { "chart": "Albert Einstein", "rule_id": "vihaga_nabhasa", @@ -165,14 +155,14 @@ "rule_name": "Dehasthoulya Yoga" }, { - "chart": "Marie Curie", - "rule_id": "bvr_ayatna_griha_prapta_yoga", - "rule_name": "Ayatna Griha Prapta Yoga" + "chart": "Albert Einstein", + "rule_id": "mridanga_yoga", + "rule_name": "Mridanga Yoga" }, { "chart": "Marie Curie", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga" + "rule_id": "bvr_ayatna_griha_prapta_yoga", + "rule_name": "Ayatna Griha Prapta Yoga" }, { "chart": "Marie Curie", @@ -181,13 +171,13 @@ }, { "chart": "Marie Curie", - "rule_id": "brahma_yoga", - "rule_name": "Brahma Yoga" + "rule_id": "bvr_swaveeryaddhana_precise", + "rule_name": "Swaveeryaddhana Yoga" }, { - "chart": "Stephen Hawking", - "rule_id": "sankha_yoga", - "rule_name": "Sankha Yoga" + "chart": "Marie Curie", + "rule_id": "brahma_yoga", + "rule_name": "Brahma Yoga" }, { "chart": "Stephen Hawking", @@ -195,35 +185,45 @@ "rule_name": "Bahu Sthree Yoga" }, { - "chart": "Charles Darwin", - "rule_id": "bvr_vanchana_chora_bheethi_yoga", - "rule_name": "Vanchana Chora Bheethi Yoga" + "chart": "Stephen Hawking", + "rule_id": "sankha_yoga", + "rule_name": "Sankha Yoga" + }, + { + "chart": "Stephen Hawking", + "rule_id": "bvr_mathibhramana_yoga", + "rule_name": "Mathibhramana Yoga" }, { "chart": "Charles Darwin", "rule_id": "sankha_yoga", "rule_name": "Sankha Yoga" }, - { - "chart": "Thomas Edison", - "rule_id": "bvr_017_vosi_precise", - "rule_name": "Vosi Yoga" - }, - { - "chart": "Thomas Edison", - "rule_id": "bvr_002_sunapha_precise", - "rule_name": "Sunaphaa Yoga" - }, { "chart": "Thomas Edison", "rule_id": "bvr_bhratruvriddhi_precise", "rule_name": "Bhratruvriddhi Yoga" }, + { + "chart": "Thomas Edison", + "rule_id": "bvr_002_sunapha_precise", + "rule_name": "Sunaphaa Yoga" + }, + { + "chart": "Thomas Edison", + "rule_id": "bvr_eka_puthra_precise", + "rule_name": "Eka Puthra Yoga" + }, { "chart": "Thomas Edison", "rule_id": "bvr_018_ubhayachara_precise", "rule_name": "Ubhayachara Yoga" }, + { + "chart": "Thomas Edison", + "rule_id": "bvr_017_vosi_precise", + "rule_name": "Vosi Yoga" + }, { "chart": "Thomas Edison", "rule_id": "sankha_yoga", @@ -235,30 +235,10 @@ "rule_name": "Bandhu Pujya Yoga" }, { - "chart": "Thomas Edison", + "chart": "Alexander Fleming", "rule_id": "bvr_bahu_puthra_precise", "rule_name": "Bahu Puthra Yoga" }, - { - "chart": "Thomas Edison", - "rule_id": "bvr_eka_puthra_precise", - "rule_name": "Eka Puthra Yoga" - }, - { - "chart": "Alexander Fleming", - "rule_id": "bvr_vanchana_chora_bheethi_yoga", - "rule_name": "Vanchana Chora Bheethi Yoga" - }, - { - "chart": "Max Planck", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga" - }, - { - "chart": "Max Planck", - "rule_id": "mridanga_yoga", - "rule_name": "Mridanga Yoga" - }, { "chart": "Max Planck", "rule_id": "bvr_bandhubhisthyaktha_precise", @@ -270,9 +250,9 @@ "rule_name": "Kaalanirdesat Puthranaasa Yoga" }, { - "chart": "Niels Bohr", - "rule_id": "vihaga_nabhasa", - "rule_name": "Vihaga Nabhasa Yoga" + "chart": "Max Planck", + "rule_id": "mridanga_yoga", + "rule_name": "Mridanga Yoga" }, { "chart": "Niels Bohr", @@ -280,34 +260,29 @@ "rule_name": "Bhratruvriddhi Yoga" }, { - "chart": "Richard Feynman", - "rule_id": "bvr_018_ubhayachara_precise", - "rule_name": "Ubhayachara Yoga" - }, - { - "chart": "Richard Feynman", - "rule_id": "bvr_003_anapha_precise", - "rule_name": "Anaphaa Yoga" + "chart": "Niels Bohr", + "rule_id": "vihaga_nabhasa", + "rule_name": "Vihaga Nabhasa Yoga" }, { "chart": "Richard Feynman", "rule_id": "bvr_dharidhra_11_precise", "rule_name": "Dharidhra Yoga" }, - { - "chart": "Richard Feynman", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga" - }, { "chart": "Richard Feynman", "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", "rule_name": "Kaalanirdesat Puthranaasa Yoga" }, { - "chart": "Mahatma Gandhi", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga" + "chart": "Richard Feynman", + "rule_id": "bvr_003_anapha_precise", + "rule_name": "Anaphaa Yoga" + }, + { + "chart": "Richard Feynman", + "rule_id": "bvr_018_ubhayachara_precise", + "rule_name": "Ubhayachara Yoga" }, { "chart": "Mahatma Gandhi", @@ -324,11 +299,6 @@ "rule_id": "mridanga_yoga", "rule_name": "Mridanga Yoga" }, - { - "chart": "Indira Gandhi", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga" - }, { "chart": "Indira Gandhi", "rule_id": "bvr_bandhu_pujya_yoga", @@ -339,30 +309,20 @@ "rule_id": "bvr_003_anapha_precise", "rule_name": "Anaphaa Yoga" }, - { - "chart": "Winston Churchill", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga" - }, { "chart": "Winston Churchill", "rule_id": "bheri_yoga", "rule_name": "Bheri Yoga" }, { - "chart": "John F. Kennedy", - "rule_id": "bvr_vanchana_chora_bheethi_yoga", - "rule_name": "Vanchana Chora Bheethi Yoga" + "chart": "Winston Churchill", + "rule_id": "kahala_yoga", + "rule_name": "Kahala Yoga" }, { - "chart": "John F. Kennedy", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga" - }, - { - "chart": "John F. Kennedy", - "rule_id": "brahma_yoga", - "rule_name": "Brahma Yoga" + "chart": "Winston Churchill", + "rule_id": "bvr_swaveeryaddhana_precise", + "rule_name": "Swaveeryaddhana Yoga" }, { "chart": "John F. Kennedy", @@ -370,14 +330,24 @@ "rule_name": "Dharidhra Yoga" }, { - "chart": "Nelson Mandela", - "rule_id": "sankha_yoga", - "rule_name": "Sankha Yoga" + "chart": "John F. Kennedy", + "rule_id": "brahma_yoga", + "rule_name": "Brahma Yoga" }, { "chart": "Abraham Lincoln", - "rule_id": "bvr_vanchana_chora_bheethi_yoga", - "rule_name": "Vanchana Chora Bheethi Yoga" + "rule_id": "bvr_bahu_puthra_precise", + "rule_name": "Bahu Puthra Yoga" + }, + { + "chart": "Abraham Lincoln", + "rule_id": "bvr_002_sunapha_precise", + "rule_name": "Sunaphaa Yoga" + }, + { + "chart": "Abraham Lincoln", + "rule_id": "sankha_yoga", + "rule_name": "Sankha Yoga" }, { "chart": "Abraham Lincoln", @@ -386,34 +356,24 @@ }, { "chart": "Abraham Lincoln", - "rule_id": "bvr_002_sunapha_precise", - "rule_name": "Sunaphaa Yoga" + "rule_id": "bvr_swaveeryaddhana_precise", + "rule_name": "Swaveeryaddhana Yoga" }, { - "chart": "Abraham Lincoln", - "rule_id": "sankha_yoga", - "rule_name": "Sankha Yoga" + "chart": "Margaret Thatcher", + "rule_id": "bvr_002_sunapha_precise", + "rule_name": "Sunaphaa Yoga" }, { "chart": "Margaret Thatcher", "rule_id": "bvr_004_duradhara_precise", "rule_name": "Duradhara Yoga" }, - { - "chart": "Margaret Thatcher", - "rule_id": "bvr_002_sunapha_precise", - "rule_name": "Sunaphaa Yoga" - }, { "chart": "Barack Obama", "rule_id": "bvr_bandhu_pujya_yoga", "rule_name": "Bandhu Pujya Yoga" }, - { - "chart": "Rabindranath Tagore", - "rule_id": "bvr_vanchana_chora_bheethi_yoga", - "rule_name": "Vanchana Chora Bheethi Yoga" - }, { "chart": "Rabindranath Tagore", "rule_id": "bvr_002_sunapha_precise", @@ -426,29 +386,29 @@ }, { "chart": "Rabindranath Tagore", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga" - }, - { - "chart": "Wolfgang Mozart", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga" - }, - { - "chart": "Wolfgang Mozart", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga" + "rule_id": "bvr_vanchana_chora_bheethi_yoga", + "rule_name": "Vanchana Chora Bheethi Yoga" }, { "chart": "Wolfgang Mozart", "rule_id": "bvr_utthama_graha_yoga", "rule_name": "Utthama Griha Yoga" }, + { + "chart": "Pablo Picasso", + "rule_id": "bvr_kapata_yoga", + "rule_name": "Kapata Yoga" + }, { "chart": "Pablo Picasso", "rule_id": "bvr_018_ubhayachara_precise", "rule_name": "Ubhayachara Yoga" }, + { + "chart": "Vincent van Gogh", + "rule_id": "bvr_dharidhra_11_precise", + "rule_name": "Dharidhra Yoga" + }, { "chart": "Vincent van Gogh", "rule_id": "koorma_yoga", @@ -456,8 +416,8 @@ }, { "chart": "Vincent van Gogh", - "rule_id": "bvr_dharidhra_11_precise", - "rule_name": "Dharidhra Yoga" + "rule_id": "bvr_krisanga_yoga", + "rule_name": "Krisanga Yoga" }, { "chart": "Charlie Chaplin", @@ -469,30 +429,15 @@ "rule_id": "mridanga_yoga", "rule_name": "Mridanga Yoga" }, - { - "chart": "Elvis Presley", - "rule_id": "sankha_yoga", - "rule_name": "Sankha Yoga" - }, - { - "chart": "Michael Jackson", - "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", - "rule_name": "Kaalanirdesat Puthranaasa Yoga" - }, { "chart": "Michael Jackson", "rule_id": "bvr_bahu_sthree_yoga", "rule_name": "Bahu Sthree Yoga" }, { - "chart": "A.R. Rahman", - "rule_id": "bvr_vanchana_chora_bheethi_yoga", - "rule_name": "Vanchana Chora Bheethi Yoga" - }, - { - "chart": "A.R. Rahman", - "rule_id": "sankha_yoga", - "rule_name": "Sankha Yoga" + "chart": "Michael Jackson", + "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", + "rule_name": "Kaalanirdesat Puthranaasa Yoga" }, { "chart": "A.R. Rahman", @@ -504,21 +449,16 @@ "rule_id": "bvr_sada_sanchara_precise", "rule_name": "Sada Sanchara Yoga" }, - { - "chart": "Lata Mangeshkar", - "rule_id": "mridanga_yoga", - "rule_name": "Mridanga Yoga" - }, - { - "chart": "Lata Mangeshkar", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga" - }, { "chart": "Lata Mangeshkar", "rule_id": "bvr_bahu_sthree_yoga", "rule_name": "Bahu Sthree Yoga" }, + { + "chart": "Lata Mangeshkar", + "rule_id": "mridanga_yoga", + "rule_name": "Mridanga Yoga" + }, { "chart": "Steve Jobs", "rule_id": "vihaga_nabhasa", @@ -534,91 +474,51 @@ "rule_id": "bvr_mathibhramana_yoga", "rule_name": "Mathibhramana Yoga" }, - { - "chart": "Bill Gates", - "rule_id": "adhi_yoga", - "rule_name": "Adhi Yoga" - }, { "chart": "Bill Gates", "rule_id": "bheri_yoga", "rule_name": "Bheri Yoga" }, { - "chart": "Elon Musk", - "rule_id": "bvr_vanchana_chora_bheethi_yoga", - "rule_name": "Vanchana Chora Bheethi Yoga" - }, - { - "chart": "Jeff Bezos", - "rule_id": "sankha_yoga", - "rule_name": "Sankha Yoga" + "chart": "Bill Gates", + "rule_id": "adhi_yoga", + "rule_name": "Adhi Yoga" }, { "chart": "Jeff Bezos", "rule_id": "bvr_002_sunapha_precise", "rule_name": "Sunaphaa Yoga" }, - { - "chart": "Jeff Bezos", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga" - }, { "chart": "Warren Buffett", "rule_id": "mridanga_yoga", "rule_name": "Mridanga Yoga" }, - { - "chart": "Warren Buffett", - "rule_id": "bvr_bhratruvriddhi_precise", - "rule_name": "Bhratruvriddhi Yoga" - }, - { - "chart": "Mukesh Ambani", - "rule_id": "bvr_vanchana_chora_bheethi_yoga", - "rule_name": "Vanchana Chora Bheethi Yoga" - }, { "chart": "Mukesh Ambani", "rule_id": "bvr_bahu_sthree_yoga", "rule_name": "Bahu Sthree Yoga" }, - { - "chart": "Ratan Tata", - "rule_id": "sankha_yoga", - "rule_name": "Sankha Yoga" - }, { "chart": "Ratan Tata", "rule_id": "bvr_yukthi_samanwithavagmi_yoga", "rule_name": "Yukthi Samanwithavagmi Yoga" }, + { + "chart": "Narayana Murthy", + "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", + "rule_name": "Kaalanirdesat Puthranaasa Yoga" + }, { "chart": "Narayana Murthy", "rule_id": "bvr_bhratruvriddhi_precise", "rule_name": "Bhratruvriddhi Yoga" }, - { - "chart": "Narayana Murthy", - "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", - "rule_name": "Kaalanirdesat Puthranaasa Yoga" - }, { "chart": "Azim Premji", "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", "rule_name": "Kaalanirdesat Puthranaasa Yoga" }, - { - "chart": "Dhirubhai Ambani", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga" - }, - { - "chart": "Sachin Tendulkar", - "rule_id": "bvr_vanchana_chora_bheethi_yoga", - "rule_name": "Vanchana Chora Bheethi Yoga" - }, { "chart": "Virat Kohli", "rule_id": "bvr_yukthi_samanwithavagmi_yoga", @@ -629,80 +529,65 @@ "rule_id": "bvr_eka_puthra_precise", "rule_name": "Eka Puthra Yoga" }, - { - "chart": "Muhammad Ali", - "rule_id": "sankha_yoga", - "rule_name": "Sankha Yoga" - }, { "chart": "Muhammad Ali", "rule_id": "bvr_bandhu_pujya_yoga", "rule_name": "Bandhu Pujya Yoga" }, - { - "chart": "Muhammad Ali", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga" - }, { "chart": "Michael Jordan", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga" - }, - { - "chart": "Lionel Messi", - "rule_id": "bvr_017_vosi_precise", - "rule_name": "Vosi Yoga" - }, - { - "chart": "Lionel Messi", - "rule_id": "bvr_002_sunapha_precise", - "rule_name": "Sunaphaa Yoga" - }, - { - "chart": "Lionel Messi", - "rule_id": "brahma_yoga", - "rule_name": "Brahma Yoga" + "rule_id": "bvr_vanchana_chora_bheethi_yoga", + "rule_name": "Vanchana Chora Bheethi Yoga" }, { "chart": "Lionel Messi", "rule_id": "bvr_dehasthoulya_yoga", "rule_name": "Dehasthoulya Yoga" }, + { + "chart": "Lionel Messi", + "rule_id": "bvr_002_sunapha_precise", + "rule_name": "Sunaphaa Yoga" + }, + { + "chart": "Lionel Messi", + "rule_id": "brahma_yoga", + "rule_name": "Brahma Yoga" + }, + { + "chart": "Lionel Messi", + "rule_id": "bvr_017_vosi_precise", + "rule_name": "Vosi Yoga" + }, { "chart": "Lionel Messi", "rule_id": "bvr_004_duradhara_precise", "rule_name": "Duradhara Yoga" }, + { + "chart": "Lionel Messi", + "rule_id": "bvr_rogagrastha_precise", + "rule_name": "Rogagrastha Yoga" + }, { "chart": "Lionel Messi", "rule_id": "kahala_yoga", "rule_name": "Kahala Yoga" }, - { - "chart": "Cristiano Ronaldo", - "rule_id": "bvr_vanchana_chora_bheethi_yoga", - "rule_name": "Vanchana Chora Bheethi Yoga" - }, { "chart": "Cristiano Ronaldo", "rule_id": "sankha_yoga", "rule_name": "Sankha Yoga" }, - { - "chart": "Cristiano Ronaldo", - "rule_id": "brahma_yoga", - "rule_name": "Brahma Yoga" - }, { "chart": "Cristiano Ronaldo", "rule_id": "bvr_utthama_graha_yoga", "rule_name": "Utthama Griha Yoga" }, { - "chart": "Serena Williams", - "rule_id": "bvr_004_duradhara_precise", - "rule_name": "Duradhara Yoga" + "chart": "Cristiano Ronaldo", + "rule_id": "brahma_yoga", + "rule_name": "Brahma Yoga" }, { "chart": "Serena Williams", @@ -711,13 +596,18 @@ }, { "chart": "Serena Williams", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga" + "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", + "rule_name": "Kaalanirdesat Puthranaasa Yoga" }, { "chart": "Serena Williams", - "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", - "rule_name": "Kaalanirdesat Puthranaasa Yoga" + "rule_id": "bvr_kapata_yoga", + "rule_name": "Kapata Yoga" + }, + { + "chart": "Serena Williams", + "rule_id": "bvr_004_duradhara_precise", + "rule_name": "Duradhara Yoga" }, { "chart": "Roger Federer", @@ -725,9 +615,9 @@ "rule_name": "Bhratruvriddhi Yoga" }, { - "chart": "Amitabh Bachchan", - "rule_id": "sankha_yoga", - "rule_name": "Sankha Yoga" + "chart": "Roger Federer", + "rule_id": "bvr_vanchana_chora_bheethi_yoga", + "rule_name": "Vanchana Chora Bheethi Yoga" }, { "chart": "Amitabh Bachchan", @@ -754,15 +644,20 @@ "rule_id": "mridanga_yoga", "rule_name": "Mridanga Yoga" }, + { + "chart": "Dalai Lama", + "rule_id": "bvr_bhratruvriddhi_precise", + "rule_name": "Bhratruvriddhi Yoga" + }, { "chart": "Dalai Lama", "rule_id": "bvr_matrunasa_precise", "rule_name": "Matrunasa Yoga" }, { - "chart": "Dalai Lama", - "rule_id": "bvr_bhratruvriddhi_precise", - "rule_name": "Bhratruvriddhi Yoga" + "chart": "Pope Francis", + "rule_id": "bvr_bandhu_pujya_yoga", + "rule_name": "Bandhu Pujya Yoga" }, { "chart": "Pope Francis", @@ -774,11 +669,6 @@ "rule_id": "bvr_004_duradhara_precise", "rule_name": "Duradhara Yoga" }, - { - "chart": "Pope Francis", - "rule_id": "bvr_bandhu_pujya_yoga", - "rule_name": "Bandhu Pujya Yoga" - }, { "chart": "Pope Francis", "rule_id": "bvr_003_anapha_precise", @@ -791,18 +681,13 @@ }, { "chart": "Osho", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga" - }, - { - "chart": "J. Krishnamurti", "rule_id": "bvr_vanchana_chora_bheethi_yoga", "rule_name": "Vanchana Chora Bheethi Yoga" }, { "chart": "J. Krishnamurti", - "rule_id": "mridanga_yoga", - "rule_name": "Mridanga Yoga" + "rule_id": "bvr_bahu_sthree_yoga", + "rule_name": "Bahu Sthree Yoga" }, { "chart": "J. Krishnamurti", @@ -811,6 +696,11 @@ }, { "chart": "J. Krishnamurti", + "rule_id": "mridanga_yoga", + "rule_name": "Mridanga Yoga" + }, + { + "chart": "Paramahansa Yogananda", "rule_id": "bvr_bahu_sthree_yoga", "rule_name": "Bahu Sthree Yoga" }, @@ -818,49 +708,9 @@ "chart": "Paramahansa Yogananda", "rule_id": "bvr_sada_sanchara_precise", "rule_name": "Sada Sanchara Yoga" - }, - { - "chart": "Paramahansa Yogananda", - "rule_id": "bvr_bahu_sthree_yoga", - "rule_name": "Bahu Sthree Yoga" } ], "false_negatives": [ - { - "chart": "Albert Einstein", - "rule_id": "bvr_bandhubhisthyaktha_precise", - "rule_name": "Bandhubhisthyaktha Yoga", - "pyjhora_names": [ - "bandhubhisthyaktha_yoga" - ] - }, - { - "chart": "Albert Einstein", - "rule_id": "bvr_matrunasa_precise", - "rule_name": "Matrunasa Yoga", - "pyjhora_names": [ - "matrunasa_yoga_198", - "matrunasa_yoga_199" - ] - }, - { - "chart": "Albert Einstein", - "rule_id": "bvr_bandhu_pujya_yoga", - "rule_name": "Bandhu Pujya Yoga", - "pyjhora_names": [ - "bandhu_pujya_yoga_193", - "bandhu_pujya_yoga_194" - ] - }, - { - "chart": "Albert Einstein", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" - ] - }, { "chart": "Albert Einstein", "rule_id": "bvr_dharidhra_11_precise", @@ -884,6 +734,34 @@ "kaalanirdesat_puthranaasa_yoga_229" ] }, + { + "chart": "Albert Einstein", + "rule_id": "bvr_kapata_yoga", + "rule_name": "Kapata Yoga", + "pyjhora_names": [ + "kapata_yoga_202", + "kapata_yoga_203", + "kapata_yoga_204" + ] + }, + { + "chart": "Albert Einstein", + "rule_id": "bvr_matrunasa_precise", + "rule_name": "Matrunasa Yoga", + "pyjhora_names": [ + "matrunasa_yoga_198", + "matrunasa_yoga_199" + ] + }, + { + "chart": "Albert Einstein", + "rule_id": "bvr_bandhu_pujya_yoga", + "rule_name": "Bandhu Pujya Yoga", + "pyjhora_names": [ + "bandhu_pujya_yoga_193", + "bandhu_pujya_yoga_194" + ] + }, { "chart": "Albert Einstein", "rule_id": "bvr_mathibhramana_yoga", @@ -904,14 +782,6 @@ "amala_yoga" ] }, - { - "chart": "Marie Curie", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", - "pyjhora_names": [ - "rogagrastha_yoga" - ] - }, { "chart": "Marie Curie", "rule_id": "bvr_bhaga_chumbana_yoga", @@ -920,53 +790,6 @@ "bhaga_chumbana_yoga" ] }, - { - "chart": "Marie Curie", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", - "pyjhora_names": [ - "kaahala_yoga" - ] - }, - { - "chart": "Marie Curie", - "rule_id": "bvr_mathibhramana_yoga", - "rule_name": "Mathibhramana Yoga", - "pyjhora_names": [ - "mathibhramana_yoga_291", - "mathibhramana_yoga_292", - "mathibhramana_yoga_293", - "mathibhramana_yoga_294", - "mathibhramana_yoga_variation" - ] - }, - { - "chart": "Nikola Tesla", - "rule_id": "bvr_amala_precise", - "rule_name": "Amala Yoga", - "pyjhora_names": [ - "amala_yoga" - ] - }, - { - "chart": "Nikola Tesla", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", - "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", - "kapata_yoga_202", - "kapata_yoga_204" - ] - }, - { - "chart": "Nikola Tesla", - "rule_id": "parvata_yoga", - "rule_name": "Parvata Yoga", - "pyjhora_names": [ - "parvata_yoga" - ] - }, { "chart": "Nikola Tesla", "rule_id": "bheri_yoga", @@ -977,10 +800,10 @@ }, { "chart": "Nikola Tesla", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", + "rule_id": "bvr_amala_precise", + "rule_name": "Amala Yoga", "pyjhora_names": [ - "kaahala_yoga" + "amala_yoga" ] }, { @@ -993,64 +816,28 @@ ] }, { - "chart": "Stephen Hawking", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", + "chart": "Nikola Tesla", + "rule_id": "parvata_yoga", + "rule_name": "Parvata Yoga", "pyjhora_names": [ - "rogagrastha_yoga" - ] - }, - { - "chart": "Stephen Hawking", - "rule_id": "bvr_bandhubhisthyaktha_precise", - "rule_name": "Bandhubhisthyaktha Yoga", - "pyjhora_names": [ - "bandhubhisthyaktha_yoga" - ] - }, - { - "chart": "Stephen Hawking", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", - "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", - "kapata_yoga_202", - "kapata_yoga_204" - ] - }, - { - "chart": "Stephen Hawking", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" - ] - }, - { - "chart": "Stephen Hawking", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", - "pyjhora_names": [ - "kaahala_yoga" + "parvata_yoga" ] }, { "chart": "Charles Darwin", - "rule_id": "bvr_sumukha_precise", - "rule_name": "Sumukha Yoga", + "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", + "rule_name": "Kaalanirdesat Puthranaasa Yoga", "pyjhora_names": [ - "sumukha_yoga" + "kaalanirdesat_puthranaasa_yoga_230", + "kaalanirdesat_puthranaasa_yoga_229" ] }, { "chart": "Charles Darwin", - "rule_id": "bvr_matrunasa_precise", - "rule_name": "Matrunasa Yoga", + "rule_id": "bvr_utthama_graha_yoga", + "rule_name": "Utthama Griha Yoga", "pyjhora_names": [ - "matrunasa_yoga_198", - "matrunasa_yoga_199" + "utthama_graha_yoga" ] }, { @@ -1072,19 +859,19 @@ }, { "chart": "Charles Darwin", - "rule_id": "bvr_utthama_graha_yoga", - "rule_name": "Utthama Griha Yoga", + "rule_id": "bvr_sumukha_precise", + "rule_name": "Sumukha Yoga", "pyjhora_names": [ - "utthama_graha_yoga" + "sumukha_yoga" ] }, { "chart": "Charles Darwin", - "rule_id": "bvr_krisanga_yoga", - "rule_name": "Krisanga Yoga", + "rule_id": "bvr_matrunasa_precise", + "rule_name": "Matrunasa Yoga", "pyjhora_names": [ - "krisanga_yoga_112", - "krisanga_yoga_113" + "matrunasa_yoga_198", + "matrunasa_yoga_199" ] }, { @@ -1095,47 +882,6 @@ "matru_sneha_yoga" ] }, - { - "chart": "Charles Darwin", - "rule_id": "bvr_swaveeryaddhana_precise", - "rule_name": "Swaveeryaddhana Yoga", - "pyjhora_names": [ - "swaveeryaddhana_yoga" - ] - }, - { - "chart": "Charles Darwin", - "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", - "rule_name": "Kaalanirdesat Puthranaasa Yoga", - "pyjhora_names": [ - "kaalanirdesat_puthranaasa_yoga_230", - "kaalanirdesat_puthranaasa_yoga_229" - ] - }, - { - "chart": "Thomas Edison", - "rule_id": "bvr_bandhubhisthyaktha_precise", - "rule_name": "Bandhubhisthyaktha Yoga", - "pyjhora_names": [ - "bandhubhisthyaktha_yoga" - ] - }, - { - "chart": "Thomas Edison", - "rule_id": "bvr_swaveeryaddhana_precise", - "rule_name": "Swaveeryaddhana Yoga", - "pyjhora_names": [ - "swaveeryaddhana_yoga" - ] - }, - { - "chart": "Thomas Edison", - "rule_id": "brahma_yoga", - "rule_name": "Brahma Yoga", - "pyjhora_names": [ - "brahma_yoga" - ] - }, { "chart": "Thomas Edison", "rule_id": "bheri_yoga", @@ -1146,12 +892,10 @@ }, { "chart": "Thomas Edison", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga", + "rule_id": "bvr_bandhubhisthyaktha_precise", + "rule_name": "Bandhubhisthyaktha Yoga", "pyjhora_names": [ - "dehasthoulya_yoga_114", - "dehasthoulya_yoga_115", - "dehasthoulya_yoga_116" + "bandhubhisthyaktha_yoga" ] }, { @@ -1164,27 +908,10 @@ }, { "chart": "Thomas Edison", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", + "rule_id": "brahma_yoga", + "rule_name": "Brahma Yoga", "pyjhora_names": [ - "kaahala_yoga" - ] - }, - { - "chart": "Alexander Fleming", - "rule_id": "bvr_sada_sanchara_precise", - "rule_name": "Sada Sanchara Yoga", - "pyjhora_names": [ - "sada_sanchara_yoga" - ] - }, - { - "chart": "Alexander Fleming", - "rule_id": "bvr_grihanasa_yoga", - "rule_name": "Grihanasa Yoga", - "pyjhora_names": [ - "grihanasa_yoga_191", - "grihanasa_yoga_192" + "brahma_yoga" ] }, { @@ -1196,19 +923,11 @@ ] }, { - "chart": "Max Planck", - "rule_id": "bvr_amala_precise", - "rule_name": "Amala Yoga", + "chart": "Alexander Fleming", + "rule_id": "bvr_sada_sanchara_precise", + "rule_name": "Sada Sanchara Yoga", "pyjhora_names": [ - "amala_yoga" - ] - }, - { - "chart": "Max Planck", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", - "pyjhora_names": [ - "rogagrastha_yoga" + "sada_sanchara_yoga" ] }, { @@ -1221,13 +940,10 @@ }, { "chart": "Max Planck", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", + "rule_id": "bvr_vanchana_chora_bheethi_yoga", + "rule_name": "Vanchana Chora Bheethi Yoga", "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", - "kapata_yoga_202", - "kapata_yoga_204" + "vanchana_chora_bheethi_yoga" ] }, { @@ -1247,6 +963,14 @@ "sada_sanchara_yoga" ] }, + { + "chart": "Max Planck", + "rule_id": "bvr_amala_precise", + "rule_name": "Amala Yoga", + "pyjhora_names": [ + "amala_yoga" + ] + }, { "chart": "Max Planck", "rule_id": "bvr_krisanga_yoga", @@ -1256,6 +980,14 @@ "krisanga_yoga_113" ] }, + { + "chart": "Max Planck", + "rule_id": "bvr_rogagrastha_precise", + "rule_name": "Rogagrastha Yoga", + "pyjhora_names": [ + "rogagrastha_yoga" + ] + }, { "chart": "Max Planck", "rule_id": "bvr_matru_sneha_yoga", @@ -1276,35 +1008,6 @@ "mathibhramana_yoga_variation" ] }, - { - "chart": "Niels Bohr", - "rule_id": "bvr_bandhubhisthyaktha_precise", - "rule_name": "Bandhubhisthyaktha Yoga", - "pyjhora_names": [ - "bandhubhisthyaktha_yoga" - ] - }, - { - "chart": "Niels Bohr", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", - "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", - "kapata_yoga_202", - "kapata_yoga_204" - ] - }, - { - "chart": "Niels Bohr", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga", - "pyjhora_names": [ - "dehasthoulya_yoga_114", - "dehasthoulya_yoga_115", - "dehasthoulya_yoga_116" - ] - }, { "chart": "Niels Bohr", "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", @@ -1315,23 +1018,13 @@ ] }, { - "chart": "Niels Bohr", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", + "chart": "Richard Feynman", + "rule_id": "bvr_kapata_yoga", + "rule_name": "Kapata Yoga", "pyjhora_names": [ - "kaahala_yoga" - ] - }, - { - "chart": "Niels Bohr", - "rule_id": "bvr_mathibhramana_yoga", - "rule_name": "Mathibhramana Yoga", - "pyjhora_names": [ - "mathibhramana_yoga_291", - "mathibhramana_yoga_292", - "mathibhramana_yoga_293", - "mathibhramana_yoga_294", - "mathibhramana_yoga_variation" + "kapata_yoga_202", + "kapata_yoga_203", + "kapata_yoga_204" ] }, { @@ -1351,22 +1044,6 @@ "ayatna_griha_prapta_yoga_190" ] }, - { - "chart": "Richard Feynman", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", - "pyjhora_names": [ - "rogagrastha_yoga" - ] - }, - { - "chart": "Richard Feynman", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", - "pyjhora_names": [ - "kaahala_yoga" - ] - }, { "chart": "Mahatma Gandhi", "rule_id": "bvr_dattha_puthra_yoga", @@ -1376,25 +1053,6 @@ "dattha_puthra_yoga_223" ] }, - { - "chart": "Mahatma Gandhi", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", - "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", - "kapata_yoga_202", - "kapata_yoga_204" - ] - }, - { - "chart": "Mahatma Gandhi", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", - "pyjhora_names": [ - "kaahala_yoga" - ] - }, { "chart": "Mahatma Gandhi", "rule_id": "bvr_mathibhramana_yoga", @@ -1407,6 +1065,14 @@ "mathibhramana_yoga_variation" ] }, + { + "chart": "Mahatma Gandhi", + "rule_id": "kahala_yoga", + "rule_name": "Kahala Yoga", + "pyjhora_names": [ + "kahala_yoga" + ] + }, { "chart": "Jawaharlal Nehru", "rule_id": "bvr_vanchana_chora_bheethi_yoga", @@ -1415,15 +1081,6 @@ "vanchana_chora_bheethi_yoga" ] }, - { - "chart": "Jawaharlal Nehru", - "rule_id": "bvr_matrunasa_precise", - "rule_name": "Matrunasa Yoga", - "pyjhora_names": [ - "matrunasa_yoga_198", - "matrunasa_yoga_199" - ] - }, { "chart": "Jawaharlal Nehru", "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", @@ -1450,23 +1107,6 @@ "amala_yoga" ] }, - { - "chart": "Narendra Modi", - "rule_id": "bvr_swaveeryaddhana_precise", - "rule_name": "Swaveeryaddhana Yoga", - "pyjhora_names": [ - "swaveeryaddhana_yoga" - ] - }, - { - "chart": "Narendra Modi", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" - ] - }, { "chart": "Narendra Modi", "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", @@ -1487,20 +1127,12 @@ }, { "chart": "Indira Gandhi", - "rule_id": "bvr_krisanga_yoga", - "rule_name": "Krisanga Yoga", + "rule_id": "bvr_kapata_yoga", + "rule_name": "Kapata Yoga", "pyjhora_names": [ - "krisanga_yoga_112", - "krisanga_yoga_113" - ] - }, - { - "chart": "Indira Gandhi", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" + "kapata_yoga_202", + "kapata_yoga_203", + "kapata_yoga_204" ] }, { @@ -1511,32 +1143,6 @@ "utthama_graha_yoga" ] }, - { - "chart": "Winston Churchill", - "rule_id": "bvr_matrunasa_precise", - "rule_name": "Matrunasa Yoga", - "pyjhora_names": [ - "matrunasa_yoga_198", - "matrunasa_yoga_199" - ] - }, - { - "chart": "Winston Churchill", - "rule_id": "bvr_vanchana_chora_bheethi_yoga", - "rule_name": "Vanchana Chora Bheethi Yoga", - "pyjhora_names": [ - "vanchana_chora_bheethi_yoga" - ] - }, - { - "chart": "Winston Churchill", - "rule_id": "bvr_bandhu_pujya_yoga", - "rule_name": "Bandhu Pujya Yoga", - "pyjhora_names": [ - "bandhu_pujya_yoga_193", - "bandhu_pujya_yoga_194" - ] - }, { "chart": "Winston Churchill", "rule_id": "bvr_dharidhra_11_precise", @@ -1553,30 +1159,24 @@ }, { "chart": "Winston Churchill", - "rule_id": "bvr_sada_sanchara_precise", - "rule_name": "Sada Sanchara Yoga", + "rule_id": "bvr_kapata_yoga", + "rule_name": "Kapata Yoga", "pyjhora_names": [ - "sada_sanchara_yoga" + "kapata_yoga_202", + "kapata_yoga_203", + "kapata_yoga_204" ] }, { - "chart": "John F. Kennedy", - "rule_id": "bvr_amala_precise", - "rule_name": "Amala Yoga", + "chart": "Winston Churchill", + "rule_id": "bvr_vanchana_chora_bheethi_yoga", + "rule_name": "Vanchana Chora Bheethi Yoga", "pyjhora_names": [ - "amala_yoga" + "vanchana_chora_bheethi_yoga" ] }, { - "chart": "John F. Kennedy", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", - "pyjhora_names": [ - "rogagrastha_yoga" - ] - }, - { - "chart": "John F. Kennedy", + "chart": "Winston Churchill", "rule_id": "bvr_matrunasa_precise", "rule_name": "Matrunasa Yoga", "pyjhora_names": [ @@ -1584,6 +1184,31 @@ "matrunasa_yoga_199" ] }, + { + "chart": "Winston Churchill", + "rule_id": "bvr_kaahala_yoga", + "rule_name": "Kaahala Yoga", + "pyjhora_names": [ + "kaahala_yoga" + ] + }, + { + "chart": "Winston Churchill", + "rule_id": "bvr_bandhu_pujya_yoga", + "rule_name": "Bandhu Pujya Yoga", + "pyjhora_names": [ + "bandhu_pujya_yoga_193", + "bandhu_pujya_yoga_194" + ] + }, + { + "chart": "Winston Churchill", + "rule_id": "bvr_sada_sanchara_precise", + "rule_name": "Sada Sanchara Yoga", + "pyjhora_names": [ + "sada_sanchara_yoga" + ] + }, { "chart": "John F. Kennedy", "rule_id": "bvr_bhaga_chumbana_yoga", @@ -1594,11 +1219,10 @@ }, { "chart": "John F. Kennedy", - "rule_id": "bvr_bandhu_pujya_yoga", - "rule_name": "Bandhu Pujya Yoga", + "rule_id": "bvr_amala_precise", + "rule_name": "Amala Yoga", "pyjhora_names": [ - "bandhu_pujya_yoga_193", - "bandhu_pujya_yoga_194" + "amala_yoga" ] }, { @@ -1611,23 +1235,7 @@ ] }, { - "chart": "Nelson Mandela", - "rule_id": "bvr_sumukha_precise", - "rule_name": "Sumukha Yoga", - "pyjhora_names": [ - "sumukha_yoga" - ] - }, - { - "chart": "Nelson Mandela", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", - "pyjhora_names": [ - "rogagrastha_yoga" - ] - }, - { - "chart": "Nelson Mandela", + "chart": "John F. Kennedy", "rule_id": "bvr_matrunasa_precise", "rule_name": "Matrunasa Yoga", "pyjhora_names": [ @@ -1635,6 +1243,24 @@ "matrunasa_yoga_199" ] }, + { + "chart": "John F. Kennedy", + "rule_id": "bvr_bandhu_pujya_yoga", + "rule_name": "Bandhu Pujya Yoga", + "pyjhora_names": [ + "bandhu_pujya_yoga_193", + "bandhu_pujya_yoga_194" + ] + }, + { + "chart": "Nelson Mandela", + "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", + "rule_name": "Kaalanirdesat Puthranaasa Yoga", + "pyjhora_names": [ + "kaalanirdesat_puthranaasa_yoga_230", + "kaalanirdesat_puthranaasa_yoga_229" + ] + }, { "chart": "Nelson Mandela", "rule_id": "bvr_bandhu_pujya_yoga", @@ -1646,15 +1272,14 @@ }, { "chart": "Nelson Mandela", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", + "rule_id": "bvr_sumukha_precise", + "rule_name": "Sumukha Yoga", "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" + "sumukha_yoga" ] }, { - "chart": "Nelson Mandela", + "chart": "Abraham Lincoln", "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", "rule_name": "Kaalanirdesat Puthranaasa Yoga", "pyjhora_names": [ @@ -1664,19 +1289,20 @@ }, { "chart": "Abraham Lincoln", - "rule_id": "bvr_sumukha_precise", - "rule_name": "Sumukha Yoga", + "rule_id": "bvr_kapata_yoga", + "rule_name": "Kapata Yoga", "pyjhora_names": [ - "sumukha_yoga" + "kapata_yoga_202", + "kapata_yoga_203", + "kapata_yoga_204" ] }, { "chart": "Abraham Lincoln", - "rule_id": "bvr_kalaanidhi_yoga", - "rule_name": "Kalaanidhi Yoga", + "rule_id": "bvr_bhratruvriddhi_precise", + "rule_name": "Bhratruvriddhi Yoga", "pyjhora_names": [ - "kalaanidhi_yoga", - "kalanidhi_yoga" + "bhratruvriddhi_yoga" ] }, { @@ -1697,99 +1323,27 @@ }, { "chart": "Abraham Lincoln", - "rule_id": "bvr_matru_sneha_yoga", - "rule_name": "Matru Sneha Yoga", + "rule_id": "bvr_kalaanidhi_yoga", + "rule_name": "Kalaanidhi Yoga", "pyjhora_names": [ - "matru_sneha_yoga" + "kalaanidhi_yoga", + "kalanidhi_yoga" ] }, { "chart": "Abraham Lincoln", - "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", - "rule_name": "Kaalanirdesat Puthranaasa Yoga", + "rule_id": "bvr_sumukha_precise", + "rule_name": "Sumukha Yoga", "pyjhora_names": [ - "kaalanirdesat_puthranaasa_yoga_230", - "kaalanirdesat_puthranaasa_yoga_229" + "sumukha_yoga" ] }, { - "chart": "Margaret Thatcher", - "rule_id": "bvr_bandhubhisthyaktha_precise", - "rule_name": "Bandhubhisthyaktha Yoga", + "chart": "Abraham Lincoln", + "rule_id": "bvr_matru_sneha_yoga", + "rule_name": "Matru Sneha Yoga", "pyjhora_names": [ - "bandhubhisthyaktha_yoga" - ] - }, - { - "chart": "Margaret Thatcher", - "rule_id": "bvr_matrunasa_precise", - "rule_name": "Matrunasa Yoga", - "pyjhora_names": [ - "matrunasa_yoga_198", - "matrunasa_yoga_199" - ] - }, - { - "chart": "Margaret Thatcher", - "rule_id": "sankha_yoga", - "rule_name": "Sankha Yoga", - "pyjhora_names": [ - "sankha_yoga" - ] - }, - { - "chart": "Margaret Thatcher", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga", - "pyjhora_names": [ - "dehasthoulya_yoga_114", - "dehasthoulya_yoga_115", - "dehasthoulya_yoga_116" - ] - }, - { - "chart": "Margaret Thatcher", - "rule_id": "bvr_swaveeryaddhana_precise", - "rule_name": "Swaveeryaddhana Yoga", - "pyjhora_names": [ - "swaveeryaddhana_yoga" - ] - }, - { - "chart": "Margaret Thatcher", - "rule_id": "bvr_mathibhramana_yoga", - "rule_name": "Mathibhramana Yoga", - "pyjhora_names": [ - "mathibhramana_yoga_291", - "mathibhramana_yoga_292", - "mathibhramana_yoga_293", - "mathibhramana_yoga_294", - "mathibhramana_yoga_variation" - ] - }, - { - "chart": "Barack Obama", - "rule_id": "bvr_amala_precise", - "rule_name": "Amala Yoga", - "pyjhora_names": [ - "amala_yoga" - ] - }, - { - "chart": "Barack Obama", - "rule_id": "bvr_bandhubhisthyaktha_precise", - "rule_name": "Bandhubhisthyaktha Yoga", - "pyjhora_names": [ - "bandhubhisthyaktha_yoga" - ] - }, - { - "chart": "Barack Obama", - "rule_id": "bvr_matrunasa_precise", - "rule_name": "Matrunasa Yoga", - "pyjhora_names": [ - "matrunasa_yoga_198", - "matrunasa_yoga_199" + "matru_sneha_yoga" ] }, { @@ -1806,14 +1360,6 @@ "dharidhra_yoga_152" ] }, - { - "chart": "Barack Obama", - "rule_id": "bvr_swaveeryaddhana_precise", - "rule_name": "Swaveeryaddhana Yoga", - "pyjhora_names": [ - "swaveeryaddhana_yoga" - ] - }, { "chart": "Barack Obama", "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", @@ -1824,7 +1370,25 @@ ] }, { - "chart": "Rabindranath Tagore", + "chart": "Barack Obama", + "rule_id": "bvr_kapata_yoga", + "rule_name": "Kapata Yoga", + "pyjhora_names": [ + "kapata_yoga_202", + "kapata_yoga_203", + "kapata_yoga_204" + ] + }, + { + "chart": "Barack Obama", + "rule_id": "bvr_amala_precise", + "rule_name": "Amala Yoga", + "pyjhora_names": [ + "amala_yoga" + ] + }, + { + "chart": "Barack Obama", "rule_id": "bvr_matrunasa_precise", "rule_name": "Matrunasa Yoga", "pyjhora_names": [ @@ -1842,21 +1406,28 @@ }, { "chart": "Rabindranath Tagore", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", + "rule_id": "bvr_matrunasa_precise", + "rule_name": "Matrunasa Yoga", "pyjhora_names": [ - "rogagrastha_yoga" + "matrunasa_yoga_198", + "matrunasa_yoga_199" ] }, { "chart": "Ludwig van Beethoven", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", + "rule_id": "bvr_bahu_puthra_precise", + "rule_name": "Bahu Puthra Yoga", "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", - "kapata_yoga_202", - "kapata_yoga_204" + "bahu_puthra_yoga_220", + "bahu_puthra_yoga_221" + ] + }, + { + "chart": "Ludwig van Beethoven", + "rule_id": "bvr_matru_sneha_yoga", + "rule_name": "Matru Sneha Yoga", + "pyjhora_names": [ + "matru_sneha_yoga" ] }, { @@ -1876,51 +1447,6 @@ "kalanidhi_yoga" ] }, - { - "chart": "Ludwig van Beethoven", - "rule_id": "bvr_matru_sneha_yoga", - "rule_name": "Matru Sneha Yoga", - "pyjhora_names": [ - "matru_sneha_yoga" - ] - }, - { - "chart": "Ludwig van Beethoven", - "rule_id": "bvr_mathibhramana_yoga", - "rule_name": "Mathibhramana Yoga", - "pyjhora_names": [ - "mathibhramana_yoga_291", - "mathibhramana_yoga_292", - "mathibhramana_yoga_293", - "mathibhramana_yoga_294", - "mathibhramana_yoga_variation" - ] - }, - { - "chart": "Wolfgang Mozart", - "rule_id": "bvr_yukthi_samanwithavagmi_yoga", - "rule_name": "Yukthi Samanwithavagmi Yoga", - "pyjhora_names": [ - "yukthi_samanwithavagmi_yoga_154" - ] - }, - { - "chart": "Wolfgang Mozart", - "rule_id": "bvr_bhratruvriddhi_precise", - "rule_name": "Bhratruvriddhi Yoga", - "pyjhora_names": [ - "bhratruvriddhi_yoga" - ] - }, - { - "chart": "Wolfgang Mozart", - "rule_id": "bvr_matrunasa_precise", - "rule_name": "Matrunasa Yoga", - "pyjhora_names": [ - "matrunasa_yoga_198", - "matrunasa_yoga_199" - ] - }, { "chart": "Wolfgang Mozart", "rule_id": "bvr_dharidhra_11_precise", @@ -1937,12 +1463,18 @@ }, { "chart": "Wolfgang Mozart", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga", + "rule_id": "bvr_bhratruvriddhi_precise", + "rule_name": "Bhratruvriddhi Yoga", "pyjhora_names": [ - "dehasthoulya_yoga_114", - "dehasthoulya_yoga_115", - "dehasthoulya_yoga_116" + "bhratruvriddhi_yoga" + ] + }, + { + "chart": "Wolfgang Mozart", + "rule_id": "bvr_yukthi_samanwithavagmi_yoga", + "rule_name": "Yukthi Samanwithavagmi Yoga", + "pyjhora_names": [ + "yukthi_samanwithavagmi_yoga_154" ] }, { @@ -1962,42 +1494,6 @@ "sada_sanchara_yoga" ] }, - { - "chart": "Pablo Picasso", - "rule_id": "bvr_sumukha_precise", - "rule_name": "Sumukha Yoga", - "pyjhora_names": [ - "sumukha_yoga" - ] - }, - { - "chart": "Pablo Picasso", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", - "pyjhora_names": [ - "rogagrastha_yoga" - ] - }, - { - "chart": "Pablo Picasso", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", - "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", - "kapata_yoga_202", - "kapata_yoga_204" - ] - }, - { - "chart": "Pablo Picasso", - "rule_id": "bvr_grihanasa_yoga", - "rule_name": "Grihanasa Yoga", - "pyjhora_names": [ - "grihanasa_yoga_191", - "grihanasa_yoga_192" - ] - }, { "chart": "Pablo Picasso", "rule_id": "bvr_dama_yoga", @@ -2008,19 +1504,18 @@ }, { "chart": "Pablo Picasso", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", + "rule_id": "bvr_sumukha_precise", + "rule_name": "Sumukha Yoga", "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" + "sumukha_yoga" ] }, { "chart": "Vincent van Gogh", - "rule_id": "bvr_bhaga_chumbana_yoga", - "rule_name": "Bhaga Chumbana Yoga", + "rule_id": "bvr_vanchana_chora_bheethi_yoga", + "rule_name": "Vanchana Chora Bheethi Yoga", "pyjhora_names": [ - "bhaga_chumbana_yoga" + "vanchana_chora_bheethi_yoga" ] }, { @@ -2033,11 +1528,10 @@ }, { "chart": "Vincent van Gogh", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", + "rule_id": "bvr_bhaga_chumbana_yoga", + "rule_name": "Bhaga Chumbana Yoga", "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" + "bhaga_chumbana_yoga" ] }, { @@ -2060,6 +1554,23 @@ "yukthi_samanwithavagmi_yoga_154" ] }, + { + "chart": "Charlie Chaplin", + "rule_id": "bvr_bahu_puthra_precise", + "rule_name": "Bahu Puthra Yoga", + "pyjhora_names": [ + "bahu_puthra_yoga_220", + "bahu_puthra_yoga_221" + ] + }, + { + "chart": "Charlie Chaplin", + "rule_id": "bvr_kaahala_yoga", + "rule_name": "Kaahala Yoga", + "pyjhora_names": [ + "kaahala_yoga" + ] + }, { "chart": "Charlie Chaplin", "rule_id": "bvr_pittharoga_yoga", @@ -2077,15 +1588,6 @@ "bandhu_pujya_yoga_194" ] }, - { - "chart": "Charlie Chaplin", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" - ] - }, { "chart": "Charlie Chaplin", "rule_id": "bvr_mathibhramana_yoga", @@ -2100,10 +1602,12 @@ }, { "chart": "Elvis Presley", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", + "rule_id": "bvr_kapata_yoga", + "rule_name": "Kapata Yoga", "pyjhora_names": [ - "rogagrastha_yoga" + "kapata_yoga_202", + "kapata_yoga_203", + "kapata_yoga_204" ] }, { @@ -2114,15 +1618,6 @@ "bhratruvriddhi_yoga" ] }, - { - "chart": "Elvis Presley", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" - ] - }, { "chart": "Elvis Presley", "rule_id": "bvr_sada_sanchara_precise", @@ -2132,11 +1627,11 @@ ] }, { - "chart": "Elvis Presley", - "rule_id": "bvr_swaveeryaddhana_precise", - "rule_name": "Swaveeryaddhana Yoga", + "chart": "Michael Jackson", + "rule_id": "bvr_dama_yoga", + "rule_name": "Dama Yoga", "pyjhora_names": [ - "swaveeryaddhana_yoga" + "dama_yoga" ] }, { @@ -2147,22 +1642,6 @@ "sumukha_yoga" ] }, - { - "chart": "Michael Jackson", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", - "pyjhora_names": [ - "rogagrastha_yoga" - ] - }, - { - "chart": "Michael Jackson", - "rule_id": "bvr_dama_yoga", - "rule_name": "Dama Yoga", - "pyjhora_names": [ - "dama_yoga" - ] - }, { "chart": "Michael Jackson", "rule_id": "bvr_vanchana_chora_bheethi_yoga", @@ -2171,39 +1650,6 @@ "vanchana_chora_bheethi_yoga" ] }, - { - "chart": "Michael Jackson", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" - ] - }, - { - "chart": "Michael Jackson", - "rule_id": "bvr_swaveeryaddhana_precise", - "rule_name": "Swaveeryaddhana Yoga", - "pyjhora_names": [ - "swaveeryaddhana_yoga" - ] - }, - { - "chart": "A.R. Rahman", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", - "pyjhora_names": [ - "rogagrastha_yoga" - ] - }, - { - "chart": "A.R. Rahman", - "rule_id": "bvr_swaveeryaddhana_precise", - "rule_name": "Swaveeryaddhana Yoga", - "pyjhora_names": [ - "swaveeryaddhana_yoga" - ] - }, { "chart": "A.R. Rahman", "rule_id": "bvr_dama_yoga", @@ -2213,12 +1659,21 @@ ] }, { - "chart": "Lata Mangeshkar", - "rule_id": "bvr_matrunasa_precise", - "rule_name": "Matrunasa Yoga", + "chart": "A.R. Rahman", + "rule_id": "bvr_kapata_yoga", + "rule_name": "Kapata Yoga", "pyjhora_names": [ - "matrunasa_yoga_198", - "matrunasa_yoga_199" + "kapata_yoga_202", + "kapata_yoga_203", + "kapata_yoga_204" + ] + }, + { + "chart": "Lata Mangeshkar", + "rule_id": "bvr_vanchana_chora_bheethi_yoga", + "rule_name": "Vanchana Chora Bheethi Yoga", + "pyjhora_names": [ + "vanchana_chora_bheethi_yoga" ] }, { @@ -2229,23 +1684,6 @@ "dama_yoga" ] }, - { - "chart": "Lata Mangeshkar", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" - ] - }, - { - "chart": "Lata Mangeshkar", - "rule_id": "bvr_swaveeryaddhana_precise", - "rule_name": "Swaveeryaddhana Yoga", - "pyjhora_names": [ - "swaveeryaddhana_yoga" - ] - }, { "chart": "Lata Mangeshkar", "rule_id": "bvr_mathibhramana_yoga", @@ -2258,6 +1696,32 @@ "mathibhramana_yoga_variation" ] }, + { + "chart": "Lata Mangeshkar", + "rule_id": "bvr_matrunasa_precise", + "rule_name": "Matrunasa Yoga", + "pyjhora_names": [ + "matrunasa_yoga_198", + "matrunasa_yoga_199" + ] + }, + { + "chart": "Steve Jobs", + "rule_id": "bheri_yoga", + "rule_name": "Bheri Yoga", + "pyjhora_names": [ + "bheri_yoga" + ] + }, + { + "chart": "Steve Jobs", + "rule_id": "bvr_nishkapata_precise", + "rule_name": "Nishkapata Yoga", + "pyjhora_names": [ + "nishkapata_yoga_205", + "nishkapata_yoga_206" + ] + }, { "chart": "Steve Jobs", "rule_id": "bvr_yukthi_samanwithavagmi_yoga", @@ -2274,31 +1738,6 @@ "amala_yoga" ] }, - { - "chart": "Steve Jobs", - "rule_id": "bvr_matrunasa_precise", - "rule_name": "Matrunasa Yoga", - "pyjhora_names": [ - "matrunasa_yoga_198", - "matrunasa_yoga_199" - ] - }, - { - "chart": "Steve Jobs", - "rule_id": "sankha_yoga", - "rule_name": "Sankha Yoga", - "pyjhora_names": [ - "sankha_yoga" - ] - }, - { - "chart": "Steve Jobs", - "rule_id": "bheri_yoga", - "rule_name": "Bheri Yoga", - "pyjhora_names": [ - "bheri_yoga" - ] - }, { "chart": "Steve Jobs", "rule_id": "bvr_utthama_graha_yoga", @@ -2309,37 +1748,10 @@ }, { "chart": "Steve Jobs", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga", + "rule_id": "sankha_yoga", + "rule_name": "Sankha Yoga", "pyjhora_names": [ - "dehasthoulya_yoga_114", - "dehasthoulya_yoga_115", - "dehasthoulya_yoga_116" - ] - }, - { - "chart": "Bill Gates", - "rule_id": "bvr_bhaga_chumbana_yoga", - "rule_name": "Bhaga Chumbana Yoga", - "pyjhora_names": [ - "bhaga_chumbana_yoga" - ] - }, - { - "chart": "Bill Gates", - "rule_id": "bvr_bandhu_pujya_yoga", - "rule_name": "Bandhu Pujya Yoga", - "pyjhora_names": [ - "bandhu_pujya_yoga_193", - "bandhu_pujya_yoga_194" - ] - }, - { - "chart": "Bill Gates", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", - "pyjhora_names": [ - "rogagrastha_yoga" + "sankha_yoga" ] }, { @@ -2351,6 +1763,31 @@ "raja_bhanga_yoga_299" ] }, + { + "chart": "Bill Gates", + "rule_id": "bvr_bandhu_pujya_yoga", + "rule_name": "Bandhu Pujya Yoga", + "pyjhora_names": [ + "bandhu_pujya_yoga_193", + "bandhu_pujya_yoga_194" + ] + }, + { + "chart": "Bill Gates", + "rule_id": "bvr_bhaga_chumbana_yoga", + "rule_name": "Bhaga Chumbana Yoga", + "pyjhora_names": [ + "bhaga_chumbana_yoga" + ] + }, + { + "chart": "Elon Musk", + "rule_id": "bheri_yoga", + "rule_name": "Bheri Yoga", + "pyjhora_names": [ + "bheri_yoga" + ] + }, { "chart": "Elon Musk", "rule_id": "bvr_amala_precise", @@ -2359,6 +1796,15 @@ "amala_yoga" ] }, + { + "chart": "Elon Musk", + "rule_id": "bvr_krisanga_yoga", + "rule_name": "Krisanga Yoga", + "pyjhora_names": [ + "krisanga_yoga_112", + "krisanga_yoga_113" + ] + }, { "chart": "Elon Musk", "rule_id": "sankha_yoga", @@ -2376,14 +1822,6 @@ "bandhu_pujya_yoga_194" ] }, - { - "chart": "Elon Musk", - "rule_id": "bheri_yoga", - "rule_name": "Bheri Yoga", - "pyjhora_names": [ - "bheri_yoga" - ] - }, { "chart": "Elon Musk", "rule_id": "bvr_sada_sanchara_precise", @@ -2392,23 +1830,6 @@ "sada_sanchara_yoga" ] }, - { - "chart": "Elon Musk", - "rule_id": "bvr_krisanga_yoga", - "rule_name": "Krisanga Yoga", - "pyjhora_names": [ - "krisanga_yoga_112", - "krisanga_yoga_113" - ] - }, - { - "chart": "Jeff Bezos", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", - "pyjhora_names": [ - "rogagrastha_yoga" - ] - }, { "chart": "Jeff Bezos", "rule_id": "bvr_dattha_puthra_yoga", @@ -2427,33 +1848,12 @@ "matrunasa_yoga_199" ] }, - { - "chart": "Jeff Bezos", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", - "pyjhora_names": [ - "kaahala_yoga" - ] - }, - { - "chart": "Jeff Bezos", - "rule_id": "bvr_mathibhramana_yoga", - "rule_name": "Mathibhramana Yoga", - "pyjhora_names": [ - "mathibhramana_yoga_291", - "mathibhramana_yoga_292", - "mathibhramana_yoga_293", - "mathibhramana_yoga_294", - "mathibhramana_yoga_variation" - ] - }, { "chart": "Warren Buffett", - "rule_id": "bvr_matrunasa_precise", - "rule_name": "Matrunasa Yoga", + "rule_id": "bheri_yoga", + "rule_name": "Bheri Yoga", "pyjhora_names": [ - "matrunasa_yoga_198", - "matrunasa_yoga_199" + "bheri_yoga" ] }, { @@ -2464,6 +1864,22 @@ "bhaga_chumbana_yoga" ] }, + { + "chart": "Warren Buffett", + "rule_id": "bvr_vanchana_chora_bheethi_yoga", + "rule_name": "Vanchana Chora Bheethi Yoga", + "pyjhora_names": [ + "vanchana_chora_bheethi_yoga" + ] + }, + { + "chart": "Warren Buffett", + "rule_id": "bvr_vaatharoga_yoga", + "rule_name": "Vaatharoga Yoga", + "pyjhora_names": [ + "vaatharoga_yoga" + ] + }, { "chart": "Warren Buffett", "rule_id": "bvr_bandhu_pujya_yoga", @@ -2473,30 +1889,6 @@ "bandhu_pujya_yoga_194" ] }, - { - "chart": "Warren Buffett", - "rule_id": "bheri_yoga", - "rule_name": "Bheri Yoga", - "pyjhora_names": [ - "bheri_yoga" - ] - }, - { - "chart": "Warren Buffett", - "rule_id": "bvr_vaatharoga_yoga", - "rule_name": "Vaatharoga Yoga", - "pyjhora_names": [ - "vaatharoga_yoga" - ] - }, - { - "chart": "Warren Buffett", - "rule_id": "bvr_swaveeryaddhana_precise", - "rule_name": "Swaveeryaddhana Yoga", - "pyjhora_names": [ - "swaveeryaddhana_yoga" - ] - }, { "chart": "Warren Buffett", "rule_id": "bvr_mathibhramana_yoga", @@ -2509,17 +1901,6 @@ "mathibhramana_yoga_variation" ] }, - { - "chart": "Mukesh Ambani", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", - "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", - "kapata_yoga_202", - "kapata_yoga_204" - ] - }, { "chart": "Mukesh Ambani", "rule_id": "parvata_yoga", @@ -2536,26 +1917,6 @@ "sada_sanchara_yoga" ] }, - { - "chart": "Mukesh Ambani", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", - "pyjhora_names": [ - "kaahala_yoga" - ] - }, - { - "chart": "Mukesh Ambani", - "rule_id": "bvr_mathibhramana_yoga", - "rule_name": "Mathibhramana Yoga", - "pyjhora_names": [ - "mathibhramana_yoga_291", - "mathibhramana_yoga_292", - "mathibhramana_yoga_293", - "mathibhramana_yoga_294", - "mathibhramana_yoga_variation" - ] - }, { "chart": "Ratan Tata", "rule_id": "bvr_bhratruvriddhi_precise", @@ -2564,14 +1925,6 @@ "bhratruvriddhi_yoga" ] }, - { - "chart": "Ratan Tata", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", - "pyjhora_names": [ - "rogagrastha_yoga" - ] - }, { "chart": "Ratan Tata", "rule_id": "bvr_matrunasa_precise", @@ -2581,31 +1934,6 @@ "matrunasa_yoga_199" ] }, - { - "chart": "Ratan Tata", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" - ] - }, - { - "chart": "Ratan Tata", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", - "pyjhora_names": [ - "kaahala_yoga" - ] - }, - { - "chart": "Narayana Murthy", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", - "pyjhora_names": [ - "rogagrastha_yoga" - ] - }, { "chart": "Narayana Murthy", "rule_id": "bvr_bandhubhisthyaktha_precise", @@ -2614,17 +1942,6 @@ "bandhubhisthyaktha_yoga" ] }, - { - "chart": "Narayana Murthy", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", - "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", - "kapata_yoga_202", - "kapata_yoga_204" - ] - }, { "chart": "Narayana Murthy", "rule_id": "adhi_yoga", @@ -2633,46 +1950,12 @@ "adhi_yoga" ] }, - { - "chart": "Narayana Murthy", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" - ] - }, - { - "chart": "Narayana Murthy", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga", - "pyjhora_names": [ - "dehasthoulya_yoga_114", - "dehasthoulya_yoga_115", - "dehasthoulya_yoga_116" - ] - }, - { - "chart": "Narayana Murthy", - "rule_id": "bvr_mathibhramana_yoga", - "rule_name": "Mathibhramana Yoga", - "pyjhora_names": [ - "mathibhramana_yoga_291", - "mathibhramana_yoga_292", - "mathibhramana_yoga_293", - "mathibhramana_yoga_294", - "mathibhramana_yoga_variation" - ] - }, { "chart": "Azim Premji", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", + "rule_id": "bvr_dama_yoga", + "rule_name": "Dama Yoga", "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", - "kapata_yoga_202", - "kapata_yoga_204" + "dama_yoga" ] }, { @@ -2686,27 +1969,10 @@ }, { "chart": "Azim Premji", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", + "rule_id": "bvr_vanchana_chora_bheethi_yoga", + "rule_name": "Vanchana Chora Bheethi Yoga", "pyjhora_names": [ - "kaahala_yoga" - ] - }, - { - "chart": "Azim Premji", - "rule_id": "bvr_dama_yoga", - "rule_name": "Dama Yoga", - "pyjhora_names": [ - "dama_yoga" - ] - }, - { - "chart": "Dhirubhai Ambani", - "rule_id": "bvr_grihanasa_yoga", - "rule_name": "Grihanasa Yoga", - "pyjhora_names": [ - "grihanasa_yoga_191", - "grihanasa_yoga_192" + "vanchana_chora_bheethi_yoga" ] }, { @@ -2726,26 +1992,6 @@ "krisanga_yoga_113" ] }, - { - "chart": "Dhirubhai Ambani", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", - "pyjhora_names": [ - "kaahala_yoga" - ] - }, - { - "chart": "Dhirubhai Ambani", - "rule_id": "bvr_mathibhramana_yoga", - "rule_name": "Mathibhramana Yoga", - "pyjhora_names": [ - "mathibhramana_yoga_291", - "mathibhramana_yoga_292", - "mathibhramana_yoga_293", - "mathibhramana_yoga_294", - "mathibhramana_yoga_variation" - ] - }, { "chart": "Sachin Tendulkar", "rule_id": "bvr_pisacha_grastha_yoga", @@ -2754,15 +2000,6 @@ "pisacha_grastha_yoga" ] }, - { - "chart": "Sachin Tendulkar", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" - ] - }, { "chart": "Sachin Tendulkar", "rule_id": "bheri_yoga", @@ -2771,22 +2008,6 @@ "bheri_yoga" ] }, - { - "chart": "Sachin Tendulkar", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", - "pyjhora_names": [ - "kaahala_yoga" - ] - }, - { - "chart": "Virat Kohli", - "rule_id": "bvr_sumukha_precise", - "rule_name": "Sumukha Yoga", - "pyjhora_names": [ - "sumukha_yoga" - ] - }, { "chart": "Virat Kohli", "rule_id": "bvr_dama_yoga", @@ -2795,6 +2016,15 @@ "dama_yoga" ] }, + { + "chart": "Virat Kohli", + "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", + "rule_name": "Kaalanirdesat Puthranaasa Yoga", + "pyjhora_names": [ + "kaalanirdesat_puthranaasa_yoga_230", + "kaalanirdesat_puthranaasa_yoga_229" + ] + }, { "chart": "Virat Kohli", "rule_id": "bvr_bhaga_chumbana_yoga", @@ -2813,12 +2043,10 @@ }, { "chart": "Virat Kohli", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga", + "rule_id": "bvr_sumukha_precise", + "rule_name": "Sumukha Yoga", "pyjhora_names": [ - "dehasthoulya_yoga_114", - "dehasthoulya_yoga_115", - "dehasthoulya_yoga_116" + "sumukha_yoga" ] }, { @@ -2829,32 +2057,6 @@ "sada_sanchara_yoga" ] }, - { - "chart": "Virat Kohli", - "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", - "rule_name": "Kaalanirdesat Puthranaasa Yoga", - "pyjhora_names": [ - "kaalanirdesat_puthranaasa_yoga_230", - "kaalanirdesat_puthranaasa_yoga_229" - ] - }, - { - "chart": "MS Dhoni", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" - ] - }, - { - "chart": "MS Dhoni", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", - "pyjhora_names": [ - "kaahala_yoga" - ] - }, { "chart": "Muhammad Ali", "rule_id": "bvr_bhaga_chumbana_yoga", @@ -2865,12 +2067,11 @@ }, { "chart": "Muhammad Ali", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga", + "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", + "rule_name": "Kaalanirdesat Puthranaasa Yoga", "pyjhora_names": [ - "dehasthoulya_yoga_114", - "dehasthoulya_yoga_115", - "dehasthoulya_yoga_116" + "kaalanirdesat_puthranaasa_yoga_230", + "kaalanirdesat_puthranaasa_yoga_229" ] }, { @@ -2883,28 +2084,10 @@ }, { "chart": "Muhammad Ali", - "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", - "rule_name": "Kaalanirdesat Puthranaasa Yoga", + "rule_id": "bvr_vanchana_chora_bheethi_yoga", + "rule_name": "Vanchana Chora Bheethi Yoga", "pyjhora_names": [ - "kaalanirdesat_puthranaasa_yoga_230", - "kaalanirdesat_puthranaasa_yoga_229" - ] - }, - { - "chart": "Michael Jordan", - "rule_id": "bvr_matrunasa_precise", - "rule_name": "Matrunasa Yoga", - "pyjhora_names": [ - "matrunasa_yoga_198", - "matrunasa_yoga_199" - ] - }, - { - "chart": "Michael Jordan", - "rule_id": "bvr_bhaga_chumbana_yoga", - "rule_name": "Bhaga Chumbana Yoga", - "pyjhora_names": [ - "bhaga_chumbana_yoga" + "vanchana_chora_bheethi_yoga" ] }, { @@ -2921,24 +2104,6 @@ "dharidhra_yoga_152" ] }, - { - "chart": "Michael Jordan", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga", - "pyjhora_names": [ - "dehasthoulya_yoga_114", - "dehasthoulya_yoga_115", - "dehasthoulya_yoga_116" - ] - }, - { - "chart": "Michael Jordan", - "rule_id": "bvr_swaveeryaddhana_precise", - "rule_name": "Swaveeryaddhana Yoga", - "pyjhora_names": [ - "swaveeryaddhana_yoga" - ] - }, { "chart": "Michael Jordan", "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", @@ -2948,6 +2113,47 @@ "kaalanirdesat_puthranaasa_yoga_229" ] }, + { + "chart": "Michael Jordan", + "rule_id": "bvr_bhaga_chumbana_yoga", + "rule_name": "Bhaga Chumbana Yoga", + "pyjhora_names": [ + "bhaga_chumbana_yoga" + ] + }, + { + "chart": "Michael Jordan", + "rule_id": "bvr_matrunasa_precise", + "rule_name": "Matrunasa Yoga", + "pyjhora_names": [ + "matrunasa_yoga_198", + "matrunasa_yoga_199" + ] + }, + { + "chart": "Lionel Messi", + "rule_id": "bvr_dharidhra_11_precise", + "rule_name": "Dharidhra Yoga", + "pyjhora_names": [ + "dharidhra_yoga_144", + "dharidhra_yoga_147", + "dharidhra_yoga_148", + "dharidhra_yoga_149", + "dharidhra_yoga_150", + "dharidhra_yoga_151", + "dharidhra_yoga_152" + ] + }, + { + "chart": "Lionel Messi", + "rule_id": "bvr_kapata_yoga", + "rule_name": "Kapata Yoga", + "pyjhora_names": [ + "kapata_yoga_202", + "kapata_yoga_203", + "kapata_yoga_204" + ] + }, { "chart": "Lionel Messi", "rule_id": "bvr_matrudeerghayur_yoga", @@ -2959,16 +2165,10 @@ }, { "chart": "Lionel Messi", - "rule_id": "bvr_dharidhra_11_precise", - "rule_name": "Dharidhra Yoga", + "rule_id": "bvr_matru_sneha_yoga", + "rule_name": "Matru Sneha Yoga", "pyjhora_names": [ - "dharidhra_yoga_144", - "dharidhra_yoga_147", - "dharidhra_yoga_148", - "dharidhra_yoga_149", - "dharidhra_yoga_150", - "dharidhra_yoga_151", - "dharidhra_yoga_152" + "matru_sneha_yoga" ] }, { @@ -2979,14 +2179,6 @@ "sada_sanchara_yoga" ] }, - { - "chart": "Lionel Messi", - "rule_id": "bvr_matru_sneha_yoga", - "rule_name": "Matru Sneha Yoga", - "pyjhora_names": [ - "matru_sneha_yoga" - ] - }, { "chart": "Lionel Messi", "rule_id": "bvr_swaveeryaddhana_precise", @@ -2995,35 +2187,12 @@ "swaveeryaddhana_yoga" ] }, - { - "chart": "Lionel Messi", - "rule_id": "bvr_mathibhramana_yoga", - "rule_name": "Mathibhramana Yoga", - "pyjhora_names": [ - "mathibhramana_yoga_291", - "mathibhramana_yoga_292", - "mathibhramana_yoga_293", - "mathibhramana_yoga_294", - "mathibhramana_yoga_variation" - ] - }, { "chart": "Cristiano Ronaldo", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", + "rule_id": "bvr_yuddha_marana_yoga", + "rule_name": "Yuddha Marana Yoga", "pyjhora_names": [ - "rogagrastha_yoga" - ] - }, - { - "chart": "Cristiano Ronaldo", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", - "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", - "kapata_yoga_202", - "kapata_yoga_204" + "yuddha_marana_yoga" ] }, { @@ -3043,31 +2212,6 @@ "kalanidhi_yoga" ] }, - { - "chart": "Cristiano Ronaldo", - "rule_id": "bvr_yuddha_marana_yoga", - "rule_name": "Yuddha Marana Yoga", - "pyjhora_names": [ - "yuddha_marana_yoga" - ] - }, - { - "chart": "Cristiano Ronaldo", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", - "pyjhora_names": [ - "kaahala_yoga" - ] - }, - { - "chart": "Serena Williams", - "rule_id": "bvr_matrunasa_precise", - "rule_name": "Matrunasa Yoga", - "pyjhora_names": [ - "matrunasa_yoga_198", - "matrunasa_yoga_199" - ] - }, { "chart": "Serena Williams", "rule_id": "bvr_bandhu_pujya_yoga", @@ -3086,14 +2230,6 @@ "ayatna_griha_prapta_yoga_190" ] }, - { - "chart": "Serena Williams", - "rule_id": "bvr_swaveeryaddhana_precise", - "rule_name": "Swaveeryaddhana Yoga", - "pyjhora_names": [ - "swaveeryaddhana_yoga" - ] - }, { "chart": "Serena Williams", "rule_id": "bvr_mathibhramana_yoga", @@ -3106,26 +2242,6 @@ "mathibhramana_yoga_variation" ] }, - { - "chart": "Pele", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", - "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", - "kapata_yoga_202", - "kapata_yoga_204" - ] - }, - { - "chart": "Pele", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" - ] - }, { "chart": "Pele", "rule_id": "bvr_mathibhramana_yoga", @@ -3146,40 +2262,12 @@ "parvata_yoga" ] }, - { - "chart": "Roger Federer", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga", - "pyjhora_names": [ - "dehasthoulya_yoga_114", - "dehasthoulya_yoga_115", - "dehasthoulya_yoga_116" - ] - }, - { - "chart": "Roger Federer", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", - "pyjhora_names": [ - "rogagrastha_yoga" - ] - }, - { - "chart": "Roger Federer", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" - ] - }, { "chart": "Swami Vivekananda", - "rule_id": "bvr_ayatna_griha_prapta_yoga", - "rule_name": "Ayatna Griha Prapta Yoga", + "rule_id": "bheri_yoga", + "rule_name": "Bheri Yoga", "pyjhora_names": [ - "ayatna_griha_prapta_yoga_189", - "ayatna_griha_prapta_yoga_190" + "bheri_yoga" ] }, { @@ -3192,18 +2280,11 @@ }, { "chart": "Swami Vivekananda", - "rule_id": "bheri_yoga", - "rule_name": "Bheri Yoga", + "rule_id": "bvr_ayatna_griha_prapta_yoga", + "rule_name": "Ayatna Griha Prapta Yoga", "pyjhora_names": [ - "bheri_yoga" - ] - }, - { - "chart": "Amitabh Bachchan", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", - "pyjhora_names": [ - "rogagrastha_yoga" + "ayatna_griha_prapta_yoga_189", + "ayatna_griha_prapta_yoga_190" ] }, { @@ -3215,44 +2296,6 @@ "matrunasa_yoga_199" ] }, - { - "chart": "Amitabh Bachchan", - "rule_id": "bvr_dehasthoulya_yoga", - "rule_name": "Dehasthoulya Yoga", - "pyjhora_names": [ - "dehasthoulya_yoga_114", - "dehasthoulya_yoga_115", - "dehasthoulya_yoga_116" - ] - }, - { - "chart": "Amitabh Bachchan", - "rule_id": "bvr_swaveeryaddhana_precise", - "rule_name": "Swaveeryaddhana Yoga", - "pyjhora_names": [ - "swaveeryaddhana_yoga" - ] - }, - { - "chart": "Amitabh Bachchan", - "rule_id": "bvr_mathibhramana_yoga", - "rule_name": "Mathibhramana Yoga", - "pyjhora_names": [ - "mathibhramana_yoga_291", - "mathibhramana_yoga_292", - "mathibhramana_yoga_293", - "mathibhramana_yoga_294", - "mathibhramana_yoga_variation" - ] - }, - { - "chart": "Queen Elizabeth II", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", - "pyjhora_names": [ - "kaahala_yoga" - ] - }, { "chart": "Queen Elizabeth II", "rule_id": "bheri_yoga", @@ -3269,26 +2312,6 @@ "dama_yoga" ] }, - { - "chart": "Princess Diana", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", - "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", - "kapata_yoga_202", - "kapata_yoga_204" - ] - }, - { - "chart": "Princess Diana", - "rule_id": "bvr_grihanasa_yoga", - "rule_name": "Grihanasa Yoga", - "pyjhora_names": [ - "grihanasa_yoga_191", - "grihanasa_yoga_192" - ] - }, { "chart": "Princess Diana", "rule_id": "bheri_yoga", @@ -3297,18 +2320,6 @@ "bheri_yoga" ] }, - { - "chart": "Princess Diana", - "rule_id": "bvr_mathibhramana_yoga", - "rule_name": "Mathibhramana Yoga", - "pyjhora_names": [ - "mathibhramana_yoga_291", - "mathibhramana_yoga_292", - "mathibhramana_yoga_293", - "mathibhramana_yoga_294", - "mathibhramana_yoga_variation" - ] - }, { "chart": "Princess Diana", "rule_id": "bvr_kaalanirdesat_puthranaasa_yoga", @@ -3318,25 +2329,6 @@ "kaalanirdesat_puthranaasa_yoga_229" ] }, - { - "chart": "Dalai Lama", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", - "pyjhora_names": [ - "rogagrastha_yoga" - ] - }, - { - "chart": "Dalai Lama", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", - "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", - "kapata_yoga_202", - "kapata_yoga_204" - ] - }, { "chart": "Dalai Lama", "rule_id": "parvata_yoga", @@ -3345,15 +2337,6 @@ "parvata_yoga" ] }, - { - "chart": "Dalai Lama", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" - ] - }, { "chart": "Dalai Lama", "rule_id": "bvr_ayatna_griha_prapta_yoga", @@ -3363,29 +2346,12 @@ "ayatna_griha_prapta_yoga_190" ] }, - { - "chart": "Dalai Lama", - "rule_id": "bvr_swaveeryaddhana_precise", - "rule_name": "Swaveeryaddhana Yoga", - "pyjhora_names": [ - "swaveeryaddhana_yoga" - ] - }, { "chart": "Pope Francis", - "rule_id": "bvr_bhratruvriddhi_precise", - "rule_name": "Bhratruvriddhi Yoga", + "rule_id": "bvr_bahu_sthree_yoga", + "rule_name": "Bahu Sthree Yoga", "pyjhora_names": [ - "bhratruvriddhi_yoga" - ] - }, - { - "chart": "Pope Francis", - "rule_id": "bvr_matrunasa_precise", - "rule_name": "Matrunasa Yoga", - "pyjhora_names": [ - "matrunasa_yoga_198", - "matrunasa_yoga_199" + "bahu_sthree_yoga" ] }, { @@ -3397,14 +2363,6 @@ "raja_bhanga_yoga_299" ] }, - { - "chart": "Pope Francis", - "rule_id": "bvr_bahu_sthree_yoga", - "rule_name": "Bahu Sthree Yoga", - "pyjhora_names": [ - "bahu_sthree_yoga" - ] - }, { "chart": "Pope Francis", "rule_id": "bvr_kalaanidhi_yoga", @@ -3414,25 +2372,6 @@ "kalanidhi_yoga" ] }, - { - "chart": "Osho", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", - "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", - "kapata_yoga_202", - "kapata_yoga_204" - ] - }, - { - "chart": "Osho", - "rule_id": "bvr_vichitra_saudha_prakara_yoga", - "rule_name": "Vichitra Saudha Prakara Yoga", - "pyjhora_names": [ - "vichitra_saudha_prakara_yoga" - ] - }, { "chart": "Osho", "rule_id": "bvr_krisanga_yoga", @@ -3444,46 +2383,20 @@ }, { "chart": "Osho", - "rule_id": "bvr_swaveeryaddhana_precise", - "rule_name": "Swaveeryaddhana Yoga", + "rule_id": "bvr_dehasthoulya_yoga", + "rule_name": "Dehasthoulya Yoga", "pyjhora_names": [ - "swaveeryaddhana_yoga" + "dehasthoulya_yoga_114", + "dehasthoulya_yoga_115", + "dehasthoulya_yoga_116" ] }, { "chart": "Osho", - "rule_id": "bvr_mathibhramana_yoga", - "rule_name": "Mathibhramana Yoga", + "rule_id": "bvr_vichitra_saudha_prakara_yoga", + "rule_name": "Vichitra Saudha Prakara Yoga", "pyjhora_names": [ - "mathibhramana_yoga_291", - "mathibhramana_yoga_292", - "mathibhramana_yoga_293", - "mathibhramana_yoga_294", - "mathibhramana_yoga_variation" - ] - }, - { - "chart": "J. Krishnamurti", - "rule_id": "bvr_sumukha_precise", - "rule_name": "Sumukha Yoga", - "pyjhora_names": [ - "sumukha_yoga" - ] - }, - { - "chart": "J. Krishnamurti", - "rule_id": "bvr_bhratruvriddhi_precise", - "rule_name": "Bhratruvriddhi Yoga", - "pyjhora_names": [ - "bhratruvriddhi_yoga" - ] - }, - { - "chart": "J. Krishnamurti", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", - "pyjhora_names": [ - "kaahala_yoga" + "vichitra_saudha_prakara_yoga" ] }, { @@ -3496,16 +2409,31 @@ ] }, { - "chart": "Ramana Maharshi", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", + "chart": "J. Krishnamurti", + "rule_id": "bvr_kapata_yoga", + "rule_name": "Kapata Yoga", "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", "kapata_yoga_202", + "kapata_yoga_203", "kapata_yoga_204" ] }, + { + "chart": "J. Krishnamurti", + "rule_id": "bvr_bhratruvriddhi_precise", + "rule_name": "Bhratruvriddhi Yoga", + "pyjhora_names": [ + "bhratruvriddhi_yoga" + ] + }, + { + "chart": "J. Krishnamurti", + "rule_id": "bvr_sumukha_precise", + "rule_name": "Sumukha Yoga", + "pyjhora_names": [ + "sumukha_yoga" + ] + }, { "chart": "Ramana Maharshi", "rule_id": "sankha_yoga", @@ -3516,55 +2444,20 @@ }, { "chart": "Ramana Maharshi", - "rule_id": "bvr_rogagrastha_precise", - "rule_name": "Rogagrastha Yoga", + "rule_id": "bvr_kapata_yoga", + "rule_name": "Kapata Yoga", "pyjhora_names": [ - "rogagrastha_yoga" - ] - }, - { - "chart": "Ramana Maharshi", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", - "pyjhora_names": [ - "kaahala_yoga" - ] - }, - { - "chart": "Paramahansa Yogananda", - "rule_id": "bvr_nishkapata_precise", - "rule_name": "Nishkapata Yoga", - "pyjhora_names": [ - "nishkapata_yoga_205", - "nishkapata_yoga_206", "kapata_yoga_202", + "kapata_yoga_203", "kapata_yoga_204" ] }, { "chart": "Paramahansa Yogananda", - "rule_id": "bvr_matrunasa_precise", - "rule_name": "Matrunasa Yoga", + "rule_id": "bvr_vanchana_chora_bheethi_yoga", + "rule_name": "Vanchana Chora Bheethi Yoga", "pyjhora_names": [ - "matrunasa_yoga_198", - "matrunasa_yoga_199" - ] - }, - { - "chart": "Paramahansa Yogananda", - "rule_id": "bvr_bhaga_chumbana_yoga", - "rule_name": "Bhaga Chumbana Yoga", - "pyjhora_names": [ - "bhaga_chumbana_yoga" - ] - }, - { - "chart": "Paramahansa Yogananda", - "rule_id": "bvr_bahu_puthra_precise", - "rule_name": "Bahu Puthra Yoga", - "pyjhora_names": [ - "bahu_puthra_yoga_220", - "bahu_puthra_yoga_221" + "vanchana_chora_bheethi_yoga" ] }, { @@ -3577,19 +2470,19 @@ }, { "chart": "Paramahansa Yogananda", - "rule_id": "bvr_krisanga_yoga", - "rule_name": "Krisanga Yoga", + "rule_id": "bvr_bhaga_chumbana_yoga", + "rule_name": "Bhaga Chumbana Yoga", "pyjhora_names": [ - "krisanga_yoga_112", - "krisanga_yoga_113" + "bhaga_chumbana_yoga" ] }, { "chart": "Paramahansa Yogananda", - "rule_id": "kahala_yoga", - "rule_name": "Kahala Yoga", + "rule_id": "bvr_matrunasa_precise", + "rule_name": "Matrunasa Yoga", "pyjhora_names": [ - "kaahala_yoga" + "matrunasa_yoga_198", + "matrunasa_yoga_199" ] } ] diff --git a/references/yoga_rules.json b/references/yoga_rules.json index cbfc645b..6479a3b8 100644 --- a/references/yoga_rules.json +++ b/references/yoga_rules.json @@ -1256,7 +1256,7 @@ "category": "auspicious", "logic": { "type": "custom", - "expr": "\n# PyJHora/BVR-15: L4 and L9 in mutual kendras, and L1 strong.\nl1 = lord(1)\nl4 = lord(4)\nl9 = lord(9)\nif l1 not in ctx.planets or l4 not in ctx.planets or l9 not in ctx.planets:\n False\nelse:\n l1_strong = strong(l1)\n mutual_kendra = offset(house_of(l4), house_of(l9)) in [0, 3, 6, 9]\n l1_strong and mutual_kendra\n", + "expr": "\n# PyJHora/BVR-15: L4 and L9 in mutual kendras, and L1 is in a kendra/trine from Lagna.\nl1 = lord(1)\nl4 = lord(4)\nl9 = lord(9)\nif l1 not in ctx.planets or l4 not in ctx.planets or l9 not in ctx.planets:\n False\nelse:\n l1_strong = house_of(l1) in [1, 4, 5, 7, 9, 10]\n mutual_kendra = offset(house_of(l4), house_of(l9)) in [0, 3, 6, 9]\n l1_strong and mutual_kendra\n", "combo_template": "上升主有力,4宫主与9宫主互为Kendra" }, "effects": [ @@ -1278,7 +1278,7 @@ "category": "auspicious", "logic": { "type": "custom", - "expr": "\n# PyJHora/BVR-12: (L1 strong and L5/L6 in mutual kendras) OR\n# (L1 and L10 together in a movable sign and L9 strong).\nl1, l5, l6, l9, l10 = [lord(h) for h in [1, 5, 6, 9, 10]]\nif not all(p in ctx.planets for p in [l1, l5, l6, l9, l10]):\n False\nelse:\n l1h, l5h, l6h, l9h, l10h = [house_of(p) for p in [l1, l5, l6, l9, l10]]\n cond1 = strong(l1) and offset(l5h, l6h) in [0, 3, 6, 9] and offset(l6h, l5h) in [0, 3, 6, 9]\n cond2 = strong(l9) and same_house(l1, l10) and movable_house(l1h)\n cond1 or cond2\n", + "expr": "\n# PyJHora/BVR-12: (L1 strong and L5/L6 in mutual kendras) OR\n# (L1 and L10 together in a movable sign and L9 strong). PyJHora strong() uses\n# house_strength >= FRIEND, not generic kendra/trikona strength.\nl1, l5, l6, l9, l10 = [lord(h) for h in [1, 5, 6, 9, 10]]\nif not all(p in ctx.planets for p in [l1, l5, l6, l9, l10]):\n False\nelse:\n l1h, l5h, l6h, l9h, l10h = [house_of(p) for p in [l1, l5, l6, l9, l10]]\n cond1 = strong(l1) and offset(l5h, l6h) in [0, 3, 6, 9] and offset(l6h, l5h) in [0, 3, 6, 9]\n cond2 = strong(l9) and house_of(l1) == house_of(l10) and movable_house(l1h)\n cond1 or cond2\n", "combo_template": "上升主强且5/6宫主互为Kendra,或1/10宫主合于变动星座且9宫主强" }, "effects": [ @@ -9081,7 +9081,7 @@ "category": "health", "logic": { "type": "custom", - "expr": "\n# PyJHora BVR-11: (a) Lagna lord in Lagna joined by dusthana lord;\n# (b) weak Lagna lord joined by any kendra/trine lord.\nasc_lord = lord(1)\ndusthana_lords = [lord(h) for h in [6, 8, 12]]\nquad_trine_lords = [lord(h) for h in [1, 4, 5, 7, 9, 10]]\nif asc_lord not in ctx.planets:\n False\nelse:\n condition_a = house_of(asc_lord) == 1 and any(dl in ctx.planets and same_house(asc_lord, dl) for dl in dusthana_lords)\n weak_by_sign = not (exalted(asc_lord) or own(asc_lord) or moola(asc_lord))\n condition_b = weak_by_sign and any(qtl in ctx.planets and same_house(asc_lord, qtl) for qtl in quad_trine_lords)\n condition_a or condition_b\n", + "expr": "\n# PyJHora BVR-11: (a) Lagna lord in Lagna joined by dusthana lord;\n# (b) Lagna lord has house strength <= neutral. PyJHora's quad/trine lord\n# conjunction check includes the Lagna lord itself, so weak LL alone satisfies condition_b.\nasc_lord = lord(1)\ndusthana_lords = [lord(h) for h in [6, 8, 12]]\nif asc_lord not in ctx.planets:\n False\nelse:\n condition_a = house_of(asc_lord) == 1 and any(dl in ctx.planets and same_house(asc_lord, dl) for dl in dusthana_lords)\n condition_b = weak(asc_lord)\n condition_a or condition_b\n", "combo_template": "上升主在Lagna合凶宫主,或弱上升主合角/三方主" }, "effects": [ @@ -9236,7 +9236,7 @@ "category": "dhana", "logic": { "type": "custom", - "expr": "\n# PyJHora/BVR-132 D1-safe portion: 2nd lord in Kendra/Trine from Lagna lord,\n# or 2nd lord as benefic in exaltation / joined with an exalted planet.\nasc_lord = lord(1)\nlord_2 = lord(2)\nif asc_lord not in ctx.planets or lord_2 not in ctx.planets:\n False\nelse:\n rel_good = offset(house_of(asc_lord), house_of(lord_2)) in [0, 3, 4, 6, 8, 9]\n lord2_benefic = lord_2 in BENEFICS\n with_exalted = any(p != lord_2 and same_house(p, lord_2) and exalted(p) for p in ctx.planets)\n rel_good or (lord2_benefic and (exalted(lord_2) or with_exalted))\n", + "expr": "\n# PyJHora/BVR-132 D1/D9-safe portions: 2nd lord in Kendra/Trine from Lagna lord;\n# or 2nd lord as benefic in exaltation / joined with an exalted planet;\n# or Navamsa-dispositor chain strength >= friend and related to 2nd lord.\nasc_lord = lord(1)\nlord_2 = lord(2)\nif asc_lord not in ctx.planets or lord_2 not in ctx.planets:\n False\nelse:\n l1h = house_of(asc_lord)\n l2h = house_of(lord_2)\n rel_good = offset(l1h, l2h) in [0, 3, 4, 6, 8, 9]\n lord2_benefic = lord_2 in BENEFICS\n with_exalted = any(p != lord_2 and same_house(p, lord_2) and exalted(p) for p in ctx.planets)\n nav_lord = navamsa_dispositor(asc_lord)\n final_disp = SIGN_LORDS.get(sign_of(nav_lord)) if nav_lord in ctx.planets else None\n chain_good = bool(final_disp in ctx.planets and house_strength(final_disp) is not None and house_strength(final_disp) >= 3 and (offset(l2h, house_of(final_disp)) in [0, 3, 4, 6, 8, 9] or house_strength(final_disp) >= 4))\n rel_good or (lord2_benefic and (exalted(lord_2) or with_exalted)) or chain_good\n", "combo_template": "2宫主与上升主成Kendra/Trine关系或2宫主吉且强" }, "effects": [ @@ -9343,7 +9343,7 @@ "category": "putra", "logic": { "type": "custom", - "expr": "\n# PyJHora/BVR 220-221 Bahu Puthra Yoga.\n# 220: Rahu in 5th and Rahu is not in Saturn navamsa.\ny220 = house_of('Rahu') == 5 and d9_sign_of('Rahu') not in {'Capricorn', 'Aquarius'}\n# 221: lord of Navamsa occupied by a planet associated with 7th lord is in 1st/2nd/5th in Rasi.\nl7 = lord(7)\ny221 = False\nif l7 in ctx.planets:\n associated_planets = [p for p in ctx.planets if p != l7 and associated(p, l7)]\n for p in associated_planets:\n disp = navamsa_dispositor(p)\n if disp in ctx.planets and house_of(disp) in [1, 2, 5]:\n y221 = True\n break\ny220 or y221\n", + "expr": "\n# PyJHora/BVR 220-221 Bahu Puthra Yoga.\n# 220: Rahu in 5th and Rahu is not in Saturn navamsa.\ny220 = house_of('Rahu') == 5 and d9_sign_of('Rahu') not in {'Capricorn', 'Aquarius'}\n# 221: lord of the Navamsa occupied by the 7th lord is in 1st/2nd/5th in Rasi.\nl7 = lord(7)\ny221 = False\nif l7 in ctx.planets:\n disp = navamsa_dispositor(l7)\n y221 = disp in ctx.planets and house_of(disp) in [1, 2, 5]\ny220 or y221\n", "combo_template": "Rahu在5且非土星Navamsa,或7宫主关联行星的Navamsa主落1/2/5" }, "effects": [ @@ -13775,7 +13775,7 @@ "category": "auspicious", "logic": { "type": "custom", - "expr": "\n# PyJHora kaahala_yoga: 4th lord and Jupiter in mutual quadrants; Lagna lord strong.\nl1 = lord(1)\nl4 = lord(4)\nif l1 not in ctx.planets or l4 not in ctx.planets or 'Jupiter' not in ctx.planets:\n False\nelse:\n l1_strong = strong(l1)\n mutual_kendra = offset(house_of(l4), house_of('Jupiter')) in [0, 3, 6, 9]\n l1_strong and mutual_kendra\n", + "expr": "\n# PyJHora kaahala_yoga: 4th lord and Jupiter in mutual quadrants.\n# Note: PyJHora calls is_planet_strong(lagna_lord, asc_house, include_neutral=True);\n# for a Lagna lord in its own ascendant sign this is always >= neutral, so the\n# effective D1 comparison condition is the mutual-kendra relationship.\nl4 = lord(4)\nif l4 not in ctx.planets or 'Jupiter' not in ctx.planets:\n False\nelse:\n offset(house_of(l4), house_of('Jupiter')) in [0, 3, 6, 9]\n", "combo_template": "4宫主与木星互为Kendra,且上升主有力" }, "effects": [ diff --git a/scripts/validate_logic_v2.py b/scripts/validate_logic_v2.py index 869e1eb3..a8bffa94 100644 --- a/scripts/validate_logic_v2.py +++ b/scripts/validate_logic_v2.py @@ -231,12 +231,15 @@ def canonical_rule_id(rule_id, valid_rule_ids): def main(): - # 1. 加载位置数据 - with open('references/planet_positions_60.json') as f: + # 1. 加载位置数据。固定使用 skill 内部 references,避免从其他 cwd 运行时读写错目录。 + planet_positions_path = os.path.join(SKILL_DIR, 'references', 'planet_positions_60.json') + standard_charts_path = os.path.join(SKILL_DIR, 'references', 'standard_test_charts.json') + report_path = os.path.join(SKILL_DIR, 'references', 'validation_logic_report.json') + with open(planet_positions_path) as f: pos_data = json.load(f) # 2. 加载 PyJhora Yoga 结果 - with open('references/standard_test_charts.json') as f: + with open(standard_charts_path) as f: pyj_data = json.load(f) # 构建 name -> pyjhora yoga list 映射 @@ -401,9 +404,9 @@ def main(): "false_positives": fp_details, "false_negatives": fn_details, } - with open('references/validation_logic_report.json', 'w') as f: + with open(report_path, 'w') as f: json.dump(report, f, indent=2, ensure_ascii=False) - print("详细报告已保存至: references/validation_logic_report.json") + print(f"详细报告已保存至: {report_path}") if __name__ == "__main__": diff --git a/scripts/yoga_engine.py b/scripts/yoga_engine.py index f04087ae..59f7a74d 100644 --- a/scripts/yoga_engine.py +++ b/scripts/yoga_engine.py @@ -46,6 +46,20 @@ BENEFICS = ['Jupiter', 'Venus', 'Mercury', 'Moon'] MALEFICS = ['Mars', 'Saturn', 'Sun', 'Rahu', 'Ketu'] MOVABLE_SIGNS = ['Aries', 'Cancer', 'Libra', 'Capricorn'] ALL_PLANETS = ['Sun', 'Moon', 'Mars', 'Mercury', 'Jupiter', 'Venus', 'Saturn', 'Rahu', 'Ketu'] +PLANET_INDEX = {planet: idx for idx, planet in enumerate(ALL_PLANETS)} +# PyJHora const.house_strengths_of_planets, copied to make Yoga rule alignment deterministic. +# Strength scale: 5 own/lord, 4 exalted, 3 friend, 2 neutral, 1 enemy, 0 debilitated. +HOUSE_STRENGTHS = { + 'Sun': [4, 1, 2, 2, 5, 2, 0, 3, 3, 1, 1, 3], + 'Moon': [2, 4, 3, 5, 3, 3, 2, 0, 2, 2, 2, 2], + 'Mars': [5, 2, 1, 0, 3, 1, 2, 5, 3, 4, 2, 3], + 'Mercury': [2, 3, 5, 1, 3, 5, 3, 2, 2, 2, 2, 0], + 'Jupiter': [3, 1, 1, 4, 3, 3, 1, 3, 5, 0, 2, 5], + 'Venus': [2, 5, 3, 1, 1, 0, 5, 2, 3, 3, 3, 4], + 'Saturn': [0, 3, 3, 1, 1, 3, 4, 1, 2, 5, 5, 2], + 'Rahu': [1, 4, 4, 1, 1, 3, 3, 0, 0, 3, 1, 3], + 'Ketu': [1, 0, 0, 1, 1, 3, 3, 4, 4, 3, 1, 3], +} def _get_dignity_level(planet: str, sign: str) -> str: @@ -948,11 +962,25 @@ class YogaEngine: return False return h == ctx.house_of(p) or offset(ctx.house_of(p), h) in (6, 3 if p == 'Mars' else -1, 7 if p == 'Mars' else -1, 4 if p == 'Jupiter' else -1, 8 if p == 'Jupiter' else -1, 2 if p == 'Saturn' else -1, 9 if p == 'Saturn' else -1) - def strong(p): - if p not in ctx.planets: + def sign_index_of_planet(p): + sign_name = ctx.sign_of(p) + return SIGNS.index(sign_name) if sign_name in SIGNS else None + + def house_strength(p): + sign_idx = sign_index_of_planet(p) + if sign_idx is None or p not in HOUSE_STRENGTHS: + return None + return HOUSE_STRENGTHS[p][sign_idx] + + def strong(p, include_neutral=False): + strength = house_strength(p) + if strength is None: return False - h = ctx.house_of(p) - return bool(exalted(p) or own(p) or moola(p) or kendra(h) or trikona(h)) + return strength >= (2 if include_neutral else 3) + + def weak(p): + strength = house_strength(p) + return strength is not None and strength <= 2 def associated(a, b): return a in ctx.planets and b in ctx.planets and (same_house(a, b) or aspect(a, b) or aspect(b, a)) @@ -1035,6 +1063,7 @@ class YogaEngine: "SIGNS": SIGNS, "SIGN_LORDS": SIGN_LORDS, "EXALTATION": EXALTATION, "DEBILITATION": DEBILITATION, "PLANET_CN": PLANET_CN, "BENEFICS": BENEFICS, "MALEFICS": MALEFICS, + "PLANET_INDEX": PLANET_INDEX, "HOUSE_STRENGTHS": HOUSE_STRENGTHS, "MOVABLE_SIGNS": MOVABLE_SIGNS, "ALL_PLANETS": ALL_PLANETS, "MOOLATRIKONA_SIGN": MOOLATRIKONA_SIGN, # 基础查询 @@ -1057,7 +1086,8 @@ class YogaEngine: "offset": offset, # v6.0.32: 同宫与相位检查(custom规则常用) "same_house": same_house, "aspect": aspect, "aspects_house": aspects_house, - "strong": strong, "associated": associated, "temporal_friend": temporal_friend, + "house_strength": house_strength, "strong": strong, "weak": weak, + "associated": associated, "temporal_friend": temporal_friend, "occupants": occupants, "only_benefics_in_house": only_benefics_in_house, "only_malefics_in_house": only_malefics_in_house, "house_has_benefic": house_has_benefic, "house_has_malefic": house_has_malefic, @@ -1378,15 +1408,16 @@ class YogaEngine: return success() if d9_asc and SIGN_LORDS.get(d9_asc) in dry_lords else [] if ctype == "lagna_lord_and_navamsa_lord_both_in_watery_signs": l1 = house_lord(1) - d9_lagna_lord = SIGN_LORDS.get(ctx.d9.get("ascendant")) + navamsa_lord = ctx.navamsa_dispositor(l1) if l1 else None watery = {"Cancer", "Scorpio", "Pisces"} - return success() if l1 and d9_lagna_lord and ctx.sign_of(l1) in watery and ctx.sign_of(d9_lagna_lord) in watery else [] + return success() if l1 and navamsa_lord and ctx.sign_of(l1) in watery and ctx.sign_of(navamsa_lord) in watery else [] if ctype == "jupiter_in_lagna_or_aspects_lagna_from_watery": return success() if "Jupiter" in ctx.planets and (ctx.house_of("Jupiter") == 1 or (ctx.sign_of("Jupiter") in {"Cancer", "Scorpio", "Pisces"} and aspects("Jupiter", 1))) else [] if ctype == "lagna_watery_with_benefics_or_lagna_lord_watery": l1 = house_lord(1) asc_watery = ctx.ascendant in {"Cancer", "Scorpio", "Pisces"} - return success() if (asc_watery and any(ctx.house_of(b) == 1 for b in BENEFICS if b in ctx.planets)) or (l1 and ctx.sign_of(l1) in {"Cancer", "Scorpio", "Pisces"}) else [] + watery_planets = {"Moon", "Venus"} + return success() if (asc_watery and any(ctx.house_of(b) == 1 for b in BENEFICS if b in ctx.planets)) or (l1 in watery_planets) else [] if ctype == "jupiter_in_lagna_mars_in_7th": return success() if ctx.house_of("Jupiter") == 1 and ctx.house_of("Mars") == 7 else [] if ctype == "saturn_in_lagna_mars_in_5_7_9":