░▒▓████████████████████████████████▓▒░ ░▒▓█ ▓▒░ ░▒▓█ ~ S W A M P ~ ▓▒░ ░▒▓█ ▓▒░ ░▒▓████████████████████████████████▓▒░
pplmvsvm
LOCATION:
/usr/lib/python3/dist-packages/landscape/message_schemas
☗ ROOT
↻ REFRESH
✎ CARVE FLESH
EDITING: message.py
from landscape.lib.schema import Any from landscape.lib.schema import Bytes from landscape.lib.schema import Constant from landscape.lib.schema import Float from landscape.lib.schema import KeyDict class Message(KeyDict): """ Like L{KeyDict}, but with three predefined keys: C{type}, C{api}, and C{timestamp}. Of these, C{api} and C{timestamp} are optional. @param type: The type of the message. The C{type} key will need to match this as a constant. @param schema: A dict of additional schema in a format L{KeyDict} will accept. @param optional: An optional list of keys that should be optional. @param api: The server API version needed to send this message, if C{None} any version is fine. """ def __init__(self, type, schema, optional=None, api=None): self.type = type self.api = api schema["timestamp"] = Float() schema["api"] = Any(Bytes(), Constant(None)) schema["type"] = Constant(type) if optional is not None: optional.extend(["timestamp", "api"]) else: optional = ["timestamp", "api"] super().__init__(schema, optional=optional) def coerce(self, value): for k in list(value.keys()): if k not in self.schema: # We don't know about this field, just discard it. This # is useful when a client that introduced some new field # in a message talks to an older server, that don't understand # the new field yet. value.pop(k) return super().coerce(value)
CANCEL
Name
Type
Size
Modified
Actions
↩ ..
DIR
—
—
📁 __pycache__/
DIR
—
2026-03-10 17:37
📄 __init__.py
PY
151 B
2024-02-28 00:30
EDIT
📄 message.py
PY
1.6 KB
2024-02-28 00:30
EDIT
📄 server_bound.py
PY
23.8 KB
2025-08-21 01:44
EDIT
📄 test_message.py
PY
2.2 KB
2024-02-28 00:30
EDIT