def __init__(self, st_month=<NUM_LIT:1>, st_day=<NUM_LIT:1>, st_hour=<NUM_LIT:0>, end_month=<NUM_LIT:12>,<EOL>end_day=<NUM_LIT>, end_hour=<NUM_LIT>, timestep=<NUM_LIT:1>, is_leap_year=False):
st_month = st_month or <NUM_LIT:1><EOL>st_day = st_day or <NUM_LIT:1><EOL>st_hour = st_hour or <NUM_LIT:0><EOL>end_month = end_month or <NUM_LIT:12><EOL>end_day = end_day or <NUM_LIT><EOL>end_hour = <NUM_LIT> if end_hour is None else end_hour<EOL>timestep = timestep or <NUM_LIT:1><EOL>self._is_leap_year = is_leap_year or False<EOL>self._st_time = DateTime(int(st_month), int(st_day), int(st_hour),<EOL>leap_year=is_leap_year)<EOL>self._num_of_days_each_month = self.NUMOFDAYSEACHMONTH if not self.is_leap_yearelse self.NUMOFDAYSEACHMONTHLEAP<EOL>if int(end_day) > self._num_of_days_each_month[int(end_month) - <NUM_LIT:1>]:<EOL><INDENT>end = self._num_of_days_each_month[end_month - <NUM_LIT:1>]<EOL>print("<STR_LIT>".format(end_day, end))<EOL>end_day = end<EOL><DEDENT>self._end_time = DateTime(int(end_month), int(end_day), int(end_hour),<EOL>leap_year=is_leap_year)<EOL>if self.st_time.hour <= self.end_time.hour:<EOL><INDENT>self._is_overnight = False  <EOL><DEDENT>else:<EOL><INDENT>self._is_overnight = True<EOL><DEDENT>if self.st_time.hoy > self.end_time.hoy:<EOL><INDENT>self._is_reversed = True<EOL><DEDENT>else:<EOL><INDENT>self._is_reversed = False<EOL><DEDENT>if timestep not in self.VALIDTIMESTEPS:<EOL><INDENT>raise ValueError("<STR_LIT>"<EOL>"<STR_LIT>" % str(self.VALIDTIMESTEPS.keys()))<EOL><DEDENT>self._timestep = timestep<EOL>self._minute_intervals = timedelta(<NUM_LIT:1> / (<NUM_LIT> * self.timestep))<EOL>self._timestamps_data = None<EOL>
Init an analysis period.

        A continuous analysis period between two days of the year between certain hours

        Args:
            st_month: An integer between 1-12 for starting month (default = 1)
            st_day: An integer between 1-31 for starting day (default = 1).
                    Note that some months are shorter than 31 days.
            st_hour: An integer between 0-23 for starting hour (default = 0)
            end_month: An integer between 1-12 for ending month (default = 12)
            end_day: An integer between 1-31 for ending day (default = 31)
                    Note that some months are shorter than 31 days.
            end_hour: An integer between 0-23 for ending hour (default = 23)
            timestep: An integer number from 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60
            is_leap_year: A boolean to note whether the Analysis Period
                represents a leap year.