我有很多可调用的对象,它们都__doc__正确地填写了字符串,但是对它们运行帮助可以为它们的类提供帮助,而不是基于它的帮助__doc__.
我想改变它,以便在它们上运行帮助产生自定义的帮助,看起来基本上就像我将得到的,如果它们是实际的函数而不是实现的类的实例__call__.
在代码中,我想输出:
class myCallable:
def __init__(self, doc):
self.__doc__ = doc
def __call__(self):
# do some stuff
pass
myFunc = myCallable("some doco text")
help(myFunc)
Run Code Online (Sandbox Code Playgroud)
看起来更像是这个的输出:
def myFunc():
"some doco text"
# do some stuff
pass
help(myFunc)
Run Code Online (Sandbox Code Playgroud) 我目前正在将所有现有(不完整)文档迁移到Sphinx.
问题是文档使用Python文档字符串(模块是用C编写的,但可能无关紧要),并且必须将类文档转换为可用于Sphinx的表单.
有sphinx.ext.autodoc,但它会自动将当前文档字符串放到文档中.我想基于当前的文档字符串在(RST)中生成源文件,然后我可以手动编辑和改进.
你会如何将文档字符串转换为Sphinx的RST?
我正在使用 pydoc 模块输出我使用 C API 定义的某些类型的文档。在解释器嵌入到我的 C 程序中之前,我想要记录的类型并不存在,因此我无法使用 pydoc 命令。
我让我的 C 代码调用一个函数,该函数执行如下操作:
d = pydoc.HTMLDoc()
content = d.docmodule(sys.modules["mymodule"])
Run Code Online (Sandbox Code Playgroud)
这可行,但会生成带有硬编码“file:/”链接目标的 HTML 页面。有没有办法使用链接的相对路径?
(额外积分是为了更好地记录 C API 中定义的类型)
我甚至不确定这些东西是正式调用的,但是,Python有元数据,通常位于模块文件的顶部,例如__version__ = '0.1'.
如何找到PyDoc支持的所有列表?
声明从特定类继承的类时:
class C(dict):
added_attribute = 0
Run Code Online (Sandbox Code Playgroud)
类的文档C列出了所有方法dict(通过help(C)或pydoc).
有没有办法从自动生成的文档中隐藏继承的方法(文档字符串可以引用基类,对于非重写方法)?还是不可能?
这将很有用:pydoc列出模块在其类之后定义的函数.因此,当类具有非常长的文档时,在呈现模块提供的新功能之前会打印许多不太有用的信息,这使得文档更难以利用(您必须跳过继承方法的所有文档)直到达到所记录模块的特定内容.
生成模块文档时,PyDoc在当前目录中创建HTML文档.我真的需要指定另一个目录,它将是生成文档的占位符,而不是调用PyDoc的目录.
我python -m pydoc -w <MODULES_DIR>用来生成文档.
这是可能的,如果可能,怎么样?
我用Emacs编辑Python脚本,我总是把它放在脚本的开头:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)
在PEP 0236中建议(至少不要劝阻).
但是,我刚发现pydoc它无法正确识别(忽略)它:
$ pydoc myscript.py
Help on module myscript:
NAME
myscript - # -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)
有办法解决这个问题吗?还是使用的好方法-*- coding: utf-8 -*-?
我正在使用Python 2.6
显然我在这里缺少一些严肃的东西.这是我的测试程序:
"""
Doc and nothing but doc
"""
class TestMe(object):
"""
class documentation goes here
"""
def testFunc(self):
"""
FunctionDoc Goes here
"""
print "Hello world"
if __name__ =="__main__":
t=TestMe()
t.testFunc()
Run Code Online (Sandbox Code Playgroud)
我运行它并打印出"Hello world",natch.但是pydoc.py test.py给出这个:
no Python documentation found for 'test.py'
Run Code Online (Sandbox Code Playgroud)
显然我在这里缺少一些简单的东西,但是什么呢?
--edit-- Per Vishnu的建议我print t.__doc__在文件的最后一行添加了" ",现在运行该文件给出了:
Hello world
class documentation goes here
Run Code Online (Sandbox Code Playgroud)
但是pydoc仍然没有找到任何文档.
我正在尝试设置我的新笔记本电脑的开发环境.安装zsh后我不断收到错误
deactivate:unset:1:没有这样的哈希表元素:pydoc请帮忙.我在zshrc中有以下简单别名:
alias c="clear"
alias gpl="git pull"
alias gps="git push"
alias gc="git commit"
alias gck="git checkout"
alias d="git diff"
alias s="git status".
Run Code Online (Sandbox Code Playgroud) 我有一个使用 pandas 的 read_sql ,它工作正常。然而,当我尝试使用相同的逻辑在 Dask 下重新创建相同的数据帧时。它给了我NoSuchTableError。我确信该表存在于我的 SQL 数据库中。
熊猫#works:
import urllib
import sqlalchemy as sa
import pandas as pd
sql = "SELECT * FROM my_table"
params = urllib.parse.quote_plus("DRIVER={SQL Server Native Client 11.0};\
SERVER=my_server;\
DATABASE=db_name;\
Trusted_Connection=yes;")
engine = sa.create_engine('mssql+pyodbc:///?odbc_connect=%s' % params)
df = pd.read_sql(sql, engine)
print(df.head())
Run Code Online (Sandbox Code Playgroud)
由于 Dask 使用 sqlalchemy 的完整 URL,我还尝试在 sqlalchemy 中重新创建相同的连接,并且它有效。我只是很困惑为什么它在 Dask 中不起作用。
sqlalchemy #works:
import pyodbc
import sqlalchemy as sal
from sqlalchemy import create_engine
engine = sal.create_engine('mssql+pyodbc://my_server/db_name\
?driver=SQL+Server+Native+Client+11.0?trusted_connection=yes')
result = engine.execute("select * from my_table")
for row …Run Code Online (Sandbox Code Playgroud)