NumpyDoc:如何解析标签?

时间:2015-04-01 22:52:04

标签: python spyder docstring

我使用Spyder IDE(在Mac OS上为v.2.1.11)并编写一些代码,并为函数编写DocString(NumpyDoc格式),无法弄清楚为什么Spyder Object Inspector 以这种奇怪的方式格式化缩进行。

对于像下面那样的文档字符串,在" Calc' by sellmeier ... "之后的论文引用缩进,这会导致奇怪的行为:

def AlInGaAs(x, wl):
'''
Returns the refractive index of ~Al(x)Ga(1-x)In(1-x-y)As (lattice-matched to InP) at the specified wavelength, wl (in microns) and Aluminum content (x=0.0-1.0).  

For lattice-matching, the actual mole ratio, x, is defined as so:
InP-matched X: (Al48 In52 As)_X --> (Ga47 In53 As)_1-X

Valid for wavelengths: 0.900 - 2.100 um  &  x: 0.3 - 1.0

Calc'd by sellmeier equation, with params from
    M. J. Mondry, D. I. Babic, J. E. Bowers, and L. A. Coldren, "Refractive indexes of (Al,Ga,In)As epilayers on InP for optoelectronic applications," Phot. Tech. Lett., vol. 4, no. 6, pp. 627-630, 1992

Parameters
----------
x: float
    Mole ratio of Al, as in: Al(x) Ga(1-x) In(1-x-y) As.  Also varies In slightly for lattice-matching.

wl: float
    wavelength in microns.

...

'''

上面的DocString产生以下输出(Spyder"对象检查器" /帮助面板的屏幕截图),带有意外的粗体& " M上的缩进/列表编号。 J. Mondry,D。I. Babic ...... "文本:

Strange indentation and listing of the Paper Reference.

删除缩进时,如下:

def AlInGaAs(x, wl):
'''
Returns the refractive index of ~Al(x)Ga(1-x)In(1-x-y)As (lattice-matched to InP) at the specified wavelength, wl (in microns) and Aluminum content (x=0.0-1.0).  

For lattice-matching, the actual mole ratio, x, is defined as so:
InP-matched X: (Al48 In52 As)_X --> (Ga47 In53 As)_1-X

Valid for wavelengths: 0.900 - 2.100 um  &  x: 0.3 - 1.0

Calc'd by sellmeier equation, with params from
*** INDENT REMOVED BELOW ***
M. J. Mondry, D. I. Babic, J. E. Bowers, and L. A. Coldren, "Refractive indexes of (Al,Ga,In)As epilayers on InP for optoelectronic applications," Phot. Tech. Lett., vol. 4, no. 6, pp. 627-630, 1992

Parameters
----------
x: float
    Mole ratio of Al, as in: Al(x) Ga(1-x) In(1-x-y) As.  Also varies In slightly for lattice-matching.

wl: float
    wavelength in microns.

...

'''

看起来很正常,如下:

Object Inspector with un-Indented paper reference

这只是Spyder中的一个错误,还是其他一些意图使用缩进?如何使用(或不使用)缩进在Spyder IDE中生成各种类型的格式(我假设是NumpyDoc格式)?
我在NumpyDoc Documentation Page上没有看到任何关于缩进和自动列表的讨论。

只是想知道是否有一些有用的无证文档字符串功能,我可以利用这里。 (另一方面,我注意到我可以使用DocString中的" References"部分,我将在某些时候将Ref移动。)

谢谢!

我的版本如下: Spyder v2.1.11, 达尔文上的Python 2.7.6,Qt 4.8.4,PyQt4(API v2)4.9.6, Mac OS 10.10.2

1 个答案:

答案 0 :(得分:0)

Spyder dev here )我已经设法通过重新格式化你的docstring来获得你想要的东西

def AlInGaAs(x, wl):
'''
Returns the refractive index of ~Al(x)Ga(1-x)In(1-x-y)As (lattice-matched
to InP) at the specified wavelength, wl (in microns) and Aluminum content
(x=0.0-1.0).  

For lattice-matching, the actual mole ratio, x, is defined as so:
InP-matched X: (Al48 In52 As)_X --> (Ga47 In53 As)_1-X

Valid for wavelengths: 0.900 - 2.100 um  &  x: 0.3 - 1.0

Calculated by sellmeier equation, with params from

  M. J. Mondry, D. I. Babic, J. E. Bowers, and L. A. Coldren,
  "Refractive indexes of (Al,Ga,In)As epilayers on InP for optoelectronic
  applications," Phot. Tech. Lett., vol. 4, no. 6, pp. 627-630, 1992

Parameters
----------
x: float
    Mole ratio of Al, as in: Al(x) Ga(1-x) In(1-x-y) As.  Also varies In
    slightly for lattice-matching.

wl: float
    wavelength in microns.

'''

我唯一做的就是在79列打破你的(非常)长线。也许这是Sphinx(我们用来渲染文档字符串的库)的限制。

注意:Spyder 2.1.11是古老的!!请尝试更新到我们的最新版本,即2.3.4。