1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
import os
from rich.console import Console
from rich.padding import Padding
from rich.syntax import Syntax
code = """
from contextlib import asynccontextmanager
import httpx
class BookClient(httpx.AsyncClient):
async def get_book(self, book_id: int) -> str:
response = await self.get(f"/books/{book_id}")
return response.text
@asynccontextmanager
async def book_client(*args, **kwargs):
async with BookClient(*args, **kwargs) as client:
yield client
"""
with open(os.devnull, "w") as devnull:
console = Console(record=True, width=65, file=devnull, markup=False)
renderable = Syntax(code, "python", theme="material")
renderable = Padding(renderable, (0,), expand=False)
console.print(renderable, markup=False)
svg = console.export_svg(title="async context manager")
print(svg)
|