docs: def make_filter(self, fieldname, query_func, expct_value):
          ''' makes a filter that will be appliead to an object's property based
          on query_func '''
  
          def actual_filter(item):
              value = getattr(item, fieldname)
  
              if query_func in NULL_AFFECTED_FILTERS and value is None:
                  return False
  
              if query_func == 'eq':
                  return value == expct_value
              elif query_func == 'ne':
                  return value != expct_value
              elif query_func == 'lt':
                  return value < expct_value
              elif query_func == 'lte':
                  return value <= expct_value
              elif query_func == 'gt':
                  return value > expct_value
              elif query_func == 'gte':
                  return value >= expct_value
              elif query_func == 'startswith':
                  return value.startswith(expct_value)
              elif query_func == 'endswith':
                  return value.endswith(expct_value)
  
          actual_filter.__doc__ = '{} {} {}'.format('val', query_func, expct_value)
  
          return actual_filter