docs: def from_epw_file(cls, epwfile, timestep=1):
          """Create a wea object using the solar irradiance values in an epw file.
  
          Args:
              epwfile: Full path to epw weather file.
              timestep: An optional integer to set the number of time steps per hour.
                  Default is 1 for one value per hour. Note that this input
                  will only do a linear interpolation over the data in the EPW
                  file.  While such linear interpolations are suitable for most
                  thermal simulations, where thermal lag "smooths over" the effect
                  of momentary increases in solar energy, it is not recommended
                  for daylight simulations, where momentary increases in solar
                  energy can mean the difference between glare and visual comfort.
          """
          is_leap_year = False  # epw file is always for 8760 hours
  
          epw = EPW(epwfile)
          direct_normal, diffuse_horizontal = \
              cls._get_data_collections(epw.direct_normal_radiation.values,
                                        epw.diffuse_horizontal_radiation.values,
                                        epw.metadata, 1, is_leap_year)
          if timestep != 1:
              print ("Note: timesteps greater than 1 on epw-generated Wea's \n" +
                     "are suitable for thermal models but are not recommended \n" +
                     "for daylight models.")
              # interpolate the data
              direct_normal = direct_normal.interpolate_to_timestep(timestep)
              diffuse_horizontal = diffuse_horizontal.interpolate_to_timestep(timestep)
              # create sunpath to check if the sun is up at a given timestep
              sp = Sunpath.from_location(epw.location)
              # add correct values to the emply data collection
              for i, dt in enumerate(cls._get_datetimes(timestep, is_leap_year)):
                  # set irradiance values to 0 when the sun is not up
                  sun = sp.calculate_sun_from_date_time(dt)
                  if sun.altitude < 0:
                      direct_normal[i] = 0
                      diffuse_horizontal[i] = 0
  
          return cls(epw.location, direct_normal, diffuse_horizontal,
                     timestep, is_leap_year)