code: def get_dialect(self):
          
  
          parameters = {}
  
          for parameter in self.csv_params[2:]:
              pname, ptype, plabel, phelp = parameter
  
              widget = self._widget_from_p(pname, ptype)
  
              if ptype is types.StringType or ptype is types.UnicodeType:
                  parameters[pname] = str(widget.GetValue())
              elif ptype is types.BooleanType:
                  parameters[pname] = widget.GetValue()
              elif pname == 'quoting':
                  choice = self.choices['quoting'][widget.GetSelection()]
                  parameters[pname] = getattr(csv, choice)
              else:
                  raise TypeError(_("{type} unknown.").format(type=ptype))
  
          has_header = parameters.pop("self.has_header")
  
          try:
              csv.register_dialect('user', **parameters)
  
          except TypeError, err:
              msg = _("The dialect is invalid. \n "
                      "\nError message:\n{msg}").format(msg=err)
              dlg = wx.MessageDialog(self.parent, msg, style=wx.ID_CANCEL)
              dlg.ShowModal()
              dlg.Destroy()
              raise TypeError(err)
  
          return csv.get_dialect('user'), has_header
docs: Returns a new dialect that implements the current selection