docs: def export(self, exports=None):
          """
          Export all the outputs in the datastore in the given export formats.
          Individual outputs are not exported if there are multiple realizations.
          """
          self.exported = getattr(self.precalc, 'exported', {})
          if isinstance(exports, tuple):
              fmts = exports
          elif exports:  # is a string
              fmts = exports.split(',')
          elif isinstance(self.oqparam.exports, tuple):
              fmts = self.oqparam.exports
          else:  # is a string
              fmts = self.oqparam.exports.split(',')
          keys = set(self.datastore)
          has_hcurves = ('hcurves-stats' in self.datastore or
                         'hcurves-rlzs' in self.datastore)
          if has_hcurves:
              keys.add('hcurves')
          for fmt in fmts:
              if not fmt:
                  continue
              for key in sorted(keys):  # top level keys
                  if 'rlzs' in key and self.R > 1:
                      continue  # skip individual curves
                  self._export((key, fmt))
              if has_hcurves and self.oqparam.hazard_maps:
                  self._export(('hmaps', fmt))
              if has_hcurves and self.oqparam.uniform_hazard_spectra:
                  self._export(('uhs', fmt))