Coverage for src/ramses_rf/__init__.py: 100%

1#!/usr/bin/env python3

2"""RAMSES RF - a RAMSES-II protocol decoder & analyser.

3`ramses_rf` takes care of the device (upper) layer.

4

5 Works with (amongst others):

6- evohome (up to 12 zones)

7- sundial (up to 2 zones)

8- chronotherm (CM60xNG can do 4 zones)

9- hometronics (16? zones)

10- vision pro

11"""

12

13 from __future__ import annotations

14

15 import logging

16 from typing import TYPE_CHECKING

17

18 from ramses_tx import Address, Command, Message, Packet # noqa: F401

19

20 from . import exceptions # noqa: F401

21 from .device import Device # noqa: F401

22 from .exceptions import CommandInvalid # noqa: F401

23 from .gateway import Gateway # noqa: F401

24 from .version import VERSION # noqa: F401

25

26 from .const import ( # noqa: F401, isort: skip, pylint: disable=unused-import

27 I_,

28 RP,

29 RQ,

30 W_,

31 Code,

32)

33

34 if TYPE_CHECKING:

35 from .const import IndexT, VerbT # noqa: F401, pylint: disable=unused-import

36

37

38 __all__ = [

39 "VERSION",

40 "Gateway",

41 #

42 "Address",

43 "Command",

44 "CommandInvalid",

45 "Device",

46 "Message",

47 "Packet",

48 #

49 "I_",

50 "RP",

51 "RQ",

52 "W_",

53 #

54 "Code",

55 "IndexT",

56 "VerbT",

57 #

58 "exceptions",

59 #

60 "GracefulExit",

61]

62

63 _LOGGER = logging.getLogger(__name__)

64

65

66 class GracefulExit(SystemExit):

67 code = 1