docs: def check_value_and_type(value, data_type):
          """Checks if a given value is of a specific type
  
          :param value: the value to check
          :param data_type: the type to be checked upon
          :return:
          """
          if value is not None and data_type is not type(None):
              # if not isinstance(value, data_type):
              if not type_inherits_of_type(data_type, type(value)):
                  raise TypeError(
                      "Value: '{0}' is not of data type: '{1}', value type: {2}".format(value, data_type, type(value)))