# Path: pykern/pkinspect.py
# _VALID_IDENTIFIER_RE = re.compile(r'^[a-z_]\w*$', re.IGNORECASE)
# class Call(PKDict):
#     def __init__(self, frame_or_log):
#     def __str__(self):
# def caller(ignore_modules=None, exclude_first=True):
# def caller_module(exclude_first=True):
# def is_caller_main():
# def is_valid_identifier(string):
# def module_basename(obj):
# def module_name_join(names):
# def module_name_split(obj):
# def module_functions(func_prefix, module=None):
# def root_package(obj):
# def submodule_name(obj):
# def this_module():


from pykern import pkinspect
class C():
    pass

v = 1
c = C()



def caller(ignore_modules=None):
    return pkinspect.caller(ignore_modules=ignore_modules)


def caller_module(exclude_first=True):

# Path: pykern/pkinspect.py
# _VALID_IDENTIFIER_RE = re.compile(r'^[a-z_]\w*$', re.IGNORECASE)
# class Call(PKDict):
#     def __init__(self, frame_or_log):
#     def __str__(self):
# def caller(ignore_modules=None, exclude_first=True):
# def caller_module(exclude_first=True):
# def is_caller_main():
# def is_valid_identifier(string):
# def module_basename(obj):
# def module_name_join(names):
# def module_name_split(obj):
# def module_functions(func_prefix, module=None):
# def root_package(obj):
# def submodule_name(obj):
# def this_module():


# Path: tests/pkinspect_data/p1/m1.py
from pykern import pkinspect

class C():
    pass

v = 1
c = C()



def caller(ignore_modules=None):
    return pkinspect.caller(ignore_modules=ignore_modules)


def caller_module(exclude_first=True):

    return pkinspect.caller_module(exclude_first=exclude_first)