小编lep*_*rem的帖子

我可以使用 Sphinx 获取第一个文件的模板吗?

我有几个 rST 页面,它们遵循相同的框架,但在某些地方具有不同的值和段落。

理想情况下,我会想象这样的事情(简化的例子):

page-model.rst

 Feature {% block title %}Index{% endblock %}
 ============================================     
 {% block description %}
 Not available.
 {% endblock %} 
Run Code Online (Sandbox Code Playgroud)

进而:

page-1.rst

 {% extends "page-model.rst" %}

 {% block title %}Load{% endblock %}

 {% block description %}
 Load data from hard disk.
 {% endblock %} 
Run Code Online (Sandbox Code Playgroud)

这可以开箱即用吗?

我应该在生成文档之前自己破解一些东西来运行 Jinja 吗?或者定义我自己的指令?

这是一个坏主意吗?:)

感谢您的见解!

restructuredtext jinja2 python-sphinx

6
推荐指数
0
解决办法
1570
查看次数

如何在两个 Python 异步协程之间使用读/写流?

如何使用 asyncio 在两个协程之间实现管道,一个协程从流中读取,另一个向其中写入?

假设我们有这个现有代码,两个简单的脚本。生成标准输出的一个:

# produce.py

import asyncio
import random
import sys

async def produce(stdout):
    for i in range(10000):
        await asyncio.sleep(random.randint(0, 3))
        print(i, file=stdout, flush=True)

if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(produce(sys.stdout))
    loop.close()
Run Code Online (Sandbox Code Playgroud)

另一个从标准输入读取:

# consume.py

async def consume(loop, stdin):
    reader = asyncio.StreamReader(loop=loop)
    reader_protocol = asyncio.StreamReaderProtocol(reader)
    await loop.connect_read_pipe(lambda: reader_protocol, stdin)

    while True:
        line = await reader.readline()
        if not line:
            break
        print(int(line) ** 2)

if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(consume(loop, sys.stdin))
    loop.close()
Run Code Online (Sandbox Code Playgroud)

显然,由于我们的两个部分可以从命令行单独运行,因此我们可以使用subprocess带有 shell 管道 ( …

python pipe python-asyncio

5
推荐指数
1
解决办法
7785
查看次数