SkillAgentSearch skills...

PyJHora

Python package containing almost all the features described in the book Vedic Astrology - An Integrated Approach - by PVR Narasimha Rao

Install / Use

/learn @naturalstupid/PyJHora
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

JHora 4.7.0

Python package containing almost all the features described in the book

Vedic Astrology - An Integrated Approach - by PVR Narasimha Rao Vedic Astrology - An Integrated Approach by PVR Narasimha Rao

and

the free astrology software Jagannatha Hora V8.0 software by the same author.

Jagannatha Hora V8.0 software

This python library was inspired by his book and software. Almost all the results have been verified against the examples and exercises provided in the book. Also the features that are outside of his book but in his JHora software were collected from various internet sources and have been verified closest to results obtained using JHora software.

There is a test module (jhora.tests.pvr_tests) containing about 6800 tests that can be run to verify the same. Please note the tests assume const._DEFAULT_AYANAMSA_MODE='LAHIRI'.

Having said that, if you find this package useful, all the credits go to Shri. P.V.R Narasimha Rao for such a wonderful book and the software and to the other internet sources.

Installation Requirements

This package is available in pypi.org

pip install PyJHora

IMPORTANT: From 3.6.6 onwards due to space limitations, the installation wheel/tar file will not contain the ephemeris data files. They should be copied from previous versions or directly from https://github.com/naturalstupid/pyjhora/src/jhora/data/ephe folder Copy all the files from that folder to package installation directory jhora/data/ephe

Requirements

Python interface to Swiss ephemeris and Qt.

	pip install pyswisseph	# OR apt-get install pyswisseph
	pip install pyqt6       # OR apt-get install pyqt6

There are other dependencies listed in the file requirements.txt should be installed using pip if not already available. There are four basic UI files namely: panchangam.py, vedic_calendar.py, horo_chart_tabs.py and match_ui.py. panchangam.py - provides a one page panchanga information. vedic_calendar.py provides calendar for current month. horo_chart_tabs.py- provides multi-tab/page panchanga, divisional charts and match_ui.py - provides marriage compatibility between boy and girl based on their birh stars.

Using the Code / command line

Run the file: jhora.ui.panchanga.py in your Eclipse IDE

Or

	from jhora.ui.panchangam import PanchangaWidget
	from jhora import utils
	import sys
	from _datetime import datetime
	from PyQt6.QtWidgets import QApplication
	def except_hook(cls, exception, traceback):
	    print('exception called')
	    sys.__excepthook__(cls, exception, traceback)
	sys.excepthook = except_hook
	App = QApplication(sys.argv)
   chart = PanchangaWidget()
   chart.language('Tamil')
   chart.compute_horoscope()
   chart.show()
   sys.exit(App.exec())

If you have installed PyQt6 installed you can have Tabbed UI with almost all features.

	from jhora.ui.horo_chart_tabs import ChartTabbed
    def except_hook(cls, exception, traceback):
        print('exception called')
        sys.__excepthook__(cls, exception, traceback)
    sys.excepthook = except_hook
    App = QApplication(sys.argv)
    chart = ChartTabbed()
    chart.language('Tamil')
    chart.compute_horoscope()
    chart.show()
    sys.exit(App.exec())

Using the GUI

Enter Name, and Place with country name (e.g. Chennai, IN) If you get an error, enter latitude, longitude and time zone manually. If you want to be precise, enter the lat/long of the exact place (e.g. hospital) You can use google to find the latitude, longitude, time zone of the place

Type the Date in YYY,MM,DD format in the 'Date' field. Negative value for YYYY are interpolated as proleptic Gregorian calendar (Before Christ BC).

Enter Time of birth, choose chart style, ayanamsa mode, language of display

Click Show Chart to display the birth (Raasi and Navamsam) charts (every time any imput is changed)

Click Show PDF to save the screen as a PDF file

Changes since 4.6.0

  • MAJOR CHANGES: RAHU AND KETU HAVE BEEN CHANGED TO "TRUE NODES" AND const._DEFAULT_AYANAMSA changed to TRUE_PUSHYA. With this Rahu/Ketu planet positions match with JHora software. But the unit tests were created with them to be "Mean Nodes". To pass them you have to change const.use_rahu_ketu_as_true_nodes to False. Similarly HINDU FLAGS added to drik.ascendant function - now ascendant and planets match in longitudes with JHora software (with TRUE_PUSHYA ayanamsa). Unit tests will be checked with these changes in a future version. They are still valid with LAHIRI and MEAN NODES.
  • Use drik.set_planet_list(set_rahu_ketu_as_true_nodes=False) to use Mean Modes and True to use True Nodes. From V4.7.0 onwards default will be True Nodes and default Ayanamsa will be TRUE_PUSHYA to match with JHora software.
  • Earlier versions planet longitudes and ascendant were not matching with JHora with same ayanamsa. This was fixed by using same ephemeris parameters for nutation, aberration, reflection etc. Also added 3 functions in utils module namely set_flags_for_planet_positions, set_flags_for_rise_set and set_flag_for_calendar that sets the default as in JHora software.
  • Some reported bugs have been fixed. Thanks to the users who reported them.
  • New implementation for jhora.horoscope.dhasa.graha drig and padhanadhamsa. Drig dhasa now matches with JHora software (but you have to set const.scorpio_owner_for_dhasa_calculations=const.KETU_ID and const.aquarius_owner_for_dhasa_calculations=const.RAHU_ID or whatever default in JHora software. Drig dasa offers 2 methods, 1. PVR (his drig dasa 2007 paper) (default) and 2. PVR per book. Similarly, Padhanadhamsa offers 3 methods: 1. Iranganti Rangacharya 2. Sanjay Rath and 3. PVR. Of these only PVR can be used for all varga charts while other two are restricted to navamsa.
  • Added 3 new methods to jhora.horoscope.chart.dhasa.raasi.chara 2 Male chart methods using Iranganti Rangacharya and Mind Sutra method.
  • All dhasas now support generating upto Dehaantara dhasa. New argument dhasa_level_index=const.MAHA_DHASA_DEPTH.ANTARA has been added to all dhasa functions. You can choose upto const.MAHA_DHASA_DEPTH.DEHA for all dhasa functions. Previous version argument include_antardhasa has been removed from all dhasa functions.
  • Added bhava chart/madhya options: KN Rao, Parashari/PVR, KP, Raman, Sripathi (PVR), Sripathi (Astrodienst) and other western systems (Placidus, Koch, Porphyrius, Regiomontanus, Campanus', Vehlow, axial rotation system, azimuthal or horizontal system, Polich/Page - topocentric system, Alcabitus and Morinus). Errors in Bhava Chart calculations fixed. Results match with JHora now.
  • Added strength.planet_aspect_relationship_table_pvr function to more or less match JHora's relationship table. There are are still minor differences though.
  • Added a few more functions in drik module: Improved next_conjunction_of_planet_pair, ardra_pravesha_date, next_planet_nakshathra_pravesha_date, ascendant_speed, next_planet_entry_date_general functions. NOTE: RAHU/KETU ENTRY DATES STILL DONT MATCH WITH JHORA VALUES ESPECIALLY FOR DIRECTION=-1 (PREVIOUS DATE). Also the _general function is still experimental and requires tweaking the increment_speed_factor (to .001 for Saturn/Lahiri).
  • Added tests for all newly added functions. Almost all of them close to JHora software values. Also added a jhora.tests.test_helper (using CoPilot's help). Using this helper - expected results are saved in JSON files for each test baseline you may want to create. I have created 2 baselines one for existing LAHIRI and one for TRUE_PUSHYA. Helper supports record mode to save actual/expected values, compare mode to test against baseline files and none mode to test against hard-coded expected results inside the pvr_tests module.
  • Added jhora.panchanga.eclipse module. Moved next_solar_eclipse_date and next_lunar_eclipse_date to the eclipse module. Now you can specify Local/Global or Eclipse Types (Total, Partial, Annular, Penumbral). Constants defined to add these such as SolarEclipseType.TOTAL, SolarEclipseType.ANY or LunarEclipseType.PENUMBRAL or EclipseLocation.LOCAL or EclipseLocation.GLOBAL. The functions can optionally return global location of maximum eclipse.
  • REMOVED PANDAS AS REQUIREMENT AND REPLACED IT WITH CSV TO AVOID MEMORY ISSUES.

Changes since 4.5.5

  • Some reported bugs have been fixed. Thanks to the users who reported them.
  • ayanamsa_mode argument has been removed as an argument from all functions. Use only drik.set_ayanamsa_mode(ayanamsa_mode) to set ayanamsa mode
  • 186 more yogas added from BV Raman's book. Total we have now support for 284 yogas. See jhora.horoscope.chart.yoga for details.
  • Some extra functions have been added to jhora.horoscope.chart.house. Example: are_planets_in_quadrants, get_planets_in_quadrants.
  • introduced 2 new constants in const namely const.force_saturn_as_owner_of_aquarius and force_mars_as_owner_of_scorpio. By default these are False. These can be used in house.stronger_planet_from_planet_positions and house.stronger_planet functions if required. Also removed Uranus/Neptune/Pluto from associations_of_the_planet.
  • Added constants for planets SUN_ID=0 to KETU_ID=8. Similarly constants for zodiacs and houses.
  • more functions added utils. Example: is_planet_in_moolatrikona, is_planet_in_exalation, is_planet_strong, is_planet_in_debilitation, is_planet_weak, remove_tropical_planets_from_chart, get_amsa_ruler_from_planet_longitude, is_cruel_shashtiamsa_ruler and is_soumya_shashtiamsa_ruler
  • Now we have about 7678 tests verifying the features of this software. Includes tests for each BV.Raman yoga added as well.

Changes since 4.5.

Related Skills

View on GitHub
GitHub Stars156
CategoryDevelopment
Updated3d ago
Forks87

Languages

Python

Security Score

95/100

Audited on Apr 4, 2026

No findings