Generate multiple code snippets from a single source file (#2146)

* Support generating multiple snippets from one source file

* Convert Python code snippets from one source file

* Add code snippets for C#, Go, Java, Rust and TS

* Make intro less Python-oriented

* Add client installation instructions for all languages

* Cleanup python code

---------

Co-authored-by: xzfc <xzfcpw@gmail.com>
This commit is contained in:
Abdon Pijpelink
2026-02-23 10:09:56 +01:00
committed by GitHub
co-authored by xzfc
parent db35eb3992
commit bcc3c7206b
87 changed files with 2501 additions and 204 deletions
+25 -20
View File
@@ -13,6 +13,7 @@ The reverse is `./migrate-snippet.py`.
import difflib
import shutil
import sys
import textwrap
import traceback
import typing
@@ -39,29 +40,33 @@ def main() -> None:
print(f"Warning: failed to shorten snippet {snippet_fname}: {e}")
traceback.print_exc()
continue
generated = f"```{lang.NAME}\n{shortened}```\n"
generated_fname = generated_dir / f"{lang.NAME}.md"
handwritten_fname = snippet_dir / f"{lang.NAME}.md"
generated_fname.write_text(generated)
for key in shortened.keys():
generated = f"```{lang.NAME}\n{textwrap.dedent(shortened[key])}```\n"
if handwritten_fname.exists():
issues += 1
print(
"Warning: both snippet and generated file exist:",
snippet_dir / f"{lang.NAME}.md",
)
handwritten = (snippet_dir / f"{lang.NAME}.md").read_text()
if handwritten.rstrip("\n") != generated.rstrip("\n"):
print_and_colorize_diff(
difflib.unified_diff(
handwritten.rstrip("\n").splitlines(keepends=True),
generated.rstrip("\n").splitlines(keepends=True),
fromfile=str(handwritten_fname),
tofile=str(generated_fname),
),
generated_dir = snippet_dir / "generated" / key
generated_dir.mkdir(exist_ok=True)
generated_fname = generated_dir / f"{lang.NAME}.md"
handwritten_fname = snippet_dir / f"{lang.NAME}.md"
generated_fname.write_text(generated)
if handwritten_fname.exists():
issues += 1
print(
"Warning: both snippet and generated file exist:",
snippet_dir / f"{lang.NAME}.md",
)
print()
handwritten = (snippet_dir / f"{lang.NAME}.md").read_text()
if handwritten.rstrip("\n") != generated.rstrip("\n"):
print_and_colorize_diff(
difflib.unified_diff(
handwritten.rstrip("\n").splitlines(keepends=True),
generated.rstrip("\n").splitlines(keepends=True),
fromfile=str(handwritten_fname),
tofile=str(generated_fname),
),
)
print()
if issues:
print(f"Total issues found: {issues}")