晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
| DIR:/opt/cloudlinux/venv/lib64/python3.11/site-packages/clselect/ |
| Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/clselect/clselectprint.py |
# -*- coding: utf-8 -*-
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT
from __future__ import print_function
from __future__ import division
from __future__ import absolute_import
import csv
import simplejson
import sys
from xml.sax.saxutils import escape as _escape
from past.builtins import basestring # noqa
from future.utils import iteritems
HTML_ESCAPE_TABLE = {
'"': """,
"'": "'"
}
def escape_string(data):
if isinstance(data, basestring):
return _escape(data, HTML_ESCAPE_TABLE)
elif isinstance(data, (tuple, list)):
new_data = []
for value in data:
new_data.append(escape_string(value))
return new_data
elif isinstance(data, dict):
new_dict = {}
for k, v in iteritems(data):
new_dict[k] = escape_string(v)
return new_dict
return data
def validate_json_message(data):
# copies message from 'details' to 'message'
# in case there is no 'message' in json
if not 'message' in data:
data['message'] = data['details']
class clprint(object):
def print_data(cls, fmt, data, escape=None):
"""
Dispatches data to corresponing routine for printing
@param fmt: string
@param data: dict
"""
dispatcher = {
'json': cls.print_json,
'perl': cls.print_perl,
'csv': cls.print_csv,
'text': cls.print_text
}
try:
dispatcher[fmt](data, escape=escape)
except KeyError:
dispatcher['text'](data)
print_data = classmethod(print_data)
def print_diag(cls, fmt, data):
"""
Dispatches data to corresponing routine for printing
@param fmt: string
@param data: dict
"""
dispatcher = {
'json': cls.print_diag_json,
'perl': cls.print_diag_perl,
'csv': cls.print_diag_csv,
'text': cls.print_diag_text
}
try:
dispatcher[fmt](data)
except KeyError:
dispatcher['text'](data)
print_diag = classmethod(print_diag)
def print_csv(data, escape=None):
"""
Prints data as comma separated values
@param data: dict
"""
csv_out = csv.writer(sys.stdout, quoting=csv.QUOTE_ALL)
for opt in sorted(data.keys()):
flat_array = [opt]
for key, value in iteritems(data[opt]):
if escape:
value = escape_string(value)
flat_array.extend([key, value])
csv_out.writerow(flat_array)
print_csv = staticmethod(print_csv)
def print_diag_csv(data):
"""
Prints diagnostic messages as comma separated values
@param data: dict
"""
validate_json_message(data)
csv_out = csv.writer(sys.stdout, quoting=csv.QUOTE_ALL)
csv_out.writerow([data['status'], data['message']])
print_diag_csv = staticmethod(print_diag_csv)
def print_json(data, escape=None):
"""
Prints data as JSON
@param data: dict
"""
if data:
if escape:
data = escape_string(data)
print(simplejson.dumps({
'status': 'OK',
'data': data}))
else:
print(simplejson.dumps({'status': 'OK'}))
print_json = staticmethod(print_json)
def print_diag_json(data):
"""
Prints diagnostic messages as JSON
@param data: dict
"""
print(simplejson.dumps(data))
print_diag_json = staticmethod(print_diag_json)
def print_text(data, escape=None):
"""
Prints data as plain text
@param data: dict
"""
for opt in sorted(data.keys()):
print("TITLE:%s" % (opt,))
for key, v in iteritems(data[opt]):
if escape:
v = escape_string(v)
print('%s:%s' % (key.upper(), v))
print('')
print_text = staticmethod(print_text)
@staticmethod
def print_diag_text(data):
"""
Prints diagnostic messages as plain text
@param data: dict
"""
validate_json_message(data)
print("%s:%s" % (data['status'], data['message']), file=sys.stderr)
if data.get('details'):
print("Details:", file=sys.stderr)
print(data.get('details', '') % data.get('context', {}), file=sys.stderr)
def print_diag_perl(data):
"""
Prints diagnostic messages as perl data structure
@param data: dict
"""
validate_json_message(data)
print("{status=>%s,message=>%s}" % (data['status'], data['message']))
print_diag_perl = staticmethod(print_diag_perl)
def print_perl(data, escape=None):
"""
Prints data as perl data structure
@param data: dict
"""
out = []
for opt in sorted(data.keys()):
structure = []
structure.append("title=>'%s'" % (opt, ))
for k, v in iteritems(data[opt]):
if escape:
v = escape_string(v)
structure.append("%s=>'%s'" % (k, v))
out.append("{%s}" % (','.join(structure)))
print('[%s]' % (','.join(out),))
print_perl = staticmethod(print_perl)
|