mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-23 02:01:55 +00:00
37 lines
788 B
Python
37 lines
788 B
Python
import asyncio
|
|
|
|
class BIRDException(Exception):
|
|
pass
|
|
|
|
class Basic:
|
|
def __init__(self, bird):
|
|
self.bird = bird
|
|
self.data = None
|
|
|
|
def __getattr__(self, name):
|
|
if self.data is None:
|
|
raise BIRDException(f"Call update() to get data")
|
|
|
|
if name not in self.data:
|
|
raise BIRDException(f"Unknown key {name} in {type(self)}")
|
|
|
|
return self.data[name]
|
|
|
|
def __repr__(self):
|
|
return f"{type(self).__name__}({self.data})"
|
|
|
|
async def load(self):
|
|
if self.data is None:
|
|
await self.update()
|
|
|
|
class Code:
|
|
OK = 0
|
|
Welcome = 1
|
|
ReadingConfiguration = 2
|
|
Reconfigured = 3
|
|
Status = 13
|
|
Version = 1000
|
|
ProtocolInfo = 1002
|
|
ProtocolDetails = 1006
|
|
ProtocolListHeader = 2002
|