code: def maketabdesc(descs=[]):
      
      rec = {}
      # If a single dict is given, make a list of it.
      if isinstance(descs, dict):
          descs = [descs]
      for desc in descs:
          colname = desc['name']
          if colname in rec:
              raise ValueError('Column name ' + colname + ' multiply used in table description')
          rec[colname] = desc['desc']
      return rec
docs: Create a table description.
  
      Creates a table description from a set of column descriptions. The
      resulting table description can be used in the :class:`table` constructor.
  
      For example::
  
        scd1 = makescacoldesc("col2", "aa")
        scd2 = makescacoldesc("col1", 1, "IncrementalStMan")
        scd3 = makescacoldesc("colrec1", {})
        acd1 = makearrcoldesc("arr1", 1, 0, [2,3,4])
        acd2 = makearrcoldesc("arr2", 0.+0j)
        td = maketabdesc([scd1, scd2, scd3, acd1, acd2])
        t = table("mytable", td, nrow=100)
  
      | This creates a table description `td` from five column descriptions
        and then creates a 100-row table called `mytable` from the table
        description.
      | The columns contain respectivily strings, integer scalars, records,
        3D integer arrays with fixed shape [2,3,4], and complex arrays with
        variable shape.