code: def count(expr, where=None):
      
      op = expr.op()
      if isinstance(op, ops.DistinctColumn):
          result = ops.CountDistinct(op.args[0], where).to_expr()
      else:
          result = ops.Count(expr, where).to_expr()
  
      return result.name('count')
docs: Compute cardinality / sequence size of expression. For array expressions,
      the count is excluding nulls. For tables, it's the size of the entire
      table.
  
      Returns
      -------
      counts : int64 type