def is_asur_bemelaha(dt_: dt, lat: float, lng: float, elevation: float) -> BooleanResp: # todo add tzeis option tz = get_tz(lat, lng) is_israel = not is_diaspora(tz) location = GeoLocation('', lat, lng, tz, elevation) calendar = ZmanimCalendar(geo_location=location, date=dt_.date()) dt_ = dt_.astimezone(pytz.timezone(tz)) resp = calendar.is_assur_bemelacha(current_time=dt_, in_israel=is_israel) return BooleanResp(result=resp)
def test_assur_bemelacha_on_first_of_two_issur_melacha_days_in_israel(self): date = '2018-05-19' # Shabbos before Shavuos calendar = ZmanimCalendar(geo_location=test_helper.lakewood(), date=parser.parse(date)) self.assertTrue(calendar.is_assur_bemelacha(calendar.tzais() - timedelta(seconds=2), in_israel=True)) self.assertTrue(calendar.is_assur_bemelacha(calendar.tzais() + timedelta(seconds=2), in_israel=True))
def test_assur_bemelacha_on_first_of_single_issur_melacha_in_israel(self): date = '2018-03-31' # first day of pesach calendar = ZmanimCalendar(geo_location=test_helper.lakewood(), date=parser.parse(date)) self.assertTrue(calendar.is_assur_bemelacha(calendar.tzais() - timedelta(seconds=2), in_israel=True)) self.assertFalse(calendar.is_assur_bemelacha(calendar.tzais() + timedelta(seconds=2), in_israel=True))
def test_assur_bemelacha_on_first_of_two_issur_melacha_days(self): date = '2018-03-31' # first day of pesach calendar = ZmanimCalendar(geo_location=test_helper.lakewood(), date=parser.parse(date)) self.assertTrue(calendar.is_assur_bemelacha(calendar.shkia() - timedelta(seconds=2))) self.assertTrue(calendar.is_assur_bemelacha(calendar.tzais() - timedelta(seconds=2))) self.assertTrue(calendar.is_assur_bemelacha(calendar.tzais() + timedelta(seconds=2)))
def test_assur_bemelacha_prior_to_issur_melacha_day(self): date = '2017-10-20' calendar = ZmanimCalendar(geo_location=test_helper.lakewood(), date=parser.parse(date)) self.assertFalse(calendar.is_assur_bemelacha(calendar.shkia() - timedelta(seconds=2))) self.assertTrue(calendar.is_assur_bemelacha(calendar.tzais() - timedelta(seconds=2))) self.assertTrue(calendar.is_assur_bemelacha(calendar.tzais() + timedelta(seconds=2)))
def test_assur_bemelacha_for_issur_melacha_day_with_custom_tzais_rule(self): date = '2017-10-21' calendar = ZmanimCalendar(geo_location=test_helper.lakewood(), date=parser.parse(date)) tzais = calendar.tzais({'degrees': 11.5}) self.assertTrue(calendar.is_assur_bemelacha(tzais - timedelta(seconds=2), {'degrees': 11.5})) self.assertFalse(calendar.is_assur_bemelacha(tzais + timedelta(seconds=2), {'degrees': 11.5}))
def update(self): now = dt.now().astimezone(get_time_zone(self.tz)) calendar = ZmanimCalendar(geo_location=self.location, date=now.date()) resp = calendar.is_assur_bemelacha(now, in_israel=self.is_israel) self.current_state = resp