晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 sh-3ll

HOME


sh-3ll 1.0
DIR:/opt/cloudlinux/venv/lib/python3.11/site-packages/svgwrite/data/
Upload File :
Current File : //opt/cloudlinux/venv/lib/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)