code: def obs(self, with_values=True, with_attributes=True, reverse_obs=False):
          '''
          return an iterator over observations in a series.
          An observation is represented as a namedtuple with 3 fields ('key', 'value', 'attrib').
          obs.key is a namedtuple of dimensions, obs.value is a string value and
          obs.attrib is a namedtuple of attributes. If with_values or with_attributes
          is False, the respective value is None. Use these flags to
          increase performance. The flags default to True.
          '''
          return self._reader.iter_generic_series_obs(self,
                                                      with_values, with_attributes, reverse_obsf obs(self, with_values=True, with_attributes=True, reverse_obs=False):
          '''
          return an iterator over observations in a series.
          An observation is represented as a namedtuple with 3 fields ('key', 'value', 'attrib').
          obs.key is a namedtuple of dimensions, obs.value is a string value and
          obs.attrib is a namedtuple of attributes. If with_values or with_attributes
          is False, the respective value is None. Use these flags to
          increase performance. The flags default to True.
          '''
          return self._reader.iter_generic_series_obs(self,
                                                      with_values, with_attributes, reverse_obs)
docs: return an iterator over observations in a series.
          An observation is represented as a namedtuple with 3 fields ('key', 'value', 'attrib').
          obs.key is a namedtuple of dimensions, obs.value is a string value and
          obs.attrib is a namedtuple of attributes. If with_values or with_attributes
          is False, the respective value is None. Use these flags to
          increase performance. The flags default to True.