docs: def write(self, config_dir=None, config_name=None, codec=None):
          """
          writes config to config_dir using config_name
          """
          # get name of config directory
          if not config_dir:
              config_dir = self._meta_config_dir
              if not config_dir:
                  raise IOError("config_dir not set")
  
          # get name of config file
          if not config_name:
              config_name = self._defaults.get('config_name', None)
          if not config_name:
              raise KeyError('config_name not set')
  
          if codec:
              codec = munge.get_codec(codec)()
          else:
              codec = munge.get_codec(self._defaults['codec'])()
  
          config_dir = os.path.expanduser(config_dir)
          if not os.path.exists(config_dir):
              os.mkdir(config_dir)
  
          codec.dumpu(self.data, os.path.join(config_dir, 'config.' + codec.extension))