docs: def FromType(ftype):
          """ DocField subclasses factory, creates a convenient field to store
          data from a given Type.
  
          attribute precedence :
          
          * ``|attrs| > 0`` (``multi`` and ``uniq`` are implicit) => VectorField
          * ``uniq`` (``multi`` is implicit) => SetField 
          * ``multi`` and ``not uniq`` => ListField 
          * ``not multi`` => ValueField
          
          :param ftype: the desired type of field
          :type ftype: subclass of :class:`.GenericType`
          """
          if ftype.attrs is not None and len(ftype.attrs):
              return VectorField(ftype)
          elif ftype.uniq:
              return SetField(ftype)
          elif ftype.multi:
              return ListField(ftype)
          else:
              return ValueField(ftype)