async def METHOD_NAME(event):
    "To inspect source"
    query = event.pattern_match.group(1)
    if not query:
        return await edit_delete(event, "`Give me source.....`")
    catevent = await edit_or_reply(event, "`Processing.....`")
    try:
        source = eval(query)
        filename = f"{query}.txt"
    except (NameError, SyntaxError):
        module_name, *function = query.split()
        function = function[0] if function else None
        spec = importlib.util.find_spec(module_name)
        if spec is None:
            return await edit_delete(
                catevent,
                f"**Error:**  no module or function found by the name: {module_name}",
            )
        module = importlib.util.module_from_spec(spec)
        spec.loader.exec_module(module)
        if function:
            attributes = dir(module)
            if function not in attributes:
                for _, obj in inspect.getmembers(module, inspect.isclass):
                    attributes = dir(obj)
                    if function in attributes:
                        source = getattr(obj, function)
                        break
                else:
                    return await edit_delete(
                        catevent,
                        f"**Error:**  function: {function} not found in module: {module_name}",
                    )
            else:
                source = getattr(module, function)
            filename = f"{function}.txt"
        else:
            filename = module_name.split(".")[-1] + ".txt"
            source = module
    filepath = inspect.getfile(source)
    caption = f"**Source:**  `{filepath}`"
    with open(filename, "w") as f:
        text = inspect.getsource(source)
        f.write(text)
    await catevent.delete()
    await catub.send_file(
        event.chat_id,
        filename,
        caption=caption,
        allow_cache=False,
        reply_to=event.message.reply_to_msg_id,
    )
    os.remove(filename)