We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
AttributeError: module 'modin.pandas' has no attribute 'api'
### System information
- **OS Platform and Distribution (e.g., Linux Ubuntu 16.04)**: Linux Ubuntu 20.04
- **Modin version** (`modin.__version__`): 0.10.2
- **Python version**: 3.8.10
- **Code we can use to reproduce**: 

import modin.pandas as pd

indexer = pd.api.indexers.FixedForwardWindowIndexer(window_size=d)
df['new'] = df['rough'].rolling(window=indexer).apply(np.prod, raw=True) - 1


### Describe the problem
modin should have defaulted to pandas in case this functionality is not implemented instead of throwing an error.

### Source code / logs
    indexer = pd.api.indexers.FixedForwardWindowIndexer(window_size=d)
AttributeError: module 'modin.pandas' has no attribute 'api'

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `modin/pandas/__init__.py`
Content:
```
1 # Licensed to Modin Development Team under one or more contributor license agreements.
2 # See the NOTICE file distributed with this work for additional information regarding
3 # copyright ownership.  The Modin Development Team licenses this file to you under the
4 # Apache License, Version 2.0 (the "License"); you may not use this file except in
5 # compliance with the License.  You may obtain a copy of the License at
6 #
7 #     http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software distributed under
10 # the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11 # ANY KIND, either express or implied. See the License for the specific language
12 # governing permissions and limitations under the License.
13 
14 import pandas
15 
16 __pandas_version__ = "1.3.3"
17 
18 if pandas.__version__ != __pandas_version__:
19     import warnings
20 
21     warnings.warn(
22         "The pandas version installed {} does not match the supported pandas version in"
23         " Modin {}. This may cause undesired side effects!".format(
24             pandas.__version__, __pandas_version__
25         )
26     )
27 
28 from pandas import (
29     eval,
30     cut,
31     factorize,
32     test,
33     qcut,
34     date_range,
35     period_range,
36     Index,
37     MultiIndex,
38     CategoricalIndex,
39     bdate_range,
40     DatetimeIndex,
41     Timedelta,
42     Timestamp,
43     to_timedelta,
44     set_eng_float_format,
45     options,
46     Flags,
47     set_option,
48     NaT,
49     PeriodIndex,
50     Categorical,
51     Interval,
52     UInt8Dtype,
53     UInt16Dtype,
54     UInt32Dtype,
55     UInt64Dtype,
56     SparseDtype,
57     Int8Dtype,
58     Int16Dtype,
59     Int32Dtype,
60     Int64Dtype,
61     Float32Dtype,
62     Float64Dtype,
63     StringDtype,
64     BooleanDtype,
65     CategoricalDtype,
66     DatetimeTZDtype,
67     IntervalDtype,
68     PeriodDtype,
69     RangeIndex,
70     Int64Index,
71     UInt64Index,
72     Float64Index,
73     TimedeltaIndex,
74     IntervalIndex,
75     IndexSlice,
76     Grouper,
77     array,
78     Period,
79     show_versions,
80     DateOffset,
81     timedelta_range,
82     infer_freq,
83     interval_range,
84     ExcelWriter,
85     datetime,
86     NamedAgg,
87     NA,
88 )
89 import os
90 import multiprocessing
91 
92 from modin.config import Engine, Parameter
93 
94 # Set this so that Pandas doesn't try to multithread by itself
95 os.environ["OMP_NUM_THREADS"] = "1"
96 
97 _is_first_update = {}
98 dask_client = None
99 _NOINIT_ENGINES = {
100     "Python",
101 }  # engines that don't require initialization, useful for unit tests
102 
103 
104 def _update_engine(publisher: Parameter):
105     global dask_client
106     from modin.config import Backend, CpuCount
107 
108     if publisher.get() == "Ray":
109         if _is_first_update.get("Ray", True):
110             from modin.engines.ray.utils import initialize_ray
111 
112             initialize_ray()
113     elif publisher.get() == "Native":
114         # With OmniSci backend there is only a single worker per node
115         # and we allow it to work on all cores.
116         if Backend.get() == "Omnisci":
117             os.environ["OMP_NUM_THREADS"] = str(CpuCount.get())
118         else:
119             raise ValueError(
120                 f"Backend should be 'Omnisci' with 'Native' engine, but provided {Backend.get()}."
121             )
122     elif publisher.get() == "Dask":
123         if _is_first_update.get("Dask", True):
124             from modin.engines.dask.utils import initialize_dask
125 
126             initialize_dask()
127     elif publisher.get() == "Cloudray":
128         from modin.experimental.cloud import get_connection
129 
130         conn = get_connection()
131         if _is_first_update.get("Cloudray", True):
132 
133             @conn.teleport
134             def init_remote_ray(partition):
135                 from ray import ray_constants
136                 import modin
137                 from modin.engines.ray.utils import initialize_ray
138 
139                 modin.set_backends("Ray", partition)
140                 initialize_ray(
141                     override_is_cluster=True,
142                     override_redis_address=f"localhost:{ray_constants.DEFAULT_PORT}",
143                     override_redis_password=ray_constants.REDIS_DEFAULT_PASSWORD,
144                 )
145 
146             init_remote_ray(Backend.get())
147             # import FactoryDispatcher here to initialize IO class
148             # so it doesn't skew read_csv() timings later on
149             import modin.data_management.factories.dispatcher  # noqa: F401
150         else:
151             get_connection().modules["modin"].set_backends("Ray", Backend.get())
152     elif publisher.get() == "Cloudpython":
153         from modin.experimental.cloud import get_connection
154 
155         get_connection().modules["modin"].set_backends("Python")
156     elif publisher.get() == "Cloudnative":
157         from modin.experimental.cloud import get_connection
158 
159         assert (
160             Backend.get() == "Omnisci"
161         ), f"Backend should be 'Omnisci' with 'Cloudnative' engine, but provided {Backend.get()}."
162         get_connection().modules["modin"].set_backends("Native", "OmniSci")
163 
164     elif publisher.get() not in _NOINIT_ENGINES:
165         raise ImportError("Unrecognized execution engine: {}.".format(publisher.get()))
166 
167     _is_first_update[publisher.get()] = False
168 
169 
170 from .. import __version__
171 from .dataframe import DataFrame
172 from .io import (
173     read_csv,
174     read_parquet,
175     read_json,
176     read_html,
177     read_clipboard,
178     read_excel,
179     read_hdf,
180     read_feather,
181     read_stata,
182     read_sas,
183     read_pickle,
184     read_sql,
185     read_gbq,
186     read_table,
187     read_fwf,
188     read_sql_table,
189     read_sql_query,
190     read_spss,
191     ExcelFile,
192     to_pickle,
193     HDFStore,
194     json_normalize,
195     read_orc,
196     read_xml,
197 )
198 from .series import Series
199 from .general import (
200     concat,
201     isna,
202     isnull,
203     merge,
204     merge_asof,
205     merge_ordered,
206     pivot_table,
207     notnull,
208     notna,
209     pivot,
210     to_numeric,
211     to_datetime,
212     unique,
213     value_counts,
214     get_dummies,
215     melt,
216     crosstab,
217     lreshape,
218     wide_to_long,
219 )
220 from .plotting import Plotting as plotting
221 
222 __all__ = [
223     "DataFrame",
224     "Series",
225     "read_csv",
226     "read_parquet",
227     "read_json",
228     "read_html",
229     "read_clipboard",
230     "read_excel",
231     "read_hdf",
232     "read_feather",
233     "read_stata",
234     "read_sas",
235     "read_pickle",
236     "read_sql",
237     "read_gbq",
238     "read_table",
239     "read_spss",
240     "read_orc",
241     "json_normalize",
242     "concat",
243     "eval",
244     "cut",
245     "factorize",
246     "test",
247     "qcut",
248     "to_datetime",
249     "get_dummies",
250     "isna",
251     "isnull",
252     "merge",
253     "pivot_table",
254     "date_range",
255     "Index",
256     "MultiIndex",
257     "Series",
258     "bdate_range",
259     "period_range",
260     "DatetimeIndex",
261     "to_timedelta",
262     "set_eng_float_format",
263     "options",
264     "set_option",
265     "CategoricalIndex",
266     "Timedelta",
267     "Timestamp",
268     "NaT",
269     "PeriodIndex",
270     "Categorical",
271     "__version__",
272     "melt",
273     "crosstab",
274     "plotting",
275     "Interval",
276     "UInt8Dtype",
277     "UInt16Dtype",
278     "UInt32Dtype",
279     "UInt64Dtype",
280     "SparseDtype",
281     "Int8Dtype",
282     "Int16Dtype",
283     "Int32Dtype",
284     "Int64Dtype",
285     "CategoricalDtype",
286     "DatetimeTZDtype",
287     "IntervalDtype",
288     "PeriodDtype",
289     "BooleanDtype",
290     "StringDtype",
291     "NA",
292     "RangeIndex",
293     "Int64Index",
294     "UInt64Index",
295     "Float64Index",
296     "TimedeltaIndex",
297     "IntervalIndex",
298     "IndexSlice",
299     "Grouper",
300     "array",
301     "Period",
302     "show_versions",
303     "DateOffset",
304     "timedelta_range",
305     "infer_freq",
306     "interval_range",
307     "ExcelWriter",
308     "read_fwf",
309     "read_sql_table",
310     "read_sql_query",
311     "ExcelFile",
312     "to_pickle",
313     "HDFStore",
314     "lreshape",
315     "wide_to_long",
316     "merge_asof",
317     "merge_ordered",
318     "notnull",
319     "notna",
320     "pivot",
321     "to_numeric",
322     "unique",
323     "value_counts",
324     "datetime",
325     "NamedAgg",
326 ]
327 
328 del pandas, Engine, Parameter
329
```
--- 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/modin/pandas/__init__.py b/modin/pandas/__init__.py
--- a/modin/pandas/__init__.py
+++ b/modin/pandas/__init__.py
@@ -85,6 +85,7 @@
     datetime,
     NamedAgg,
     NA,
+    api,
 )
 import os
 import multiprocessing
@@ -323,6 +324,7 @@
     "value_counts",
     "datetime",
     "NamedAgg",
+    "api",
 ]
 
 del pandas, Engine, Parameter

{"golden_diff": "diff --git a/modin/pandas/__init__.py b/modin/pandas/__init__.py\n--- a/modin/pandas/__init__.py\n+++ b/modin/pandas/__init__.py\n@@ -85,6 +85,7 @@\n     datetime,\n     NamedAgg,\n     NA,\n+    api,\n )\n import os\n import multiprocessing\n@@ -323,6 +324,7 @@\n     \"value_counts\",\n     \"datetime\",\n     \"NamedAgg\",\n+    \"api\",\n ]\n \n del pandas, Engine, Parameter\n", "issue": "AttributeError: module 'modin.pandas' has no attribute 'api'\n### System information\r\n- **OS Platform and Distribution (e.g., Linux Ubuntu 16.04)**: Linux Ubuntu 20.04\r\n- **Modin version** (`modin.__version__`): 0.10.2\r\n- **Python version**: 3.8.10\r\n- **Code we can use to reproduce**: \r\n\r\nimport modin.pandas as pd\r\n\r\nindexer = pd.api.indexers.FixedForwardWindowIndexer(window_size=d)\r\ndf['new'] = df['rough'].rolling(window=indexer).apply(np.prod, raw=True) - 1\r\n\r\n\r\n### Describe the problem\r\nmodin should have defaulted to pandas in case this functionality is not implemented instead of throwing an error.\r\n\r\n### Source code / logs\r\n    indexer = pd.api.indexers.FixedForwardWindowIndexer(window_size=d)\r\nAttributeError: module 'modin.pandas' has no attribute 'api'\n", "before_files": [{"content": "# Licensed to Modin Development Team under one or more contributor license agreements.\n# See the NOTICE file distributed with this work for additional information regarding\n# copyright ownership.  The Modin Development Team licenses this file to you under the\n# Apache License, Version 2.0 (the \"License\"); you may not use this file except in\n# compliance with the License.  You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software distributed under\n# the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n# ANY KIND, either express or implied. See the License for the specific language\n# governing permissions and limitations under the License.\n\nimport pandas\n\n__pandas_version__ = \"1.3.3\"\n\nif pandas.__version__ != __pandas_version__:\n    import warnings\n\n    warnings.warn(\n        \"The pandas version installed {} does not match the supported pandas version in\"\n        \" Modin {}. This may cause undesired side effects!\".format(\n            pandas.__version__, __pandas_version__\n        )\n    )\n\nfrom pandas import (\n    eval,\n    cut,\n    factorize,\n    test,\n    qcut,\n    date_range,\n    period_range,\n    Index,\n    MultiIndex,\n    CategoricalIndex,\n    bdate_range,\n    DatetimeIndex,\n    Timedelta,\n    Timestamp,\n    to_timedelta,\n    set_eng_float_format,\n    options,\n    Flags,\n    set_option,\n    NaT,\n    PeriodIndex,\n    Categorical,\n    Interval,\n    UInt8Dtype,\n    UInt16Dtype,\n    UInt32Dtype,\n    UInt64Dtype,\n    SparseDtype,\n    Int8Dtype,\n    Int16Dtype,\n    Int32Dtype,\n    Int64Dtype,\n    Float32Dtype,\n    Float64Dtype,\n    StringDtype,\n    BooleanDtype,\n    CategoricalDtype,\n    DatetimeTZDtype,\n    IntervalDtype,\n    PeriodDtype,\n    RangeIndex,\n    Int64Index,\n    UInt64Index,\n    Float64Index,\n    TimedeltaIndex,\n    IntervalIndex,\n    IndexSlice,\n    Grouper,\n    array,\n    Period,\n    show_versions,\n    DateOffset,\n    timedelta_range,\n    infer_freq,\n    interval_range,\n    ExcelWriter,\n    datetime,\n    NamedAgg,\n    NA,\n)\nimport os\nimport multiprocessing\n\nfrom modin.config import Engine, Parameter\n\n# Set this so that Pandas doesn't try to multithread by itself\nos.environ[\"OMP_NUM_THREADS\"] = \"1\"\n\n_is_first_update = {}\ndask_client = None\n_NOINIT_ENGINES = {\n    \"Python\",\n}  # engines that don't require initialization, useful for unit tests\n\n\ndef _update_engine(publisher: Parameter):\n    global dask_client\n    from modin.config import Backend, CpuCount\n\n    if publisher.get() == \"Ray\":\n        if _is_first_update.get(\"Ray\", True):\n            from modin.engines.ray.utils import initialize_ray\n\n            initialize_ray()\n    elif publisher.get() == \"Native\":\n        # With OmniSci backend there is only a single worker per node\n        # and we allow it to work on all cores.\n        if Backend.get() == \"Omnisci\":\n            os.environ[\"OMP_NUM_THREADS\"] = str(CpuCount.get())\n        else:\n            raise ValueError(\n                f\"Backend should be 'Omnisci' with 'Native' engine, but provided {Backend.get()}.\"\n            )\n    elif publisher.get() == \"Dask\":\n        if _is_first_update.get(\"Dask\", True):\n            from modin.engines.dask.utils import initialize_dask\n\n            initialize_dask()\n    elif publisher.get() == \"Cloudray\":\n        from modin.experimental.cloud import get_connection\n\n        conn = get_connection()\n        if _is_first_update.get(\"Cloudray\", True):\n\n            @conn.teleport\n            def init_remote_ray(partition):\n                from ray import ray_constants\n                import modin\n                from modin.engines.ray.utils import initialize_ray\n\n                modin.set_backends(\"Ray\", partition)\n                initialize_ray(\n                    override_is_cluster=True,\n                    override_redis_address=f\"localhost:{ray_constants.DEFAULT_PORT}\",\n                    override_redis_password=ray_constants.REDIS_DEFAULT_PASSWORD,\n                )\n\n            init_remote_ray(Backend.get())\n            # import FactoryDispatcher here to initialize IO class\n            # so it doesn't skew read_csv() timings later on\n            import modin.data_management.factories.dispatcher  # noqa: F401\n        else:\n            get_connection().modules[\"modin\"].set_backends(\"Ray\", Backend.get())\n    elif publisher.get() == \"Cloudpython\":\n        from modin.experimental.cloud import get_connection\n\n        get_connection().modules[\"modin\"].set_backends(\"Python\")\n    elif publisher.get() == \"Cloudnative\":\n        from modin.experimental.cloud import get_connection\n\n        assert (\n            Backend.get() == \"Omnisci\"\n        ), f\"Backend should be 'Omnisci' with 'Cloudnative' engine, but provided {Backend.get()}.\"\n        get_connection().modules[\"modin\"].set_backends(\"Native\", \"OmniSci\")\n\n    elif publisher.get() not in _NOINIT_ENGINES:\n        raise ImportError(\"Unrecognized execution engine: {}.\".format(publisher.get()))\n\n    _is_first_update[publisher.get()] = False\n\n\nfrom .. import __version__\nfrom .dataframe import DataFrame\nfrom .io import (\n    read_csv,\n    read_parquet,\n    read_json,\n    read_html,\n    read_clipboard,\n    read_excel,\n    read_hdf,\n    read_feather,\n    read_stata,\n    read_sas,\n    read_pickle,\n    read_sql,\n    read_gbq,\n    read_table,\n    read_fwf,\n    read_sql_table,\n    read_sql_query,\n    read_spss,\n    ExcelFile,\n    to_pickle,\n    HDFStore,\n    json_normalize,\n    read_orc,\n    read_xml,\n)\nfrom .series import Series\nfrom .general import (\n    concat,\n    isna,\n    isnull,\n    merge,\n    merge_asof,\n    merge_ordered,\n    pivot_table,\n    notnull,\n    notna,\n    pivot,\n    to_numeric,\n    to_datetime,\n    unique,\n    value_counts,\n    get_dummies,\n    melt,\n    crosstab,\n    lreshape,\n    wide_to_long,\n)\nfrom .plotting import Plotting as plotting\n\n__all__ = [\n    \"DataFrame\",\n    \"Series\",\n    \"read_csv\",\n    \"read_parquet\",\n    \"read_json\",\n    \"read_html\",\n    \"read_clipboard\",\n    \"read_excel\",\n    \"read_hdf\",\n    \"read_feather\",\n    \"read_stata\",\n    \"read_sas\",\n    \"read_pickle\",\n    \"read_sql\",\n    \"read_gbq\",\n    \"read_table\",\n    \"read_spss\",\n    \"read_orc\",\n    \"json_normalize\",\n    \"concat\",\n    \"eval\",\n    \"cut\",\n    \"factorize\",\n    \"test\",\n    \"qcut\",\n    \"to_datetime\",\n    \"get_dummies\",\n    \"isna\",\n    \"isnull\",\n    \"merge\",\n    \"pivot_table\",\n    \"date_range\",\n    \"Index\",\n    \"MultiIndex\",\n    \"Series\",\n    \"bdate_range\",\n    \"period_range\",\n    \"DatetimeIndex\",\n    \"to_timedelta\",\n    \"set_eng_float_format\",\n    \"options\",\n    \"set_option\",\n    \"CategoricalIndex\",\n    \"Timedelta\",\n    \"Timestamp\",\n    \"NaT\",\n    \"PeriodIndex\",\n    \"Categorical\",\n    \"__version__\",\n    \"melt\",\n    \"crosstab\",\n    \"plotting\",\n    \"Interval\",\n    \"UInt8Dtype\",\n    \"UInt16Dtype\",\n    \"UInt32Dtype\",\n    \"UInt64Dtype\",\n    \"SparseDtype\",\n    \"Int8Dtype\",\n    \"Int16Dtype\",\n    \"Int32Dtype\",\n    \"Int64Dtype\",\n    \"CategoricalDtype\",\n    \"DatetimeTZDtype\",\n    \"IntervalDtype\",\n    \"PeriodDtype\",\n    \"BooleanDtype\",\n    \"StringDtype\",\n    \"NA\",\n    \"RangeIndex\",\n    \"Int64Index\",\n    \"UInt64Index\",\n    \"Float64Index\",\n    \"TimedeltaIndex\",\n    \"IntervalIndex\",\n    \"IndexSlice\",\n    \"Grouper\",\n    \"array\",\n    \"Period\",\n    \"show_versions\",\n    \"DateOffset\",\n    \"timedelta_range\",\n    \"infer_freq\",\n    \"interval_range\",\n    \"ExcelWriter\",\n    \"read_fwf\",\n    \"read_sql_table\",\n    \"read_sql_query\",\n    \"ExcelFile\",\n    \"to_pickle\",\n    \"HDFStore\",\n    \"lreshape\",\n    \"wide_to_long\",\n    \"merge_asof\",\n    \"merge_ordered\",\n    \"notnull\",\n    \"notna\",\n    \"pivot\",\n    \"to_numeric\",\n    \"unique\",\n    \"value_counts\",\n    \"datetime\",\n    \"NamedAgg\",\n]\n\ndel pandas, Engine, Parameter\n", "path": "modin/pandas/__init__.py"}], "after_files": [{"content": "# Licensed to Modin Development Team under one or more contributor license agreements.\n# See the NOTICE file distributed with this work for additional information regarding\n# copyright ownership.  The Modin Development Team licenses this file to you under the\n# Apache License, Version 2.0 (the \"License\"); you may not use this file except in\n# compliance with the License.  You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software distributed under\n# the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n# ANY KIND, either express or implied. See the License for the specific language\n# governing permissions and limitations under the License.\n\nimport pandas\n\n__pandas_version__ = \"1.3.3\"\n\nif pandas.__version__ != __pandas_version__:\n    import warnings\n\n    warnings.warn(\n        \"The pandas version installed {} does not match the supported pandas version in\"\n        \" Modin {}. This may cause undesired side effects!\".format(\n            pandas.__version__, __pandas_version__\n        )\n    )\n\nfrom pandas import (\n    eval,\n    cut,\n    factorize,\n    test,\n    qcut,\n    date_range,\n    period_range,\n    Index,\n    MultiIndex,\n    CategoricalIndex,\n    bdate_range,\n    DatetimeIndex,\n    Timedelta,\n    Timestamp,\n    to_timedelta,\n    set_eng_float_format,\n    options,\n    Flags,\n    set_option,\n    NaT,\n    PeriodIndex,\n    Categorical,\n    Interval,\n    UInt8Dtype,\n    UInt16Dtype,\n    UInt32Dtype,\n    UInt64Dtype,\n    SparseDtype,\n    Int8Dtype,\n    Int16Dtype,\n    Int32Dtype,\n    Int64Dtype,\n    Float32Dtype,\n    Float64Dtype,\n    StringDtype,\n    BooleanDtype,\n    CategoricalDtype,\n    DatetimeTZDtype,\n    IntervalDtype,\n    PeriodDtype,\n    RangeIndex,\n    Int64Index,\n    UInt64Index,\n    Float64Index,\n    TimedeltaIndex,\n    IntervalIndex,\n    IndexSlice,\n    Grouper,\n    array,\n    Period,\n    show_versions,\n    DateOffset,\n    timedelta_range,\n    infer_freq,\n    interval_range,\n    ExcelWriter,\n    datetime,\n    NamedAgg,\n    NA,\n    api,\n)\nimport os\nimport multiprocessing\n\nfrom modin.config import Engine, Parameter\n\n# Set this so that Pandas doesn't try to multithread by itself\nos.environ[\"OMP_NUM_THREADS\"] = \"1\"\n\n_is_first_update = {}\ndask_client = None\n_NOINIT_ENGINES = {\n    \"Python\",\n}  # engines that don't require initialization, useful for unit tests\n\n\ndef _update_engine(publisher: Parameter):\n    global dask_client\n    from modin.config import Backend, CpuCount\n\n    if publisher.get() == \"Ray\":\n        if _is_first_update.get(\"Ray\", True):\n            from modin.engines.ray.utils import initialize_ray\n\n            initialize_ray()\n    elif publisher.get() == \"Native\":\n        # With OmniSci backend there is only a single worker per node\n        # and we allow it to work on all cores.\n        if Backend.get() == \"Omnisci\":\n            os.environ[\"OMP_NUM_THREADS\"] = str(CpuCount.get())\n        else:\n            raise ValueError(\n                f\"Backend should be 'Omnisci' with 'Native' engine, but provided {Backend.get()}.\"\n            )\n    elif publisher.get() == \"Dask\":\n        if _is_first_update.get(\"Dask\", True):\n            from modin.engines.dask.utils import initialize_dask\n\n            initialize_dask()\n    elif publisher.get() == \"Cloudray\":\n        from modin.experimental.cloud import get_connection\n\n        conn = get_connection()\n        if _is_first_update.get(\"Cloudray\", True):\n\n            @conn.teleport\n            def init_remote_ray(partition):\n                from ray import ray_constants\n                import modin\n                from modin.engines.ray.utils import initialize_ray\n\n                modin.set_backends(\"Ray\", partition)\n                initialize_ray(\n                    override_is_cluster=True,\n                    override_redis_address=f\"localhost:{ray_constants.DEFAULT_PORT}\",\n                    override_redis_password=ray_constants.REDIS_DEFAULT_PASSWORD,\n                )\n\n            init_remote_ray(Backend.get())\n            # import FactoryDispatcher here to initialize IO class\n            # so it doesn't skew read_csv() timings later on\n            import modin.data_management.factories.dispatcher  # noqa: F401\n        else:\n            get_connection().modules[\"modin\"].set_backends(\"Ray\", Backend.get())\n    elif publisher.get() == \"Cloudpython\":\n        from modin.experimental.cloud import get_connection\n\n        get_connection().modules[\"modin\"].set_backends(\"Python\")\n    elif publisher.get() == \"Cloudnative\":\n        from modin.experimental.cloud import get_connection\n\n        assert (\n            Backend.get() == \"Omnisci\"\n        ), f\"Backend should be 'Omnisci' with 'Cloudnative' engine, but provided {Backend.get()}.\"\n        get_connection().modules[\"modin\"].set_backends(\"Native\", \"OmniSci\")\n\n    elif publisher.get() not in _NOINIT_ENGINES:\n        raise ImportError(\"Unrecognized execution engine: {}.\".format(publisher.get()))\n\n    _is_first_update[publisher.get()] = False\n\n\nfrom .. import __version__\nfrom .dataframe import DataFrame\nfrom .io import (\n    read_csv,\n    read_parquet,\n    read_json,\n    read_html,\n    read_clipboard,\n    read_excel,\n    read_hdf,\n    read_feather,\n    read_stata,\n    read_sas,\n    read_pickle,\n    read_sql,\n    read_gbq,\n    read_table,\n    read_fwf,\n    read_sql_table,\n    read_sql_query,\n    read_spss,\n    ExcelFile,\n    to_pickle,\n    HDFStore,\n    json_normalize,\n    read_orc,\n    read_xml,\n)\nfrom .series import Series\nfrom .general import (\n    concat,\n    isna,\n    isnull,\n    merge,\n    merge_asof,\n    merge_ordered,\n    pivot_table,\n    notnull,\n    notna,\n    pivot,\n    to_numeric,\n    to_datetime,\n    unique,\n    value_counts,\n    get_dummies,\n    melt,\n    crosstab,\n    lreshape,\n    wide_to_long,\n)\nfrom .plotting import Plotting as plotting\n\n__all__ = [\n    \"DataFrame\",\n    \"Series\",\n    \"read_csv\",\n    \"read_parquet\",\n    \"read_json\",\n    \"read_html\",\n    \"read_clipboard\",\n    \"read_excel\",\n    \"read_hdf\",\n    \"read_feather\",\n    \"read_stata\",\n    \"read_sas\",\n    \"read_pickle\",\n    \"read_sql\",\n    \"read_gbq\",\n    \"read_table\",\n    \"read_spss\",\n    \"read_orc\",\n    \"json_normalize\",\n    \"concat\",\n    \"eval\",\n    \"cut\",\n    \"factorize\",\n    \"test\",\n    \"qcut\",\n    \"to_datetime\",\n    \"get_dummies\",\n    \"isna\",\n    \"isnull\",\n    \"merge\",\n    \"pivot_table\",\n    \"date_range\",\n    \"Index\",\n    \"MultiIndex\",\n    \"Series\",\n    \"bdate_range\",\n    \"period_range\",\n    \"DatetimeIndex\",\n    \"to_timedelta\",\n    \"set_eng_float_format\",\n    \"options\",\n    \"set_option\",\n    \"CategoricalIndex\",\n    \"Timedelta\",\n    \"Timestamp\",\n    \"NaT\",\n    \"PeriodIndex\",\n    \"Categorical\",\n    \"__version__\",\n    \"melt\",\n    \"crosstab\",\n    \"plotting\",\n    \"Interval\",\n    \"UInt8Dtype\",\n    \"UInt16Dtype\",\n    \"UInt32Dtype\",\n    \"UInt64Dtype\",\n    \"SparseDtype\",\n    \"Int8Dtype\",\n    \"Int16Dtype\",\n    \"Int32Dtype\",\n    \"Int64Dtype\",\n    \"CategoricalDtype\",\n    \"DatetimeTZDtype\",\n    \"IntervalDtype\",\n    \"PeriodDtype\",\n    \"BooleanDtype\",\n    \"StringDtype\",\n    \"NA\",\n    \"RangeIndex\",\n    \"Int64Index\",\n    \"UInt64Index\",\n    \"Float64Index\",\n    \"TimedeltaIndex\",\n    \"IntervalIndex\",\n    \"IndexSlice\",\n    \"Grouper\",\n    \"array\",\n    \"Period\",\n    \"show_versions\",\n    \"DateOffset\",\n    \"timedelta_range\",\n    \"infer_freq\",\n    \"interval_range\",\n    \"ExcelWriter\",\n    \"read_fwf\",\n    \"read_sql_table\",\n    \"read_sql_query\",\n    \"ExcelFile\",\n    \"to_pickle\",\n    \"HDFStore\",\n    \"lreshape\",\n    \"wide_to_long\",\n    \"merge_asof\",\n    \"merge_ordered\",\n    \"notnull\",\n    \"notna\",\n    \"pivot\",\n    \"to_numeric\",\n    \"unique\",\n    \"value_counts\",\n    \"datetime\",\n    \"NamedAgg\",\n    \"api\",\n]\n\ndel pandas, Engine, Parameter\n", "path": "modin/pandas/__init__.py"}]}