code: def unary_operator(op):
      
      valid_ops = {'~'}
      if op not in valid_ops:
          raise ValueError("Invalid unary operator %s." % op)
  
      def unary_operator(self):
          # This can't be hoisted up a scope because the types returned by
          # unary_op_return_type aren't defined when the top-level function is
          # invoked.
          if isinstance(self, NumericalExpression):
              return NumExprFilter.create(
                  "{op}({expr})".format(op=op, expr=self._expr),
                  self.inputs,
              )
          else:
              return NumExprFilter.create("{op}x_0".format(op=op), (self,))
  
      unary_operator.__doc__ = "Unary Operator: '%s'" % op
      return unary_operator
docs: Factory function for making unary operator methods for Filters.