mirror of https://github.com/tiangolo/fastapi.git
🔨 Add script to generate variants of files (#12405)
This commit is contained in:
parent
a94d61b2c0
commit
c6dfdb8523
|
|
@ -15,6 +15,7 @@ import mkdocs.utils
|
||||||
import typer
|
import typer
|
||||||
import yaml
|
import yaml
|
||||||
from jinja2 import Template
|
from jinja2 import Template
|
||||||
|
from ruff.__main__ import find_ruff_bin
|
||||||
|
|
||||||
logging.basicConfig(level=logging.INFO)
|
logging.basicConfig(level=logging.INFO)
|
||||||
|
|
||||||
|
|
@ -382,5 +383,41 @@ def langs_json():
|
||||||
print(json.dumps(langs))
|
print(json.dumps(langs))
|
||||||
|
|
||||||
|
|
||||||
|
@app.command()
|
||||||
|
def generate_docs_src_versions_for_file(file_path: Path) -> None:
|
||||||
|
target_versions = ["py39", "py310"]
|
||||||
|
base_content = file_path.read_text(encoding="utf-8")
|
||||||
|
previous_content = {base_content}
|
||||||
|
for target_version in target_versions:
|
||||||
|
version_result = subprocess.run(
|
||||||
|
[
|
||||||
|
find_ruff_bin(),
|
||||||
|
"check",
|
||||||
|
"--target-version",
|
||||||
|
target_version,
|
||||||
|
"--fix",
|
||||||
|
"--unsafe-fixes",
|
||||||
|
"-",
|
||||||
|
],
|
||||||
|
input=base_content.encode("utf-8"),
|
||||||
|
capture_output=True,
|
||||||
|
)
|
||||||
|
content_target = version_result.stdout.decode("utf-8")
|
||||||
|
format_result = subprocess.run(
|
||||||
|
[find_ruff_bin(), "format", "-"],
|
||||||
|
input=content_target.encode("utf-8"),
|
||||||
|
capture_output=True,
|
||||||
|
)
|
||||||
|
content_format = format_result.stdout.decode("utf-8")
|
||||||
|
if content_format in previous_content:
|
||||||
|
continue
|
||||||
|
previous_content.add(content_format)
|
||||||
|
version_file = file_path.with_name(
|
||||||
|
file_path.name.replace(".py", f"_{target_version}.py")
|
||||||
|
)
|
||||||
|
logging.info(f"Writing to {version_file}")
|
||||||
|
version_file.write_text(content_format, encoding="utf-8")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app()
|
app()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue