def METHOD_NAME(net_in, **kwargs):
    net = net_in.deepcopy()
    include_results = kwargs.pop("include_results", False)
    if not include_results:
        pp.reset_results(net)
    else:
        pp.runpp(net)
    connection_data, schema = get_postgresql_connection_data()
    grid_id = pp.to_postgresql(net, schema=schema, include_results=include_results, **connection_data, **kwargs)
    net_out = pp.from_postgresql(grid_id=grid_id, schema=schema, **connection_data, **kwargs)
    if not include_results:
        pp.runpp(net)
        pp.runpp(net_out)
    assert_res_equal(net, net_out)
    for element, table in net.items():
        # dictionaries (e.g. std_type) not included
        # json serialization/deserialization of objects not implemented
        if not isinstance(table, pd.DataFrame) or table.empty or "geodata" in element:
            continue
        # code below: very difficult to compare columns with NaN values due to None vs np.nan and dtypes,
        # "1" vs 1 and dtype object
        # also sometimes order of rows is not same
        columns = table.columns
        table_in = table.fillna(np.nan)
        table_out = net_out[element][columns].loc[table_in.index].fillna(np.nan)
        _preserve_dtypes(table_out, table_in.dtypes)
        pdt.assert_frame_equal(table_in, table_out, check_dtype=False)
    # clean-up
    pp.delete_postgresql_net(grid_id=grid_id, schema=schema, **connection_data)