We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
is sm.open_help ever defined?
Near the end of `statsmodels.api`:

```
chmpath = os.path.join(os.path.dirname(__file__), 'statsmodelsdoc.chm')
if os.path.exists(chmpath):
    def open_help(chmpath=chmpath):
        from subprocess import Popen

        p = Popen(chmpath, shell=True)
```

I'm not familiar with "statsmodelsdoc.chm".  Under what conditions does that exist?

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `statsmodels/api.py`
Content:
```
1 # -*- coding: utf-8 -*-
2 # flake8: noqa
3 import os
4 
5 from . import iolib
6 from . import datasets
7 from . import tools
8 from .tools.tools import add_constant, categorical
9 from . import regression
10 from .regression.linear_model import OLS, GLS, WLS, GLSAR
11 from .regression.recursive_ls import RecursiveLS
12 from .regression.quantile_regression import QuantReg
13 from .regression.mixed_linear_model import MixedLM
14 from .genmod import api as genmod
15 from .genmod.api import (GLM, GEE, OrdinalGEE, NominalGEE, families,
16                          cov_struct,
17                          BinomialBayesMixedGLM, PoissonBayesMixedGLM)
18 from . import robust
19 from .robust.robust_linear_model import RLM
20 from .discrete.discrete_model import (Poisson, Logit, Probit,
21                                       MNLogit, NegativeBinomial,
22                                       GeneralizedPoisson,
23                                       NegativeBinomialP)
24 from .discrete.count_model import (ZeroInflatedPoisson,
25                                    ZeroInflatedGeneralizedPoisson,
26                                    ZeroInflatedNegativeBinomialP)
27 from .tsa import api as tsa
28 from .duration.survfunc import SurvfuncRight
29 from .duration.hazard_regression import PHReg
30 from .imputation.mice import MICE, MICEData
31 from .imputation.bayes_mi import BayesGaussMI, MI
32 from .nonparametric import api as nonparametric
33 from . import distributions
34 from .__init__ import test
35 
36 from .gam.generalized_additive_model import GLMGam
37 from .gam import api as gam
38 from .graphics.gofplots import qqplot, qqplot_2samples, qqline, ProbPlot
39 from .graphics import api as graphics
40 from .stats import api as stats
41 from .emplike import api as emplike
42 from .duration import api as duration
43 from .multivariate.pca import PCA
44 from .multivariate.manova import MANOVA
45 from .multivariate.factor import Factor
46 from .multivariate import api as multivariate
47 
48 from .formula import api as formula
49 
50 from .iolib.smpickle import load_pickle
51 
52 from .tools.print_version import show_versions
53 from .tools.web import webdoc
54 
55 load = load_pickle
56 
57 chmpath = os.path.join(os.path.dirname(__file__), 'statsmodelsdoc.chm')
58 if os.path.exists(chmpath):
59     # As of 0.10.0, this is not reached.  See GH#5134
60 
61     def open_help(chmpath=chmpath):
62         from subprocess import Popen
63 
64         p = Popen(chmpath, shell=True)
65 
66 del os
67 del chmpath
68 
69 from ._version import get_versions
70 __version__ = get_versions()['version']
71 del get_versions
72
```
--- 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/statsmodels/api.py b/statsmodels/api.py
--- a/statsmodels/api.py
+++ b/statsmodels/api.py
@@ -54,18 +54,6 @@
 
 load = load_pickle
 
-chmpath = os.path.join(os.path.dirname(__file__), 'statsmodelsdoc.chm')
-if os.path.exists(chmpath):
-    # As of 0.10.0, this is not reached.  See GH#5134
-
-    def open_help(chmpath=chmpath):
-        from subprocess import Popen
-
-        p = Popen(chmpath, shell=True)
-
-del os
-del chmpath
-
 from ._version import get_versions
 __version__ = get_versions()['version']
 del get_versions

{"golden_diff": "diff --git a/statsmodels/api.py b/statsmodels/api.py\n--- a/statsmodels/api.py\n+++ b/statsmodels/api.py\n@@ -54,18 +54,6 @@\n \n load = load_pickle\n \n-chmpath = os.path.join(os.path.dirname(__file__), 'statsmodelsdoc.chm')\n-if os.path.exists(chmpath):\n-    # As of 0.10.0, this is not reached.  See GH#5134\n-\n-    def open_help(chmpath=chmpath):\n-        from subprocess import Popen\n-\n-        p = Popen(chmpath, shell=True)\n-\n-del os\n-del chmpath\n-\n from ._version import get_versions\n __version__ = get_versions()['version']\n del get_versions\n", "issue": "is sm.open_help ever defined?\nNear the end of `statsmodels.api`:\r\n\r\n```\r\nchmpath = os.path.join(os.path.dirname(__file__), 'statsmodelsdoc.chm')\r\nif os.path.exists(chmpath):\r\n    def open_help(chmpath=chmpath):\r\n        from subprocess import Popen\r\n\r\n        p = Popen(chmpath, shell=True)\r\n```\r\n\r\nI'm not familiar with \"statsmodelsdoc.chm\".  Under what conditions does that exist?\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n# flake8: noqa\nimport os\n\nfrom . import iolib\nfrom . import datasets\nfrom . import tools\nfrom .tools.tools import add_constant, categorical\nfrom . import regression\nfrom .regression.linear_model import OLS, GLS, WLS, GLSAR\nfrom .regression.recursive_ls import RecursiveLS\nfrom .regression.quantile_regression import QuantReg\nfrom .regression.mixed_linear_model import MixedLM\nfrom .genmod import api as genmod\nfrom .genmod.api import (GLM, GEE, OrdinalGEE, NominalGEE, families,\n                         cov_struct,\n                         BinomialBayesMixedGLM, PoissonBayesMixedGLM)\nfrom . import robust\nfrom .robust.robust_linear_model import RLM\nfrom .discrete.discrete_model import (Poisson, Logit, Probit,\n                                      MNLogit, NegativeBinomial,\n                                      GeneralizedPoisson,\n                                      NegativeBinomialP)\nfrom .discrete.count_model import (ZeroInflatedPoisson,\n                                   ZeroInflatedGeneralizedPoisson,\n                                   ZeroInflatedNegativeBinomialP)\nfrom .tsa import api as tsa\nfrom .duration.survfunc import SurvfuncRight\nfrom .duration.hazard_regression import PHReg\nfrom .imputation.mice import MICE, MICEData\nfrom .imputation.bayes_mi import BayesGaussMI, MI\nfrom .nonparametric import api as nonparametric\nfrom . import distributions\nfrom .__init__ import test\n\nfrom .gam.generalized_additive_model import GLMGam\nfrom .gam import api as gam\nfrom .graphics.gofplots import qqplot, qqplot_2samples, qqline, ProbPlot\nfrom .graphics import api as graphics\nfrom .stats import api as stats\nfrom .emplike import api as emplike\nfrom .duration import api as duration\nfrom .multivariate.pca import PCA\nfrom .multivariate.manova import MANOVA\nfrom .multivariate.factor import Factor\nfrom .multivariate import api as multivariate\n\nfrom .formula import api as formula\n\nfrom .iolib.smpickle import load_pickle\n\nfrom .tools.print_version import show_versions\nfrom .tools.web import webdoc\n\nload = load_pickle\n\nchmpath = os.path.join(os.path.dirname(__file__), 'statsmodelsdoc.chm')\nif os.path.exists(chmpath):\n    # As of 0.10.0, this is not reached.  See GH#5134\n\n    def open_help(chmpath=chmpath):\n        from subprocess import Popen\n\n        p = Popen(chmpath, shell=True)\n\ndel os\ndel chmpath\n\nfrom ._version import get_versions\n__version__ = get_versions()['version']\ndel get_versions\n", "path": "statsmodels/api.py"}], "after_files": [{"content": "# -*- coding: utf-8 -*-\n# flake8: noqa\nimport os\n\nfrom . import iolib\nfrom . import datasets\nfrom . import tools\nfrom .tools.tools import add_constant, categorical\nfrom . import regression\nfrom .regression.linear_model import OLS, GLS, WLS, GLSAR\nfrom .regression.recursive_ls import RecursiveLS\nfrom .regression.quantile_regression import QuantReg\nfrom .regression.mixed_linear_model import MixedLM\nfrom .genmod import api as genmod\nfrom .genmod.api import (GLM, GEE, OrdinalGEE, NominalGEE, families,\n                         cov_struct,\n                         BinomialBayesMixedGLM, PoissonBayesMixedGLM)\nfrom . import robust\nfrom .robust.robust_linear_model import RLM\nfrom .discrete.discrete_model import (Poisson, Logit, Probit,\n                                      MNLogit, NegativeBinomial,\n                                      GeneralizedPoisson,\n                                      NegativeBinomialP)\nfrom .discrete.count_model import (ZeroInflatedPoisson,\n                                   ZeroInflatedGeneralizedPoisson,\n                                   ZeroInflatedNegativeBinomialP)\nfrom .tsa import api as tsa\nfrom .duration.survfunc import SurvfuncRight\nfrom .duration.hazard_regression import PHReg\nfrom .imputation.mice import MICE, MICEData\nfrom .imputation.bayes_mi import BayesGaussMI, MI\nfrom .nonparametric import api as nonparametric\nfrom . import distributions\nfrom .__init__ import test\n\nfrom .gam.generalized_additive_model import GLMGam\nfrom .gam import api as gam\nfrom .graphics.gofplots import qqplot, qqplot_2samples, qqline, ProbPlot\nfrom .graphics import api as graphics\nfrom .stats import api as stats\nfrom .emplike import api as emplike\nfrom .duration import api as duration\nfrom .multivariate.pca import PCA\nfrom .multivariate.manova import MANOVA\nfrom .multivariate.factor import Factor\nfrom .multivariate import api as multivariate\n\nfrom .formula import api as formula\n\nfrom .iolib.smpickle import load_pickle\n\nfrom .tools.print_version import show_versions\nfrom .tools.web import webdoc\n\nload = load_pickle\n\nfrom ._version import get_versions\n__version__ = get_versions()['version']\ndel get_versions\n", "path": "statsmodels/api.py"}]}