from marshmallow import fields from marshmallow.schema import Schema from marshmallow.validate import OneOf class DbusSignalSchema(Schema): bus = fields.String( required=True, validate=OneOf(['system', 'session']) ) interface = fields.String(allow_none=True, metadata={ 'description': 'The DBus interface that should be monitored (default: all)' }) path = fields.String(allow_none=True, metadata={ 'description': 'Path of the resource to be monitored (default: all)' }) signal = fields.String(allow_none=True, metadata={ 'description': 'Signal name filter (default: all signals)' }) sender = fields.String(allow_none=True, metadata={ 'description': 'Signal sender filter (default: all senders)' })