Branch | Version | Status | Python |
---|---|---|---|
master |
|||
develop |
A high-precision Krishnamurti Paddhati (KP) astrology calculator with convenient UI and Excel export functionality.
This project implements a KP (Krishnamurti Paddhati) Astrology Dashboard that generates accurate horary charts with precise sub-lord divisions. The application was built to address limitations in existing KP astrology platforms that often have poor design, paywalls, or present data in difficult-to-read formats.
The dashboard provides detailed astrological calculations with high precision for personal use and calculations, specifically designed for serious practitioners who need reliable KP Nanchang data.
- Horary Chart Generation: Calculate precise horary charts based on horary numbers and exact ascendant timing
- Multiple Ayanamsa Support: Includes various ayanamsa options (Krishnamurti, Lahiri, Raman, Yukteshwar, etc.)
- Sub-Lord Calculations: High-precision sub-lord divisions based on KP astrology principles
- Vedic Horoscope Integration: Comprehensive Vedic astrological data integrated with KP system
- Excel Export: Clean data export to Excel for better readability and analysis
- Utility Functions: Conversion utilities for degrees, minutes, seconds, dates and time calculations
- Swiss Ephemeris Integration: Uses the Swiss Ephemeris for accurate planetary positions
- Automatic Updates: The application checks for updates on startup and can download and install new versions automatically
The application is built with Python and uses the following key components:
- Swiss Ephemeris (pyswisseph): For accurate planetary calculations
- Polars: For efficient data manipulation
- DateTime & DateUtil: For precise date-time handling
- Custom KP Sub-Lord Divisions: Preloaded from KP_SL_Divisions.csv for accurate subdivision calculations
# Clone the repository
git clone https://github.com/cryptekbits/KPAstroDashboard.git
cd KPAstroDashboard
# Install dependencies
pip install -r requirements.txt
# Run the application
python main.py
The application requires the following key dependencies:
- Python 3.13.2 or higher
- pyswisseph 2.10.3.2 or higher (Swiss Ephemeris library)
- PyQt5 5.15.0 or higher (GUI framework)
- polars-lts-cpu 1.23.0 or higher (Data processing)
- Other dependencies as listed in requirements.txt
The application can be built into standalone executables for Windows and macOS:
# Install dependencies
pip install -r requirements.txt
# Create a Windows executable
python build_win.py --clean
The Windows executable will be created in the dist
directory and copied to release_artifacts
.
# Install dependencies
pip install -r requirements.txt
# Create a macOS application bundle
python build_mac.py clean py2app
The macOS application bundle will be created in the dist
directory and copied to release_artifacts
.
Our build process follows these rules:
- Development builds: The
develop
branch is automatically built when changes are pushed to it, but no release is created. - Production builds: The
master
branch is only built when a tag is pushed (e.g.,v1.2.0
). - Releases: GitHub releases are automatically created when:
- A tag is pushed to the repository
- A manual build is triggered via GitHub Actions UI (except for develop branch)
To create a release:
# Tag the commit
git tag v1.2.0
# Push the tag
git push origin v1.2.0
This will trigger a build and automatically create a release with Windows and macOS executables.
To build a Windows executable using PyInstaller, follow these steps:
-
Install PyInstaller and all dependencies:
pip install -r requirements.txt pip install pyinstaller
-
Run the build script:
python tools/build_windows_exe.py
This will create a standalone executable in the
dist
directory. -
For a single-file executable, use the
--onefile
option:python tools/build_windows_exe.py --onefile
-
For debugging build issues, use the
--debug
option:python tools/build_windows_exe.py --debug
The executable will be created in the dist
directory with the name KPAstrologyDashboard-{VERSION}.exe
.
Windows executables are automatically built by GitHub Actions when a new release is created. The executable is included in the GitHub release assets.
To create a new release with the Windows executable:
-
Run the release creation script:
python tools/create_release.py
-
Follow the prompts to create a new release.
-
The GitHub Actions workflow will build the Windows executable and add it to the release.
from horary_chart import find_exact_ascendant_time
# Example: Generate a horary chart for the given parameters
year = 2024
month = 2
day = 5
horary_number = 34
latitude, longitude, utc = 11.020085773931049, 76.98319647719487, "+5:30" # Coimbatore
ayanamsa = "Krishnamurti"
# Get the exact time when ascendant matches the horary number's degree
matched_time, houses_chart, houses_data = find_exact_ascendant_time(
year, month, day, utc, latitude, longitude, horary_number, ayanamsa
)
# Display the houses data
print(houses_data)
- Basic horary chart calculation with precise sub-lord divisions
- Multiple ayanamsa support
- Excel export functionality
- Build into a deployable web app (Heroku/PythonAnywhere)
- Add dynamically updating Excel and webapp
- Calculate important aspects for user-defined timeframes
- Implement Kundli charting as per Lahiri ayanamsa
- Draw inferences of astrological data for financial markets
- Find correlations between planets, signs, houses, and Nakshatras with financial data
- Predict major market moves for commodities, currency, and equities based on correlations
- polars
- swisseph (pyswisseph)
- prettytable
- python-dateutil
- datetime
Contributions are welcome! Please feel free to submit a Pull Request.
- Thanks to Swiss Ephemeris for providing accurate astronomical data
- Thanks to the KP astrology community for documentation on sub-lord divisions
- Python 3.13.2 or higher
- PyQt5
- Required Python packages (see requirements.txt)
pip install -r requirements.txt
# Build for the current platform
python build.py --clean
# Build for all supported platforms (requires Docker)
python build.py --clean --all-platforms
When cross-compiling the application (especially on Apple Silicon Macs), you might encounter issues with certain dependencies:
- PyQt5 Installation: PyQt5 requires Qt libraries to be installed on the system.
- Native Extensions: Packages like
pyswisseph
require a C compiler and appropriate build tools. - Platform-specific Packages: Some packages like
polars
andnumpy
may have issues when cross-compiled.
-
Install Build Tools:
- Windows: Install Microsoft Visual C++ Build Tools
- macOS: Install Xcode Command Line Tools (
xcode-select --install
) - Linux: Install build-essential package (
apt install build-essential
)
-
Use Docker with Proper Dependencies:
python build.py --clean --target-platform windows --target-arch x64 --alt-win-image
-
Build on Native Platforms: For best results, build each platform's executable on that platform:
- Windows: Build on a Windows machine
- Linux: Build on a Linux machine
- macOS: Build on a Mac
Current Version: 1.3.0 (Ephemeris Handling & UX Improvements Release) Build Date: 2025-06-13
- GitHub Repository: https://github.com/cryptekbits/KPAstroDashboard
[License information here]
- Windows 10/11 or macOS 12+
- Python 3.13.2 or higher