We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
DEP: Drop `inplace` option of `filter_in`
<!--
Thanks for contributing a pull request!

Please follow these standard acronyms to start the commit message:

- ENH: enhancement
- BUG: bug fix
- DOC: documentation
- TYP: type annotations
- TST: addition or modification of tests
- MAINT: maintenance commit (refactoring, typos, etc.)
- BLD: change related to building
- REL: related to releasing
- API: an (incompatible) API change
- DEP: deprecate something, or remove a deprecated object
- DEV: development tool or utility
- REV: revert an earlier commit
- PERF: performance improvement
- BOT: always commit via a bot
- CI: related to CI or CD
- CLN: Code cleanup
-->

- [ ] closes #xxxx
- [x] whatsnew entry

Refer other `filter` methods. There don't have `inplace` option.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `dtoolkit/accessor/dataframe/filter_in.py`
Content:
```
1 from __future__ import annotations
2 
3 from typing import TYPE_CHECKING
4 
5 import pandas as pd
6 from pandas.util._validators import validate_bool_kwarg
7 
8 from dtoolkit.accessor._util import get_mask
9 from dtoolkit.accessor._util import isin
10 from dtoolkit.accessor.register import register_dataframe_method
11 
12 
13 if TYPE_CHECKING:
14     from typing import Iterable
15 
16     from dtoolkit._typing import IntOrStr
17 
18 
19 @register_dataframe_method
20 def filter_in(
21     df: pd.DataFrame,
22     condition: Iterable | pd.Series | pd.DataFrame | dict[str, list[str]],
23     axis: IntOrStr = 0,
24     how: str = "all",
25     inplace: bool = False,
26 ) -> pd.DataFrame | None:
27     """
28     Filter :obj:`~pandas.DataFrame` contents.
29 
30     Similar to :meth:`~pandas.DataFrame.isin`, but the return is value not
31     bool.
32 
33     Parameters
34     ----------
35     condition : iterable, Series, DataFrame or dict
36         The result will only be true at a location if all the labels match.
37 
38         * If ``condition`` is a :obj:`dict`, the keys must be the row/column
39           names, which must match. And ``how`` only works on these gave keys.
40 
41             - ``axis`` is 0 or 'index', keys would be recognize as column
42               names.
43             - ``axis`` is 1 or 'columns', keys would be recognize as index
44               names.
45 
46         * If ``condition`` is a :obj:`~pandas.Series`, that's the index.
47 
48         * If ``condition`` is a :obj:`~pandas.DataFrame`, then both the index
49           and column labels must match.
50 
51     axis : {0 or 'index', 1 or 'columns'}, default 0
52         Determine if rows or columns which contain value are filtered.
53 
54         * 0, or 'index' : Filter rows which contain value.
55         * 1, or 'columns' : Filter columns which contain value.
56 
57     how : {'any', 'all'}, default 'all'
58         Determine if row or column is filtered from :obj:`~pandas.DataFrame`,
59         when we have at least one value or all value.
60 
61         * 'any' : If any values are present, filter that row or column.
62         * 'all' : If all values are present, filter that row or column.
63 
64     inplace : bool, default is False
65         If True, do operation inplace and return None.
66 
67     Returns
68     -------
69     DataFrame
70 
71     See Also
72     --------
73     pandas.DataFrame.isin
74         Whether each element in the DataFrame is contained in values.
75     pandas.DataFrame.filter
76         Subset the dataframe rows or columns according to the specified index
77         labels.
78 
79     Examples
80     --------
81     >>> import dtoolkit.accessor
82     >>> import pandas as pd
83     >>> df = pd.DataFrame({'num_legs': [2, 4, 2], 'num_wings': [2, 0, 0]},
84     ...                   index=['falcon', 'dog', 'cat'])
85     >>> df
86             num_legs  num_wings
87     falcon         2          2
88     dog            4          0
89     cat            2          0
90 
91     When ``condition`` is a list check whether every value in the DataFrame is
92     present in the list (which animals have 0 or 2 legs or wings).
93 
94     Filter rows.
95 
96     >>> df.filter_in([0, 2])
97             num_legs  num_wings
98     falcon         2          2
99     cat            2          0
100 
101     Filter columns.
102 
103     >>> df.filter_in([0, 2], axis=1)
104                 num_wings
105     falcon          2
106     dog             0
107     cat             0
108 
109     When ``condition`` is a :obj:`dict`, we can pass values to check for each
110     row/column (depend on ``axis``) separately.
111 
112     Filter rows, to check under the column (key) whether contains the value.
113 
114     >>> df.filter_in({'num_legs': [2], 'num_wings': [2]})
115             num_legs  num_wings
116     falcon         2          2
117 
118     Filter columns, to check under the index (key) whether contains the value.
119 
120     >>> df.filter_in({'cat': [2]}, axis=1)
121             num_legs
122     falcon         2
123     dog            4
124     cat            2
125 
126     When ``values`` is a Series or DataFrame the index and column must match.
127     Note that 'spider' doesn't match based on the number of legs in ``other``.
128 
129     >>> other = pd.DataFrame({'num_legs': [8, 2], 'num_wings': [0, 2]},
130     ...                      index=['spider', 'falcon'])
131     >>> other
132             num_legs  num_wings
133     spider         8          0
134     falcon         2          2
135     >>> df.filter_in(other)
136             num_legs  num_wings
137     falcon         2          2
138     """
139 
140     inplace = validate_bool_kwarg(inplace, "inplace")
141     axis = df._get_axis_number(axis)
142 
143     another_axis = 1 - axis
144 
145     mask = isin(df, condition, axis)
146     if isinstance(condition, dict):
147         # 'how' only works on condition's keys
148         names = condition.keys()
149         mask = mask[names] if axis == 0 else mask.loc[names]
150     mask = get_mask(how, mask, another_axis)
151 
152     result = df.loc(axis=axis)[mask]
153     if not inplace:
154         return result
155 
156     df._update_inplace(result)
157
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/dtoolkit/accessor/dataframe/filter_in.py b/dtoolkit/accessor/dataframe/filter_in.py
--- a/dtoolkit/accessor/dataframe/filter_in.py
+++ b/dtoolkit/accessor/dataframe/filter_in.py
@@ -8,6 +8,7 @@
 from dtoolkit.accessor._util import get_mask
 from dtoolkit.accessor._util import isin
 from dtoolkit.accessor.register import register_dataframe_method
+from dtoolkit.util._decorator import warning
 
 
 if TYPE_CHECKING:
@@ -17,6 +18,12 @@
 
 
 @register_dataframe_method
+@warning(
+    "The 'inplace' option of 'dtoolkit.accessor.dataframe.filter_in' is deprecated "
+    "and will be removed in 0.0.16. (Warning added DToolKit 0.0.15)",
+    DeprecationWarning,
+    stacklevel=3,
+)
 def filter_in(
     df: pd.DataFrame,
     condition: Iterable | pd.Series | pd.DataFrame | dict[str, list[str]],
@@ -30,6 +37,10 @@
     Similar to :meth:`~pandas.DataFrame.isin`, but the return is value not
     bool.
 
+    .. warning::
+        The ``inplace`` option of ``dtoolkit.accessor.dataframe.filter_in`` is
+        deprecated and will be removed in 0.0.16. (Warning added DToolKit 0.0.15)
+
     Parameters
     ----------
     condition : iterable, Series, DataFrame or dict

{"golden_diff": "diff --git a/dtoolkit/accessor/dataframe/filter_in.py b/dtoolkit/accessor/dataframe/filter_in.py\n--- a/dtoolkit/accessor/dataframe/filter_in.py\n+++ b/dtoolkit/accessor/dataframe/filter_in.py\n@@ -8,6 +8,7 @@\n from dtoolkit.accessor._util import get_mask\n from dtoolkit.accessor._util import isin\n from dtoolkit.accessor.register import register_dataframe_method\n+from dtoolkit.util._decorator import warning\n \n \n if TYPE_CHECKING:\n@@ -17,6 +18,12 @@\n \n \n @register_dataframe_method\n+@warning(\n+    \"The 'inplace' option of 'dtoolkit.accessor.dataframe.filter_in' is deprecated \"\n+    \"and will be removed in 0.0.16. (Warning added DToolKit 0.0.15)\",\n+    DeprecationWarning,\n+    stacklevel=3,\n+)\n def filter_in(\n     df: pd.DataFrame,\n     condition: Iterable | pd.Series | pd.DataFrame | dict[str, list[str]],\n@@ -30,6 +37,10 @@\n     Similar to :meth:`~pandas.DataFrame.isin`, but the return is value not\n     bool.\n \n+    .. warning::\n+        The ``inplace`` option of ``dtoolkit.accessor.dataframe.filter_in`` is\n+        deprecated and will be removed in 0.0.16. (Warning added DToolKit 0.0.15)\n+\n     Parameters\n     ----------\n     condition : iterable, Series, DataFrame or dict\n", "issue": "DEP: Drop `inplace` option of `filter_in`\n<!--\r\nThanks for contributing a pull request!\r\n\r\nPlease follow these standard acronyms to start the commit message:\r\n\r\n- ENH: enhancement\r\n- BUG: bug fix\r\n- DOC: documentation\r\n- TYP: type annotations\r\n- TST: addition or modification of tests\r\n- MAINT: maintenance commit (refactoring, typos, etc.)\r\n- BLD: change related to building\r\n- REL: related to releasing\r\n- API: an (incompatible) API change\r\n- DEP: deprecate something, or remove a deprecated object\r\n- DEV: development tool or utility\r\n- REV: revert an earlier commit\r\n- PERF: performance improvement\r\n- BOT: always commit via a bot\r\n- CI: related to CI or CD\r\n- CLN: Code cleanup\r\n-->\r\n\r\n- [ ] closes #xxxx\r\n- [x] whatsnew entry\r\n\r\nRefer other `filter` methods. There don't have `inplace` option.\n", "before_files": [{"content": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nimport pandas as pd\nfrom pandas.util._validators import validate_bool_kwarg\n\nfrom dtoolkit.accessor._util import get_mask\nfrom dtoolkit.accessor._util import isin\nfrom dtoolkit.accessor.register import register_dataframe_method\n\n\nif TYPE_CHECKING:\n    from typing import Iterable\n\n    from dtoolkit._typing import IntOrStr\n\n\n@register_dataframe_method\ndef filter_in(\n    df: pd.DataFrame,\n    condition: Iterable | pd.Series | pd.DataFrame | dict[str, list[str]],\n    axis: IntOrStr = 0,\n    how: str = \"all\",\n    inplace: bool = False,\n) -> pd.DataFrame | None:\n    \"\"\"\n    Filter :obj:`~pandas.DataFrame` contents.\n\n    Similar to :meth:`~pandas.DataFrame.isin`, but the return is value not\n    bool.\n\n    Parameters\n    ----------\n    condition : iterable, Series, DataFrame or dict\n        The result will only be true at a location if all the labels match.\n\n        * If ``condition`` is a :obj:`dict`, the keys must be the row/column\n          names, which must match. And ``how`` only works on these gave keys.\n\n            - ``axis`` is 0 or 'index', keys would be recognize as column\n              names.\n            - ``axis`` is 1 or 'columns', keys would be recognize as index\n              names.\n\n        * If ``condition`` is a :obj:`~pandas.Series`, that's the index.\n\n        * If ``condition`` is a :obj:`~pandas.DataFrame`, then both the index\n          and column labels must match.\n\n    axis : {0 or 'index', 1 or 'columns'}, default 0\n        Determine if rows or columns which contain value are filtered.\n\n        * 0, or 'index' : Filter rows which contain value.\n        * 1, or 'columns' : Filter columns which contain value.\n\n    how : {'any', 'all'}, default 'all'\n        Determine if row or column is filtered from :obj:`~pandas.DataFrame`,\n        when we have at least one value or all value.\n\n        * 'any' : If any values are present, filter that row or column.\n        * 'all' : If all values are present, filter that row or column.\n\n    inplace : bool, default is False\n        If True, do operation inplace and return None.\n\n    Returns\n    -------\n    DataFrame\n\n    See Also\n    --------\n    pandas.DataFrame.isin\n        Whether each element in the DataFrame is contained in values.\n    pandas.DataFrame.filter\n        Subset the dataframe rows or columns according to the specified index\n        labels.\n\n    Examples\n    --------\n    >>> import dtoolkit.accessor\n    >>> import pandas as pd\n    >>> df = pd.DataFrame({'num_legs': [2, 4, 2], 'num_wings': [2, 0, 0]},\n    ...                   index=['falcon', 'dog', 'cat'])\n    >>> df\n            num_legs  num_wings\n    falcon         2          2\n    dog            4          0\n    cat            2          0\n\n    When ``condition`` is a list check whether every value in the DataFrame is\n    present in the list (which animals have 0 or 2 legs or wings).\n\n    Filter rows.\n\n    >>> df.filter_in([0, 2])\n            num_legs  num_wings\n    falcon         2          2\n    cat            2          0\n\n    Filter columns.\n\n    >>> df.filter_in([0, 2], axis=1)\n                num_wings\n    falcon          2\n    dog             0\n    cat             0\n\n    When ``condition`` is a :obj:`dict`, we can pass values to check for each\n    row/column (depend on ``axis``) separately.\n\n    Filter rows, to check under the column (key) whether contains the value.\n\n    >>> df.filter_in({'num_legs': [2], 'num_wings': [2]})\n            num_legs  num_wings\n    falcon         2          2\n\n    Filter columns, to check under the index (key) whether contains the value.\n\n    >>> df.filter_in({'cat': [2]}, axis=1)\n            num_legs\n    falcon         2\n    dog            4\n    cat            2\n\n    When ``values`` is a Series or DataFrame the index and column must match.\n    Note that 'spider' doesn't match based on the number of legs in ``other``.\n\n    >>> other = pd.DataFrame({'num_legs': [8, 2], 'num_wings': [0, 2]},\n    ...                      index=['spider', 'falcon'])\n    >>> other\n            num_legs  num_wings\n    spider         8          0\n    falcon         2          2\n    >>> df.filter_in(other)\n            num_legs  num_wings\n    falcon         2          2\n    \"\"\"\n\n    inplace = validate_bool_kwarg(inplace, \"inplace\")\n    axis = df._get_axis_number(axis)\n\n    another_axis = 1 - axis\n\n    mask = isin(df, condition, axis)\n    if isinstance(condition, dict):\n        # 'how' only works on condition's keys\n        names = condition.keys()\n        mask = mask[names] if axis == 0 else mask.loc[names]\n    mask = get_mask(how, mask, another_axis)\n\n    result = df.loc(axis=axis)[mask]\n    if not inplace:\n        return result\n\n    df._update_inplace(result)\n", "path": "dtoolkit/accessor/dataframe/filter_in.py"}], "after_files": [{"content": "from __future__ import annotations\n\nfrom typing import TYPE_CHECKING\n\nimport pandas as pd\nfrom pandas.util._validators import validate_bool_kwarg\n\nfrom dtoolkit.accessor._util import get_mask\nfrom dtoolkit.accessor._util import isin\nfrom dtoolkit.accessor.register import register_dataframe_method\nfrom dtoolkit.util._decorator import warning\n\n\nif TYPE_CHECKING:\n    from typing import Iterable\n\n    from dtoolkit._typing import IntOrStr\n\n\n@register_dataframe_method\n@warning(\n    \"The 'inplace' option of 'dtoolkit.accessor.dataframe.filter_in' is deprecated \"\n    \"and will be removed in 0.0.16. (Warning added DToolKit 0.0.15)\",\n    DeprecationWarning,\n    stacklevel=3,\n)\ndef filter_in(\n    df: pd.DataFrame,\n    condition: Iterable | pd.Series | pd.DataFrame | dict[str, list[str]],\n    axis: IntOrStr = 0,\n    how: str = \"all\",\n    inplace: bool = False,\n) -> pd.DataFrame | None:\n    \"\"\"\n    Filter :obj:`~pandas.DataFrame` contents.\n\n    Similar to :meth:`~pandas.DataFrame.isin`, but the return is value not\n    bool.\n\n    .. warning::\n        The ``inplace`` option of ``dtoolkit.accessor.dataframe.filter_in`` is\n        deprecated and will be removed in 0.0.16. (Warning added DToolKit 0.0.15)\n\n    Parameters\n    ----------\n    condition : iterable, Series, DataFrame or dict\n        The result will only be true at a location if all the labels match.\n\n        * If ``condition`` is a :obj:`dict`, the keys must be the row/column\n          names, which must match. And ``how`` only works on these gave keys.\n\n            - ``axis`` is 0 or 'index', keys would be recognize as column\n              names.\n            - ``axis`` is 1 or 'columns', keys would be recognize as index\n              names.\n\n        * If ``condition`` is a :obj:`~pandas.Series`, that's the index.\n\n        * If ``condition`` is a :obj:`~pandas.DataFrame`, then both the index\n          and column labels must match.\n\n    axis : {0 or 'index', 1 or 'columns'}, default 0\n        Determine if rows or columns which contain value are filtered.\n\n        * 0, or 'index' : Filter rows which contain value.\n        * 1, or 'columns' : Filter columns which contain value.\n\n    how : {'any', 'all'}, default 'all'\n        Determine if row or column is filtered from :obj:`~pandas.DataFrame`,\n        when we have at least one value or all value.\n\n        * 'any' : If any values are present, filter that row or column.\n        * 'all' : If all values are present, filter that row or column.\n\n    inplace : bool, default is False\n        If True, do operation inplace and return None.\n\n    Returns\n    -------\n    DataFrame\n\n    See Also\n    --------\n    pandas.DataFrame.isin\n        Whether each element in the DataFrame is contained in values.\n    pandas.DataFrame.filter\n        Subset the dataframe rows or columns according to the specified index\n        labels.\n\n    Examples\n    --------\n    >>> import dtoolkit.accessor\n    >>> import pandas as pd\n    >>> df = pd.DataFrame({'num_legs': [2, 4, 2], 'num_wings': [2, 0, 0]},\n    ...                   index=['falcon', 'dog', 'cat'])\n    >>> df\n            num_legs  num_wings\n    falcon         2          2\n    dog            4          0\n    cat            2          0\n\n    When ``condition`` is a list check whether every value in the DataFrame is\n    present in the list (which animals have 0 or 2 legs or wings).\n\n    Filter rows.\n\n    >>> df.filter_in([0, 2])\n            num_legs  num_wings\n    falcon         2          2\n    cat            2          0\n\n    Filter columns.\n\n    >>> df.filter_in([0, 2], axis=1)\n                num_wings\n    falcon          2\n    dog             0\n    cat             0\n\n    When ``condition`` is a :obj:`dict`, we can pass values to check for each\n    row/column (depend on ``axis``) separately.\n\n    Filter rows, to check under the column (key) whether contains the value.\n\n    >>> df.filter_in({'num_legs': [2], 'num_wings': [2]})\n            num_legs  num_wings\n    falcon         2          2\n\n    Filter columns, to check under the index (key) whether contains the value.\n\n    >>> df.filter_in({'cat': [2]}, axis=1)\n            num_legs\n    falcon         2\n    dog            4\n    cat            2\n\n    When ``values`` is a Series or DataFrame the index and column must match.\n    Note that 'spider' doesn't match based on the number of legs in ``other``.\n\n    >>> other = pd.DataFrame({'num_legs': [8, 2], 'num_wings': [0, 2]},\n    ...                      index=['spider', 'falcon'])\n    >>> other\n            num_legs  num_wings\n    spider         8          0\n    falcon         2          2\n    >>> df.filter_in(other)\n            num_legs  num_wings\n    falcon         2          2\n    \"\"\"\n\n    inplace = validate_bool_kwarg(inplace, \"inplace\")\n    axis = df._get_axis_number(axis)\n\n    another_axis = 1 - axis\n\n    mask = isin(df, condition, axis)\n    if isinstance(condition, dict):\n        # 'how' only works on condition's keys\n        names = condition.keys()\n        mask = mask[names] if axis == 0 else mask.loc[names]\n    mask = get_mask(how, mask, another_axis)\n\n    result = df.loc(axis=axis)[mask]\n    if not inplace:\n        return result\n\n    df._update_inplace(result)\n", "path": "dtoolkit/accessor/dataframe/filter_in.py"}]}