Get first properties related to one input key.

    :param elt: first property elt. Not None methods.
    :param list keys: property keys to get.
    :param ctx: elt ctx from where get properties. Equals elt if None. It
        allows to get function properties related to a class or instance if
        related function is defined in base class.

    :return: dict of first values of elt properties.

def get_first_properties(elt, keys=None, ctx=None):
    """Get first properties related to one input key.

    :param elt: first property elt. Not None methods.
    :param list keys: property keys to get.
    :param ctx: elt ctx from where get properties. Equals elt if None. It
        allows to get function properties related to a class or instance if
        related function is defined in base class.

    :return: dict of first values of elt properties.
    """

    # ensure keys is an iterable if not None
    if isinstance(keys, string_types):
        keys = (keys,)

    result = _get_properties(elt, keys=keys, first=True, ctx=ctx)

    return result