晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
| DIR:/opt/hc_python/lib64/python3.12/site-packages/mako/testing/ |
| Current File : //opt/hc_python/lib64/python3.12/site-packages/mako/testing/helpers.py |
import contextlib
import pathlib
from pathlib import Path
import re
import time
from typing import Union
from unittest import mock
def flatten_result(result):
return re.sub(r"[\s\r\n]+", " ", result).strip()
def result_lines(result):
return [
x.strip()
for x in re.split(r"\r?\n", re.sub(r" +", " ", result))
if x.strip() != ""
]
def result_raw_lines(result):
return [x for x in re.split(r"\r?\n", result) if x.strip() != ""]
def make_path(
filespec: Union[Path, str],
make_absolute: bool = True,
check_exists: bool = False,
) -> Path:
path = Path(filespec)
if make_absolute:
path = path.resolve(strict=check_exists)
if check_exists and (not path.exists()):
raise FileNotFoundError(f"No file or directory at {filespec}")
return path
def _unlink_path(path, missing_ok=False):
# Replicate 3.8+ functionality in 3.7
cm = contextlib.nullcontext()
if missing_ok:
cm = contextlib.suppress(FileNotFoundError)
with cm:
path.unlink()
def replace_file_with_dir(pathspec):
path = pathlib.Path(pathspec)
_unlink_path(path, missing_ok=True)
path.mkdir(exist_ok=True)
return path
def file_with_template_code(filespec):
with open(filespec, "w") as f:
f.write(
"""
i am an artificial template just for you
"""
)
return filespec
@contextlib.contextmanager
def rewind_compile_time(hours=1):
rewound = time.time() - (hours * 3_600)
with mock.patch("mako.codegen.time") as codegen_time:
codegen_time.time.return_value = rewound
yield
|