晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
| DIR:/opt/cloudlinux/venv/lib64/python3.11/site-packages/dill/tests/ |
| Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/dill/tests/test_logger.py |
#!/usr/bin/env python
# Author: Leonardo Gama (@leogama)
# Copyright (c) 2022-2023 The Uncertainty Quantification Foundation.
# License: 3-clause BSD. The full license text is available at:
# - https://github.com/uqfoundation/dill/blob/master/LICENSE
import logging
import re
import tempfile
import dill
from dill import detect
from dill.logger import stderr_handler, adapter as logger
try:
from StringIO import StringIO
except ImportError:
from io import StringIO
test_obj = {'a': (1, 2), 'b': object(), 'f': lambda x: x**2, 'big': list(range(10))}
def test_logging(should_trace):
buffer = StringIO()
handler = logging.StreamHandler(buffer)
logger.addHandler(handler)
try:
dill.dumps(test_obj)
if should_trace:
regex = re.compile(r'(\S*┬ \w.*[^)]' # begin pickling object
r'|│*└ # \w.* \[\d+ (\wi)?B])' # object written (with size)
)
for line in buffer.getvalue().splitlines():
assert regex.fullmatch(line)
return buffer.getvalue()
else:
assert buffer.getvalue() == ""
finally:
logger.removeHandler(handler)
buffer.close()
def test_trace_to_file(stream_trace):
file = tempfile.NamedTemporaryFile(mode='r')
with detect.trace(file.name, mode='w'):
dill.dumps(test_obj)
file_trace = file.read()
file.close()
# Apparently, objects can change location in memory...
reghex = re.compile(r'0x[0-9A-Za-z]+')
file_trace, stream_trace = reghex.sub('0x', file_trace), reghex.sub('0x', stream_trace)
# PyPy prints dictionary contents with repr(dict)...
regdict = re.compile(r'(dict\.__repr__ of ).*')
file_trace, stream_trace = regdict.sub(r'\1{}>', file_trace), regdict.sub(r'\1{}>', stream_trace)
assert file_trace == stream_trace
if __name__ == '__main__':
logger.removeHandler(stderr_handler)
test_logging(should_trace=False)
detect.trace(True)
test_logging(should_trace=True)
detect.trace(False)
test_logging(should_trace=False)
loglevel = logging.ERROR
logger.setLevel(loglevel)
with detect.trace():
stream_trace = test_logging(should_trace=True)
test_logging(should_trace=False)
assert logger.getEffectiveLevel() == loglevel
test_trace_to_file(stream_trace)
|