def get_holidays_for_year(self, types=None):
<EOL>holidays_list = [<EOL>holiday for holiday in htables.HOLIDAYS if<EOL>(holiday.israel_diaspora == "<STR_LIT>") or<EOL>(holiday.israel_diaspora == "<STR_LIT>" and not self.diaspora) or<EOL>(holiday.israel_diaspora == "<STR_LIT>" and self.diaspora)]<EOL>if types:<EOL><INDENT>holidays_list = [<EOL>holiday for holiday in holidays_list if<EOL>holiday.type in types<EOL>]<EOL><DEDENT>holidays_list = [<EOL>holiday for holiday in holidays_list if<EOL>all(func(self) for func in holiday.date_functions_list)]<EOL>def holiday_dates_cross_product(holiday):<EOL><INDENT>"""<STR_LIT>"""<EOL>return product(*([x] if isinstance(x, int) else x<EOL>for x in holiday.date))<EOL><DEDENT>holidays_list = [<EOL>(holiday, HDate(<EOL>heb_date=HebrewDate(self.hdate.year, date_instance[<NUM_LIT:1>],<EOL>date_instance[<NUM_LIT:0>]),<EOL>diaspora=self.diaspora,<EOL>hebrew=self.hebrew))<EOL>for holiday in holidays_list<EOL>for date_instance in holiday_dates_cross_product(holiday)<EOL>if len(holiday.date) >= <NUM_LIT:2><EOL>]<EOL>return holidays_list<EOL>
Get all the actual holiday days for a given HDate's year.

        If specified, use the list of types to limit the holidays returned.