code: def create(self,*fields,**kw):
          
          mode = kw.get("mode",None)
          if self._table_exists():
              if mode == "override":
                  self.cursor.execute("DROP TABLE %s" %self.name)
              elif mode == "open":
                  return self.open()
              else:
                  raise IOError,"Base %s already exists" %self.name
          self.fields = [ f[0] for f in fields ]
          self.all_fields = ["__id__","__version__"]+self.fields
          _types = ["INTEGER PRIMARY KEY %s" %self.auto_increment,"INTEGER"] + \
              [f[1] for f in fields]
          f_string = [ "%s %s" %(f,t) for (f,t) in zip(self.all_fields,_types)]
          self.types = dict([ (f[0],self.conv_func[f[1].upper()]) 
              for f in fields if f[1].upper() in self.conv_func ])
          sql = "CREATE TABLE %s (%s)" %(self.name,",".join(f_string))
          self.cursor.execute(sql)
          return self
docs: Create a new base with specified field names
          A keyword argument mode can be specified ; it is used if a file
          with the base name already exists
          - if mode = 'open' : open the existing base, ignore the fields
          - if mode = 'override' : erase the existing base and create a
          new one with the specified fields