2.2. Interactive Documentation StringsΒΆ
In addition to this documentation and the examples demonstrated in
$PYCART/examples/
, documentation for individual Python functions can be
accessed interactively within any Python shell. This is particularly helpful
for advanced users who would like to remember what are the inputs and outputs
to a function. Using standard Python nomenclature, the docstrings (short for
documentation strings) are generally informative.
>>> import cape.convert >>> print(cape.convert.AlphaTPhi2AlphaBeta.__doc__) Convert total angle of attack and roll to alpha, beta :Call: >>> alpha, beta = cape.AlphaTPhi2AlphaBeta(alpha_t, beta) :Inputs: *alpha_t*: :class:`float` or :class:`numpy.array` Total angle of attack *phi*: :class:`float` or :class:`numpy.array` Total roll angle :Outputs: *alpha*: :class:`float` or :class:`numpy.array` Angle of attack *beta*: :class:`float` or :class:`numpy.array` Sideslip angle :Versions: * 2014-06-02 ``@ddalle``: Version 1.0
These documentation strings always list the inputs and outputs of a function and assist the user in properly using functions. The help messages are written in the modified version of reStructuredText used in Sphinx documentation, which contains extra information for the user. There is more discussion of this syntax below.
An even more informative tool is the built-in Python function help()
,
which can take as an argument a function, class, or module. For example
>>> import cape.convert >>> help(cape.convert.AlphaTPhi2AlphaBeta) Help on function AlphaTPhi2AlphaBeta in module cape.convert: AlphaTPhi2AlphaBeta(alpha_t, phi) Convert total angle of attack and roll to alpha, beta :Call: >>> alpha, beta = cape.AlphaTPhi2AlphaBeta(alpha_t, beta) :Inputs: *alpha_t*: :class:`float` or :class:`numpy.array` Total angle of attack *phi*: :class:`float` or :class:`numpy.array` Total roll angle :Outputs: *alpha*: :class:`float` or :class:`numpy.array` Angle of attack *beta*: :class:`float` or :class:`numpy.array` Sideslip angle :Versions: * 2014-06-02 ``@ddalle``: Version 1.0
Another highly recommended tool for advanced scripting is IPython. This package allows fuller tab completion, which reduces how many commands need to be memorized. Another way to see these help messages can be seen below.
In[1]: import cape.convert In[2]: ?cape.convert.AlphaTPhe2AlphaBeta Signature: cape.convert.AlphaTPhi2AlphaBeta(alpha_t, phi) Docstring: Convert total angle of attack and roll to alpha, beta :Call: >>> alpha, beta = cape.AlphaTPhi2AlphaBeta(alpha_t, beta) :Inputs: *alpha_t*: :class:`float` | :class:`numpy.array` Total angle of attack *phi*: :class:`float` | :class:`numpy.array` Total roll angle :Outputs: *alpha*: :class:`float` | :class:`numpy.array` Angle of attack *beta*: :class:`float` | :class:`numpy.array` Sideslip angle :Versions: * 2014-06-02 ``@ddalle``: Version 1.0
Of these three options, the help()
is the most informative for exploring
totally unknown modules and classes. It will list, among other things, all of
the functions and/or classes within the module/class. So for example, the
help()
on the module cape.convert
looks like:
>>> import cape.convert >>> help(cape.convert) Help on module cape.convert in cape: NAME cape.convert DESCRIPTION :mod:`cape.convert`: Unit and angle conversion utilities ========================================================= Perform conversions such as (alpha total, phi) to (alpha, beta). It also contains various utilities such as calculating Sutherland's law for estimating viscosity with the standard parameters, which are commonly needed tools for CFD solvers. FUNCTIONS AlphaBeta2AlphaMPhi(alpha, beta) Convert angle of attack and sideslip to maneuver axis ...
And it goes on much longer, using (at least on Mac and Linux systems) the
more
editor to provide a simple searchable interface to all of the
documentation for the module cape.convert
.