让 Sphinx 替换文档字符串文本

2024-02-14

我正在 Sphinx 中记录类似于以下内容的代码:

class ParentClass(object):
    
    def __init__(self):
        pass

    def generic_fun(self):
        """Call this function using /run/ParentClass/generic_fun()"""
        do_stuff()

class ChildClass(ParentClass):
    
    def specific_fun(self):
        """Call this function using /run/ChildClass/specific_fun()"""
        do_other_stuff()

我添加了:inherited-members to the ChildClass文档,所以我在那里有类似“使用 /run/ParentClass/generic_fun() 调用此函数”之类的语句。

有没有办法可以在文档字符串中放入诸如 之类的内容,Sphinx 会将其替换为它正在记录的实际类?

我想让代码看起来像:

class ParentClass(object):
    
    def __init__(self):
        pass

    def generic_fun(self):
        """Call this function using /run/<class_name>/generic_fun()"""
        do_stuff()

因此,在 ChildClass 部分中,Sphinx 文档将读取“(...) using /run/ChildClass/generic_fun()(...)”,而 ParentClass 部分将读取“(...) using /run/ParentClass/ generic_fun()(...)"?

理想情况下,我希望文档位于同一页面上,因此不同部分的替换字符串会有所不同。


我在寻找其他东西的同时找到了一种方法来做到这一点。

在打印消息之前,autodoc 将调用一些函数。我将此代码添加到我的 conf.py 文件中:

def get_class_name(full_module_name):
    """
    Pull out the class name from the full_module_name
    """
    #split the full_module_name by "."'s
    return full_module_name.split('.')[-1]

def process_docstring(app, what, name, obj, options, lines):
    classname = get_class_name(name)

    # loop through each line in the docstring and replace |class| with
    # the classname
    for i in xrange(len(lines)):
        lines[i] = lines[i].replace('|class|', classname)

def setup(app):
    app.connect('autodoc-process-docstring', process_docstring)

我想使用 |令牌,但它们保留用于全局替换。我通过将以下行放在我的第一个文件中来解决这个问题(因此代码将 |class| 替换为 |class|):

.. |class| replace:: `|class|`
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让 Sphinx 替换文档字符串文本 的相关文章

  • Python 异常 - args 属性如何自动设置?

    假设我定义了以下异常 gt gt gt class MyError Exception def init self arg1 pass 然后我实例化该类以创建异常对象 gt gt gt e MyError abc gt gt gt e ar
  • 管理 Tweepy API 搜索

    如果这是对之前在其他地方回答过的问题的粗略重复 请原谅我 但我不知道如何使用 tweepy API 搜索功能 是否有任何有关如何使用搜索推文的文档api search 功能 有什么方法可以控制返回的推文数量 结果类型等功能 由于某种原因 结
  • 向 polls urls.py 添加额外的过滤器会导致测试失败

    按照 djangoproject 的教程 我尝试让 urls py 过滤掉没有选择下面 urlpattern 的民意调查 urlpatterns patterns url r ListView as view queryset Poll o
  • sphinx 中的分组方法文档字符串

    是否可以使用 sphinx 的 autodoc 功能将多个方法文档字符串分组 以便将它们列在一起 class Test object def a self A method of group foo def b self A method
  • 是否可以在 Sphinx 中隐藏 Python 函数参数?

    假设我有以下函数 该函数记录在Numpydoc 风格 https github com numpy numpy blob master doc HOWTO DOCUMENT rst txt 并且文档是自动生成的Sphinx http sph
  • HoughLinesP后如何合并线?

    My task is to find coordinates of lines startX startY endX endY and rectangles 4 lines Here is input file 我使用下一个代码 img c
  • 如何在不破坏默认行为的情况下覆盖 __getattr__ ?

    我如何覆盖 getattr https docs python org 3 reference datamodel html object getattr 类的方法而不破坏默认行为 压倒一切 getattr 应该没事 getattr 仅作为
  • 如何使用 boto3 从 AWS Cognito 获取经过身份验证的身份响应

    我想使用 boto3 获取访问 AWS 服务的临时凭证 用例是这样的 我的 Cognito 用户池中的用户登录到我的服务器 我希望服务器代码为该用户提供访问其他 AWS 服务的临时凭证 我有一个存储我的用户的 Cognito 用户池 我有一
  • [python]没有属性“TessBaseAPI”

    当我编译代码时出现错误 import tessercat api tesseract TessBaseAPI 错误是 AttributeError 模块 对象没有属性 TessBaseAPI 我已经安装了tesseract via pip
  • SQLAlchemy:检查给定值是否在列表中

    问题 在 PostgreSQL 中 检查某个字段是否在给定列表中是使用IN操作员 SELECT FROM stars WHERE star type IN Nova Planet SQLAlchemy 的等价物是什么INSQL查询 我尝试过
  • S3 选择检索 CSV 中的标头

    我尝试使用以下代码从存储在 S 存储桶中的 CSV 中获取记录子集 s3 boto3 client s3 bucket bucket file name file sql stmt SELECT S FROM s3object S LIMI
  • 使用Python进行图像识别[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个想法 就是我想识别图像中的字母 可能是 bmp或 jpg 例如 这是一个包含字母 S 的 bmp 图像 我想做的是使用Pyth
  • 覆盖现有的 django-admin 命令

    除了编写自定义 django admin 命令之外 这是有详细记录的 https docs djangoproject com en 1 9 howto custom management commands 我希望能够覆盖现有命令 例如ma
  • Microsoft Azure 数据仓库和 SqlAlchemy

    我正在尝试使用 python 的 sqlalchemy 库连接到 microsoft azure 数据仓库 并收到以下错误 pyodbc Error HY000 HY000 Microsoft ODBC SQL Server Driver
  • 如何将字符串方法应用于数据帧的多列

    我有一个包含多个字符串列的数据框 我想使用对数据帧的多列上的系列有效的字符串方法 我希望这样的事情 df pd DataFrame A 123f 456f B 789f 901f df Out 15 A B 0 123f 789f 1 45
  • 如何将列表中的每个项目转换为字符串,以便连接它们? [复制]

    这个问题在这里已经有答案了 我需要加入一个项目列表 列表中的许多项目都是从函数返回的整数值 IE myList append munfunc 我应该如何将返回的结果转换为字符串以便将其加入列表 我是否需要对每个整数值执行以下操作 myLis
  • Docker Build 找不到 pip

    尝试关注一些 1 https aws amazon com blogs aws run docker apps locally using the elastic beanstalk eb cli 2 http docs aws amazo
  • 无法在 Windows 服务器上使 SVN 预提交脚本失败

    我正在编写一个 SVN pre commit bat 文件 该文件调用 Python 脚本来查询我们的问题跟踪系统 以确定用户提供的问题跟踪 ID 是否处于正确的状态 例如 打开 状态 并与正确的关联项目 SVN 服务器运行 Windows
  • 在Python中打开网站框架或图像

    所以我对 python 相当熟练 并且经常使用 urllib2 和 Cookies 来实现网站自动化 我刚刚偶然发现了 webbrowser 模块 它可以在默认浏览器中打开一个网址 我想知道是否可以从该 url 中仅选择一个对象并打开它 具
  • Matplotlib 渲染日期、图像的问题

    我在使用 conda forge 的 Matplotlib v 3 1 3 和 python 3 7 时遇到问题 我拥有 Matplotlib 所需的所有依赖项 当我输入这段代码时 它应该可以工作 我得到了泼溅艺术 它基于此 YouTube

随机推荐

  • 立即检测 iOS 方向变化

    我有一个游戏 其中设备的方向会影响游戏的状态 用户必须在横向 纵向和反向横向方向之间快速切换 到目前为止 我一直在通过以下方式注册游戏以获得方向通知 UIDevice currentDevice beginGeneratingDeviceO
  • jQuery 按值选择选项元素

    我有一个由 span 元素包裹的 select 元素 我不允许使用 select id 但可以使用 span id 我正在尝试编写一个 javascript jquery 函数 其中输入是数字 i 它是 select 选项的值之一 该功能会
  • R 在 Leaflet 中使用热图

    我有一个运行 Shiny 的 Linux 机器 我正在尝试根据演示获取传单运行的代码here https rpubs com bhaskarvk leaflet heatmap and here http leaflet github io
  • getRealPath() 返回 false(Laravel 5.2 和图像干预)

    上传图片时 getRealPath 总是返回false image file request gt file image file image file gt getRealPath gt FALSE 这是结果dd image file 另
  • 如何将 char 数组定义为常量?

    这里是 C C 菜鸟 我已经在头文件中定义了它 typedef unsigned char BitChar 9 8 data bytes chars and one width byte char extern BitChar BitFon
  • 使用 XCode 增加堆栈大小

    我在Linux上开发了一个命令行应用程序 需要增加其堆栈 在 Linux 上我只是使用了解决方法 ulimit s unlimited在运行程序之前 在 Mac OS X 上 使用 G 命令行 我添加到编译选项 Wl stack size
  • 使用代码清理时在 Resharper 中禁用/自定义注释(重新)格式化

    有没有办法定义如何使用 Resharper 6 清理 注释 我没有找到解决这个问题的方法 代码清理之前
  • 为什么 IntelliSense 无法将我的查询所选项目识别为元素?

    Problem 我试图弄清楚为什么当我使用以下命令访问 HTML 元素时 VSCode 的 IntelliSense 不会建议元素对象属性 document querySelector 每当我使用document querySelector
  • 重试 Javascript.Promise.reject 有限次数或直到成功

    我有一个函数说myMainFunction从客户端调用 然后调用mypromisified功能 设想 mypromisified函数可能会间歇性失败 我需要延迟 以指数增长 调用此函数 直到成功或达到最大尝试次数 到目前为止我所拥有的 以下
  • icmp 端口不可达错误消息

    我正在将 UDP 数据包从一台 PC 发送到另一台 PC 我正在使用 Wire Shark 观看整个活动 我注意到有一段时间数据包从一个系统到另一个系统的传输很顺利 然后突然间ICMP有错误的数据包 port unreachable 开始出
  • Bash 脚本中的这一行是如何工作的?

    我试图弄清楚顶部的某一行代码是如何BASH 手册页选项卡补全脚本 https github com scop bash completion blob 52315ef2ceb3f8e6b7fe45a09f8df24b73394da4 com
  • 是否可以通过 GitHub 的 Web 界面恢复提交

    我正在 Chromebook 上教授 HTML 课程 我们使用 GitHub 进行修订控制 我想向我的学生展示如何恢复提交 由于我们在 Chromebook 上没有 shell 访问权限 因此我希望通过 GitHub 网站找到一种在线执行此
  • Laravel 5.2 - pluck() 方法返回数组

    我正在尝试升级我的项目 L5 1 gt L5 2 在升级指南 http laravel com docs 5 2 upgrade upgrade 5 2 0有一件事我不清楚 The listsCollection 上的方法 查询生成器和 E
  • 如何使用 datetime.time 绘图

    我有 HH MM SS 格式的时间戳列表 并希望使用 datetime time 绘制某些值 看来 python 不喜欢我这样做的方式 有人可以帮忙吗 import datetime import matplotlib pyplot as
  • 我如何告诉 Masonry 组件它的单元格已经改变了高度?

    我有一个反应组件 它以网格模式显示一维项目列表 每个项目都具有相同的宽度和高度 并且它们位于三列内 可能有很多这样的东西 所以我决定使用 Masonry 组件来尝试一下 React virtualized 该组件似乎是专门为这个用例而编写的
  • 如何在 C# 中创建 X509Certificate2 时更改颁发者名称

    我正在我的 C net 应用程序中创建 X509Certificate2 证书 创建证书时 如何设置颁发者名称 目前发行人名称与主体名称相同 请帮忙 Hmm 终于我用了充气城堡 dll创建证书 使用它 有一种方法可以设置颁发者名称 这是要生
  • --ntasks 或 -ntasks 在 SLURM 中起什么作用?

    我正在使用SLURM http slurm schedmd com 使用一些计算集群 它有 ntasks or n 我显然已经阅读了它的文档 http slurm schedmd com sbatch html http slurm sch
  • 为什么清空 NavigationStack 路径后对象仍在内存中?

    我正在尝试实现一个协调器来管理流程 状态存储在 CoordinatorStore 内 有 2 个用于管理流程的 Published 属性 这screen属性控制当前显示哪个视图以及path控制堆栈视图的导航堆栈 实施细节可以在下面找到 根据
  • grunt-contrib-jshint 忽略没有效果

    我想排除libs目录免于被检查 然而 ignores in options并种植了 jshintignore项目目录中的文件不会生成libs被排除在外 jshint options smarttabs true ignores public
  • 让 Sphinx 替换文档字符串文本

    我正在 Sphinx 中记录类似于以下内容的代码 class ParentClass object def init self pass def generic fun self Call this function using run P