晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
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/lib/python3.6/site-packages/pydbus/ |
Upload File : |
from gi.repository import GLib, Gio
def register_error(name, domain, code):
"""Register and map decorated exception class to a DBus error."""
def decorated(cls):
error_registration.register_error(cls, name, domain, code)
return cls
return decorated
def map_error(error_name):
"""Map decorated exception class to a DBus error."""
def decorated(cls):
error_registration.map_error(cls, error_name)
return cls
return decorated
def map_by_default(cls):
"""Map decorated exception class to all unknown DBus errors."""
error_registration.map_by_default(cls)
return cls
class ErrorRegistration(object):
"""Class for mapping exceptions to DBus errors."""
_default = None
_map = dict()
_reversed_map = dict()
def map_by_default(self, exception_cls):
"""Set the exception class as a default."""
self._default = exception_cls
def map_error(self, exception_cls, name):
"""Map the exception class to a DBus name."""
self._map[name] = exception_cls
self._reversed_map[exception_cls] = name
def register_error(self, exception_cls, name, domain, code):
"""Map and register the exception class to a DBus name."""
self.map_error(exception_cls, name)
return Gio.DBusError.register_error(domain, code, name)
def is_registered_exception(self, obj):
"""Is the exception registered?"""
return obj.__class__ in self._reversed_map
def get_dbus_name(self, obj):
"""Get the DBus name of the exception."""
return self._reversed_map.get(obj.__class__)
def get_exception_class(self, name):
"""Get the exception class mapped to the DBus name."""
return self._map.get(name, self._default)
def transform_message(self, name, message):
"""Transform the message of the exception."""
prefix = "{}:{}: ".format("GDBus.Error", name)
if message.startswith(prefix):
return message[len(prefix):]
return message
def transform_exception(self, e):
"""Transform the remote error to the exception."""
if not isinstance(e, GLib.Error):
return e
if not Gio.DBusError.is_remote_error(e):
return e
# Get DBus name of the error.
name = Gio.DBusError.get_remote_error(e)
# Get the exception class.
exception_cls = self.get_exception_class(name)
# Return the original exception.
if not exception_cls:
return e
# Return new exception.
message = self.transform_message(name, e.message)
exception = exception_cls(message)
exception.dbus_name = name
exception.dbus_domain = e.domain
exception.dbus_code = e.code
return exception
# Default error registration.
error_registration = ErrorRegistration()