# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/00_core.ipynb.

# %% auto 0
__all__ = ['rpass', 'upass', 'npass', 'apass', 'ipass', 'xpass']

# %% ../nbs/00_core.ipynb 4
from typing import overload

# %% ../nbs/00_core.ipynb 6
def rpass(*args, **kwargs) -> (tuple, dict): # return pass
    '''returns `args, kwargs`'''
    return args, kwargs

def upass(*args, **kwargs) -> (tuple, dict): # unpack pass
    '''returns `*args, kwargs`'''    
    return *args, kwargs

def npass(*args, **kwargs): # none pass
    '''returns None'''

@overload
def apass(x, *args, **kwargs): return x
def apass(*args, **kwargs):
    '''Returns the first argument `a` if it exists else None'''
    return args[0] if args and len(args) > 0 else None

def ipass(*args, **kwargs):
    '''Alias for `apass` i.e. the identity function'''
    return apass(*args, **kwargs)

def xpass(*args, **kwargs): 
    '''does nothing'''
