<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def render_template_inplace(template_path, info, dry_run=False, extra_filters=None, resolver=None):
 """Render a template file in place. This function expects template path to be a path to a file that ends in .tpl. It will be rendered to a file in the same directory with the .tpl suffix removed. Args: template_path (str):
 The path to the template file that we want to render in place. info (dict):
 A dictionary of variables passed into the template to perform substitutions. dry_run (bool):
 Whether to actually render the output file or just return the file path that would be generated. extra_filters (dict of str -> callable):
 An optional group of filters that will be made available to the template. The dict key will be the name at which callable is made available. resolver (ProductResolver):
 The specific ProductResolver class to use in the find_product filter. Returns: str: The path to the output file generated. """


    filters = {}
    if resolver is not None:
        filters['find_product'] = _create_resolver_filter(resolver)

    if extra_filters is not None:
        filters.update(extra_filters)

    basedir = os.path.dirname(template_path)
    template_name = os.path.basename(template_path)

    if not template_name.endswith('.tpl'):
        raise ArgumentError("You must specify a filename that ends in .tpl", filepath=template_path)

    out_path = os.path.join(basedir, template_name[:-4])

    if basedir == '':
        basedir = '.'

    env = Environment(loader=FileSystemLoader(basedir),
                      trim_blocks=True, lstrip_blocks=True)

    # Load any filters the user wants us to use
    for name, func in filters.items():
        env.filters[name] = func

    template = env.get_template(template_name)
    result = template.render(info)

    if not dry_run:
        with open(out_path, 'wb') as outfile:
            outfile.write(result.encode('utf-8'))

    return out_path