Tests if the given key-value pairs (items) are physical existent files or links to regular
        files.
        Per default this function yields whether ``True`` or ``False`` depending on the fact if all
        items withstand the validation or not. Per default the validation / evaluation is
        short-circuit and will return as soon an item evaluates to ``False``.

        When ``raise_ex`` is set to ``True`` the function will raise a meaningful error message
        after the first item evaluates to ``False`` (short-circuit).

        When ``summary`` is set to ``False`` a dictionary is returned containing the individual
        evaluation result ofeach item (non short-circuit).

        Examples:

            >>> import tempfile
            >>> tmp = tempfile.NamedTemporaryFile()
            >>> Validator.is_file(file=tmp.name)
            True
            >>> Validator.is_file(nonfile="iamsurethatthisdontexist")
            False
            >>> Validator.is_file(file=tmp.name, nonfile="iamsurethatthisdontexist")
            False
            >>> (Validator.is_file(file=tmp.name, nonfile="iamsurethatthisdontexist", summary=False)
            ... == {'file': True, 'nonfile': False})
            True
            >>> Validator.is_file(file=tmp.name, nonfile="iamsurethatthisdontexist", raise_ex=True)
            Traceback (most recent call last):
                ...
            ValueError: 'nonfile' is not a file
            >>> with open(tmp.name) as fp:
            ...     Validator.is_file(nonfile=fp)
            False


        Args:

            raise_ex (bool, optional): If set to ``True`` an exception is raised if at least one i
            tem is validated to ``False`` (works short-circuit and will abort the validation when
            the first item is evaluated to ``False``).

            summary (bool, optional): If set to ``False`` instead of returning just a single
            ``bool`` the validation will return a dictionary containing the individual evaluation
            result of each item.

        Returns:
            (boolean or dictionary): ``True`` when the value was successfully validated; ``False``
                otherwise.
            If ``summary`` is set to ``False`` a dictionary containing the individual evaluation
            result of each item will be returned.
            If ``raise_ex`` is set to True, instead of returning False a meaningful error will be
            raised.

def is_file(raise_ex: bool = False, summary: bool = True,
                **items: Any) -> ValidationReturn:
        """
        Tests if the given key-value pairs (items) are physical existent files or links to regular
        files.
        Per default this function yields whether ``True`` or ``False`` depending on the fact if all
        items withstand the validation or not. Per default the validation / evaluation is
        short-circuit and will return as soon an item evaluates to ``False``.

        When ``raise_ex`` is set to ``True`` the function will raise a meaningful error message
        after the first item evaluates to ``False`` (short-circuit).

        When ``summary`` is set to ``False`` a dictionary is returned containing the individual
        evaluation result ofeach item (non short-circuit).

        Examples:

            >>> import tempfile
            >>> tmp = tempfile.NamedTemporaryFile()
            >>> Validator.is_file(file=tmp.name)
            True
            >>> Validator.is_file(nonfile="iamsurethatthisdontexist")
            False
            >>> Validator.is_file(file=tmp.name, nonfile="iamsurethatthisdontexist")
            False
            >>> (Validator.is_file(file=tmp.name, nonfile="iamsurethatthisdontexist", summary=False)
            ... == {'file': True, 'nonfile': False})
            True
            >>> Validator.is_file(file=tmp.name, nonfile="iamsurethatthisdontexist", raise_ex=True)
            Traceback (most recent call last):
                ...
            ValueError: 'nonfile' is not a file
            >>> with open(tmp.name) as fp:
            ...     Validator.is_file(nonfile=fp)
            False


        Args:

            raise_ex (bool, optional): If set to ``True`` an exception is raised if at least one i
            tem is validated to ``False`` (works short-circuit and will abort the validation when
            the first item is evaluated to ``False``).

            summary (bool, optional): If set to ``False`` instead of returning just a single
            ``bool`` the validation will return a dictionary containing the individual evaluation
            result of each item.

        Returns:
            (boolean or dictionary): ``True`` when the value was successfully validated; ``False``
                otherwise.
            If ``summary`` is set to ``False`` a dictionary containing the individual evaluation
            result of each item will be returned.
            If ``raise_ex`` is set to True, instead of returning False a meaningful error will be
            raised.

        """
        return Validator.__test_all(
            condition=lambda _, val: Path(val).is_file(),
            formatter=lambda name, _: "'{varname}' is not a file".format(varname=name),
            validators=[partial(Validator.instance_of, target_type=str)],
            raise_ex=raise_ex,
            summary=summary,
            **items
        )