import six
from typing import OrderedDict


def filter_dup_list_items(items):
    """Return list items with duplicates filtered out.

    The order of items will be preserved, but only the first occurrence of
    any given item will remain in the list.

    Version Added:
        2.1

    Args:
        items (list):
            The list of items.

    Returns:
        list:
        The resulting de-duplicated list of items.
    """
    return list(six.iterkeys(OrderedDict(
        (item, True)
        for item in items
    )))