code: def column_family_name(cls, include_keyspace=True):
          
          cf_name = ''
          if cls.__table_name__:
              cf_name = cls.__table_name__.lower()
          else:
              # get polymorphic base table names if model is polymorphic
              if cls._is_polymorphic and not cls._is_polymorphic_base:
                  return cls._polymorphic_base.column_family_name(include_keyspace=include_keyspace)
  
              camelcase = re.compile(r'([a-z])([A-Z])')
              ccase = lambda s: camelcase.sub(lambda v: '{}_{}'.format(v.group(1), v.group(2).lower()), s)
  
              cf_name += ccase(cls.__name__)
              #trim to less than 48 characters or cassandra will complain
              cf_name = cf_name[-48:]
              cf_name = cf_name.lower()
              cf_name = re.sub(r'^_+', '', cf_name)
          if not include_keyspace: return cf_name
          return '{}.{}'.format(cls._get_keyspace(), cf_name)
docs: Returns the column family name if it's been defined
          otherwise, it creates it from the module and class name