:orphan: Docstring Guide =============== We recommend reading the `Sphinx tutorial`_. It is very short and it lists all the scenario you are likely to encounter when writing code. That said, we do format the docstring in a slightly more compact way than what is presented in the tutorial. The type of the parameters and returned variable is encapsulated in the description as follows: .. code-block:: python """ :param [ParamType] [ParamName]: [ParamDescription], defaults to [DefaultParamVal] :return: (*[ReturnType]*) -- [ReturnDescription] """ When functions or methods are mentioned in the docstring, those should be referenced. For example, the description of the ``uv1`` parameter in the ``angular_distance`` function located in the ``powersimdata.utility.distance`` module refers to the ``ll2uv`` function defined in the same module. .. code-block:: python def angular_distance(uv1, uv2): """Calculate the angular distance between two vectors. :param list uv1: 3-components vector as returned by :func:`ll2uv`. :param list uv2: 3-components vector as returned by :func:`ll2uv`. :return: (*float*) -- angle (in degrees). """ ... If you refer to a function (or a class using ``:py:class:``) that is defined in a different module, you will need to use the absolute path as shown below: .. code-block:: python def gaussian(data, wind_farm, inplace=True, curve="state"): """Impute missing data using gaussian distributions of U & V. For each missing entry, sample U & V based on mean and covariance of non-missing entries that have the same location, same month, and same hour. :param pandas.DataFrame data: data frame as returned by :py:func:`prereise.gather.winddata.rap.rap.retrieve_data`. :param pandas.DataFrame wind_farm: data frame of wind farms. :param bool inplace: should the imputation be done in place. :param str curve: 'state' to use the state average, otherwise named curve. :return: (*pandas.DataFrame*) -- data frame with missing entries imputed. """ ... The function `gaussian` is defined in the ``prereise.gather.winddata.rap.impute`` module and refers to the ``retrieve_data`` function in a different module. Finally, you can use an external link in your docstring. It will be active in the generated documentation if formatted as follows .. code-block:: python class EIAgov: """Copied from `this link `_. :param str token: EIA token. :param list series: id code(s) of the series to be downloaded. """ ... In other words, it will be shown as `this link `_. .. _Sphinx tutorial: https://sphinx-rtd-tutorial.readthedocs.io/en/latest/docstrings.html