docs: def _fetch_data(self, dataset, query={}, include_inactive_stations=False):
          """ Should yield dataset rows
          """
          data = []
          parameter = dataset
          station_dim = dataset.dimensions["station"]
          all_stations = station_dim.allowed_values
          # Step 1: Prepare query
          if "station" not in query:
              if include_inactive_stations:
                  # Get all stations
                  query["station"] = list(all_stations)
              else:
                  # Get only active stations
                  query["station"] = list(station_dim.active_stations())
          else:
              if not isinstance(query["station"], list):
                  query["station"] = [query["station"]]
              # Make sure that the queried stations actually exist
              query["station"] = [ all_stations.get_by_label(x) for x in query["station"]]
  
          if "period" not in query:
              # TODO: I'd prepare to do dataset.get("period").allowed_values here
              query["period"] = PERIODS
  
          elif not isinstance(query["period"], list):
              query["period"] = [query["period"]]
  
          for period in query["period"]:
              if period not in PERIODS:
                  msg = u"{} is not an allowed period".format(period)
                  raise Exception(msg)
  
  
          # Step 3: Get data
          n_queries = len(query["station"]) * len(query["period"])
          counter = 0
          print("Fetching data with {} queries.".format(n_queries))
          for station in query["station"]:
              for period in query["period"]:
                  url = dataset.url\
                      .replace(".json", "/station/{}/period/{}/data.csv"\
                          .format(station.key, period))
                  print("/GET {} ".format(url))
                  r = requests.get(url)
  
                  if r.status_code == 200:
                      raw_data = DataCsv().from_string(r.content).to_dictlist()
  
                      # TODO: This is a very hard coded parse function
                      # Expects fixed start row and number of cols
                      for row in raw_data:
                          #timepoint = datetime.strptime(timepoint_str, "%Y-%m-%d %H:%M:%S")
                          value_col = parameter.id.split(",")[0]
                          value = float(row[value_col])
  
                          row["parameter"] = parameter.id
                          row["station"] = station.label
                          row["station_key"] = station.key
                          row["period"] = period
  
                          row.pop(value_col,None)
  
                          datapoint = Result(value, row)
  
                          yield datapoint
  
                  elif r.status_code == 404:
                      print("Warning no data at {}".format(url))
                  else:
                      raise Exception("Connection error for {}".format(url))