Source code for statsmodels.tools.web
"""
Provides a function to open the system browser to either search or go directly
to a function's reference
"""
from urllib.parse import urlencode
import webbrowser
from statsmodels import __version__
BASE_URL = "https://www.statsmodels.org/"
def _generate_url(func, stable):
"""
Parse inputs and return a correctly formatted URL or raises ValueError
if the input is not understandable
"""
url = BASE_URL
if stable:
url += "stable/"
else:
url += "devel/"
if func is None:
return url
elif isinstance(func, str):
url += "search.html?"
url += urlencode({"q": func})
url += "&check_keywords=yes&area=default"
else:
try:
func_name = func.__name__
func_module = func.__module__
if not func_module.startswith("statsmodels."):
raise ValueError("Function must be from statsmodels")
url += "generated/"
url += func_module + "." + func_name + ".html"
except AttributeError as exc:
raise ValueError("Input not understood") from exc
return url
[docs]
def webdoc(func=None, stable=None):
"""
Opens a browser and displays online documentation
Parameters
----------
func : {str, callable}
Either a string to search the documentation or a function
stable : bool
Flag indicating whether to use the stable documentation (True) or
the development documentation (False). If not provided, opens
the stable documentation if the current version of statsmodels is a
release
Examples
--------
>>> import statsmodels.api as sm
Documentation site
>>> sm.webdoc()
Search for glm in docs
>>> sm.webdoc('glm')
Go to current generated help for OLS
>>> sm.webdoc(sm.OLS, stable=False)
Notes
-----
By default, open stable documentation if the current version of
statsmodels is a release. Otherwise opens the development documentation.
Uses the default system browser.
"""
stable = __version__ if "dev" not in __version__ else stable
url_or_error = _generate_url(func, stable)
webbrowser.open(url_or_error)