from typing import Optional
from typing import Dict
from typing import Any


def lens(obj: Optional[Dict], *args) -> Any:
    """Recursively access values for given keys in :class:`dict` `obj`

    Args:
        obj: The object to scope
        args: variable number of arguments

    Returns None if a value isn't found for a sequence of keys.
    """
    if obj is None:
        return None
    elif args:
        return lens(obj.get(args[0]), *args[1:])
    else:
        return obj