Exemplo n.º 1
0
 def load_data(cls):
     default = resource_filename("lxd_image_server", "default_config.toml")
     paths = [os.getenv("LXD_IMAGE_SERVER_CONFIG")]
     with cls._lock:
         cls.data = confight.load_app('lxd-image-server',
                                      default=default,
                                      paths=paths)
Exemplo n.º 2
0
 def start(self) -> None:
     config = confight.load_app('nice-bot', extension='toml')
     signal.signal(signal.SIGINT, self.shutdown)
     bootstrap = Bootstrap(config)
     bot, dp = bootstrap.bot, bootstrap.dp
     logging.info('Starting nice-bot')
     logging.info('Database shape: %r', dp.df.shape)
     bot.run(config['bot']['token'])
Exemplo n.º 3
0
    def load_data(cls):
        if cls.data:
            return
        cls.original_load_paths = confight.__dict__['load_paths']
        confight.__dict__['load_paths'] = cls.confight_load_paths

        cls.data.update(confight.load_app('lxd-image-server'))
        # allow non root installs as well
        cls.data.update(confight.load_user_app('lxd-image-server'))

        confight.__dict__['load_paths'] = cls.original_load_paths

        cls.paths = cls.pathsAsDict.keys()
        cls.pathsAsDict = {}
        # allow lack of any config file
        if 'mirrors' not in cls.data:
            cls.data['mirrors'] = {}
Exemplo n.º 4
0
 def load_data(cls):
     if cls.data:
         return
     cls.data.update(confight.load_app('lxd-image-server'))
Exemplo n.º 5
0
    def __attrs_post_init__(self):
        gpio.setwarnings(False)
        gpio.setup(self.pump, gpio.OUT, initial=gpio.LOW)

    def water_on(self):
        if not self.pump_on and not self.sensor_on:
            gpio.output(self.pump, gpio.HIGH)

    def water_off(self):
        if self.pump_on:
            gpio.output(self.pump, gpio.LOW)

    @property
    def pump_on(self) -> bool:
        return gpio.input(self.pump) == gpio.HIGH

    @property
    def sensor_on(self) -> bool:
        return any(sensor.wet for sensor in sensors)


config = confight.load_app('pi-watering-bot')
sensors = list()
gpio.setmode(gpio.BCM)
ads = ADS1115.ADS1115()
for name, sensor in config['hardware']['sensors'].items():
    sensors.append(
        AdcSensor(name, sensor['pin'], sensor['threshold'])
        if sensor['type'] == 'adc' else PinSensor(name, sensor['pin']))