CtrlK
CommunityDocumentationLog inGet started
Tessl Logo

tessl/pypi-lunar-python

tessl install tessl/pypi-lunar-python@1.4.0

Comprehensive Chinese lunar calendar library with Solar calendar conversion and traditional Chinese calendar features.

Agent Success

Agent success rate when using this tile

79%

Improvement

Agent success rate improvement when using this tile compared to baseline

0.9x

Baseline

Agent success rate without this tile

88%

task.mdevals/scenario-4/

Fate Cycle Timeline Builder

Create a concise fate-cycle timeline from birth information, emphasizing start offsets, direction, and nested cycle breakdowns that rely on the package's fate-cycle capability.

Capabilities

Compute start offset and direction

  • Male born 1988-02-15 23:30 with sect 1 yields the start date and starting age exactly as the fate-cycle calculation returns for that input, and the direction is forward. @test
  • Switching to sect 2 for the same birth data adjusts the start age/year to the alternate calculation while keeping the direction unchanged. @test

Generate major cycles

  • For the male 1988-02-15 23:30 input (sect 1), produce the first three 10-year cycles as contiguous ranges anchored on the computed start date, with stem-branch labels exactly matching the fate-cycle output. @test

Expand yearly cycles

  • For female 1983-02-15 20:00 (sect 1) with annual_span=8, expand the first major cycle into yearly entries covering the first eight years after the start age, keeping ages and stem-branch labels identical to the fortune-cycle calculation. @test

Expand monthly cycles

  • For the first yearly entry of the same 1983-02-15 20:00 scenario, list all 12 months with Chinese month names, stem-branch labels, xun, and xun-kong values exactly as the monthly fate-cycle computation provides. @test

Implementation

@generates

API

from typing import Dict, List, Any

def build_fate_timeline(birth_solar: str, gender: int, sect: int = 1, annual_span: int = 10) -> Dict[str, Any]:
    """
    Build a fate-cycle timeline from a Solar birth datetime.
    birth_solar: ISO string "YYYY-MM-DD HH:MM", interpreted in local time.
    gender: 1 for male, 0 for female.
    sect: calculation method (1 or 2) affecting the start offset.
    annual_span: number of years from the start of the first major cycle to include in yearly expansion.
    Returns a dict:
      start: {"year": int, "age": int, "forward": bool, "date": str}
      da_yun: List[{"index": int, "start_year": int, "end_year": int, "start_age": int, "end_age": int, "gan_zhi": str}]
      liu_nian: List[{"year": int, "age": int, "gan_zhi": str}]
      liu_yue: List[{"index": int, "month_cn": str, "gan_zhi": str, "xun": str, "xun_kong": str}]
    """

Dependencies { .dependencies }

lunar_python { .dependency }

Use the package's fate-cycle computation for start offsets and nested timelines.

@satisfied-by

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/lunar-python@1.4.x
tile.json