晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
| DIR:/opt/cloudlinux/venv/lib64/python3.11/site-packages/svgwrite/data/ |
| Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/svgwrite/data/types.py |
#!/usr/bin/env python
#coding:utf-8
# Author: mozman --<mozman@gmx.at>
# Purpose: svg types
# Created: 30.09.2010
# Copyright (C) 2010, Manfred Moitzi
# License: MIT License
class SVGAttribute(object):
def __init__(self, name, anim, types, const):
self.name = name
self._anim = anim
self._types = types
self._const = const
# 'elementname' is ignored, but necessary because of the signatures of
# the SVGMultiAttribute class methods get_...()
def get_anim(self, elementname='*'):
return self._anim
def get_types(self, elementname='*'):
return self._types
def get_const(self, elementname='*'):
return self._const
class SVGMultiAttribute(object):
# example: SVGMultiAttribute({'*':SVGAttribute(...), 'text tref':SVGAttribute(...)} )
# parametr is a dict-like object
# '*' is the default attribute definition
# 'text' and 'tref' share the same attribute definition
def __init__(self, attributes):
self.name = None
self._attributes = {}
for names, attribute in attributes.items():
for name in names.split():
name = name.strip()
self._attributes[name] = attribute
if not self.name:
self.name = attribute.name
elif self.name != attribute.name:
raise ValueError("Different attribute-names for SVGMultiAttribute "\
"(%s != %s)." % (self.name, attribute.name))
if '*' not in self._attributes and len(self._attributes):
# if no default attribute definition were given
# set the first attribute definition as the default attribute definition
firstkey = sorted(self._attributes.keys())[0]
self._attributes['*'] = self._attributes[firstkey]
def get_attribute(self, elementname):
if elementname in self._attributes:
return self._attributes[elementname]
else:
return self._attributes['*']
def get_anim(self, elementname='*'):
attribute = self.get_attribute(elementname)
return attribute.get_anim()
def get_types(self, elementname='*'):
attribute = self.get_attribute(elementname)
return attribute.get_types()
def get_const(self, elementname='*'):
attribute = self.get_attribute(elementname)
return attribute.get_const()
class SVGElement(object):
def __init__(self, name, attributes, properties, children):
self.name = name
s = set(attributes)
s.update(properties)
self.valid_attributes = frozenset(s)
self.valid_children = frozenset(children)
|