Python Zmanim library
This project is a port from Eliyahu Hershfeld's KosherJava project, with some Python niceties and other minor modifications.
Some common examples include...
# Initialize a new ZmanimCalendar object, defaults to using today's date in GMT, located at Greenwich, Englandfromzmanim.zmanim_calendarimportZmanimCalendarcalendar=ZmanimCalendar()
calendar#=> zmanim.zmanim_calendar.ZmanimCalendar(candle_lighting_offset=18, geo_location=zmanim.util.geo_location.GeoLocation(name='Greenwich, England', latitude=51.4772, longitude=0.0, time_zone=tzfile('/usr/share/zoneinfo/GMT'), elevation=0.0), date=datetime.datetime(2018, 8, 26, 11, 40, 29, 334774), calculator=<zmanim.util.noaa_calculator.NOAACalculator object at 0x10bbf7710>)# Calculate the sunset for today at that locationcalendar.sunset()
#=> datetime.datetime(2018, 8, 26, 18, 58, 40, 796469, tzinfo=tzfile('/usr/share/zoneinfo/GMT')) # Prepare a new locationfromzmanim.util.geo_locationimportGeoLocationlocation=GeoLocation('Lakewood, NJ', 40.0721087, -74.2400243, 'America/New_York', elevation=15)
location#=> zmanim.util.geo_location.GeoLocation(name='Lakewood, NJ', latitude=40.0721087, longitude=-74.2400243, time_zone=tzfile('/usr/share/zoneinfo/America/New_York'), elevation=15.0) # Initialize a new ZmanimCalendar object, passing a specific location and datefromdatetimeimportdatecalendar=ZmanimCalendar(geo_location=location, date=date(2017, 12, 15))
calendar#=> zmanim.zmanim_calendar.ZmanimCalendar(candle_lighting_offset=18, geo_location=zmanim.util.geo_location.GeoLocation(name='Lakewood, NJ', latitude=40.0721087, longitude=-74.2400243, time_zone=tzfile('/usr/share/zoneinfo/America/New_York'), elevation=15.0), date=datetime.date(2017, 12, 15), calculator=<zmanim.util.noaa_calculator.NOAACalculator object at 0x10bbf7828>)# Calculate Sof Zman Krias Shma for that location/date per the opinion of GR"Acalendar.sof_zman_shma_gra()
#=> datetime.datetime(2017, 12, 15, 9, 32, 9, 383390, tzinfo=tzfile('/usr/share/zoneinfo/America/New_York'))# Initialize a new JewishDate object with today's datefromzmanim.hebrew_calendar.jewish_dateimportJewishDatedate=JewishDate()
date#=> <zmanim.hebrew_calendar.jewish_date.JewishDate gregorian_date=datetime.date(2018, 8, 26), jewish_date=(5778, 6, 15), day_of_week=1, molad_hours=0, molad_minutes=0, molad_chalakim=0># Calculate the JewishDate from 25 days agodate-25#=> <zmanim.hebrew_calendar.jewish_date.JewishDate gregorian_date=datetime.date(2018, 8, 1), jewish_date=(5778, 5, 20), day_of_week=4, molad_hours=0, molad_minutes=0, molad_chalakim=0># Initialize a new JewishCalendar object for Pesach of this Jewish calendar yearfromzmanim.hebrew_calendar.jewish_calendarimportJewishCalendarpesach=JewishCalendar(date.jewish_year, 1, 15)
pesach#=> <zmanim.hebrew_calendar.jewish_calendar.JewishCalendar in_israel=False, gregorian_date=datetime.date(2018, 3, 31), jewish_date=(5778, 1, 15), day_of_week=7, molad_hours=0, molad_minutes=0, molad_chalakim=0>pesach.significant_day()
#=> 'pesach'pesach.is_yom_tov_assur_bemelacha()
#=> TrueThere is much more functionality included than demonstrated here. Feel free to experiment or read the source code to learn more!
Bug reports and pull requests are welcome on GitHub at https://github.com/pinnymz/python-zmanim. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.