code: def nullBetween(self: Column, lower: Column, upper: Column) -> Column:
      """To see if a value is between two values in a null friendly way.
  
      :param self: Column object
      :lower: Column
      :upper: Column
      :rtype: Column
      """
      return when(lower.isNull() & upper.isNull(), False).otherwise(
          when(self.isNull(), False).otherwise(
              when(
                  lower.isNull() & upper.isNotNull() & (self <= upper),
                  True,
              ).otherwise(
                  when(
                      lower.isNotNull()
                      & upper.isNull()
                      & (self >= lower),
                      True,
                  ).otherwise(self.between(lower, upper)),
              ),
          ),
      )
  
file_path: quinn/quinn/extensions/column_ext.py
imports: from __future__ import annotations
  from typing import Any
  from pyspark.sql.column import Column
  from pyspark.sql.functions import lit, trim, when
label_desc: Use image node_id 7 for calling a global function with example usage: nullBetween(lower, upper) and returns: when