def save_timezone(offset_h): from config_files import save_py_config save_py_config(module_name=constants.TIMEZONE_PY_CFG_NAME, value=offset_h) del save_py_config del sys.modules['config_files'] gc.collect()
def set_power_led_level(dim_level): Pins.power_led.set_dim_level(dim_level=dim_level) from config_files import save_py_config save_py_config(module_name=_LED_DIM_LEVEL_PY_CFG_NAME, value=dim_level) del save_py_config del sys.modules['config_files']
def test_py_config(self): with mock_py_config_context(): # test_py_config() # will not work! save_py_config(module_name='test_int', value=1) assert restore_py_config(module_name='test_int') == 1 save_py_config(module_name='test_dict', value={'foo': 1.2}) assert restore_py_config(module_name='test_dict') == {'foo': 1.2}
def test_py_config(): try: save_py_config(module_name='test', value=1) assert restore_py_config(module_name='test') == 1 save_py_config(module_name='test', value=2) save_py_config(module_name='test', value=2) # skip save? assert restore_py_config(module_name='test') == 2 finally: os.remove('_config_test.py')
def save_active_days(active_days): print('save_active_days():', active_days) save_py_config(module_name=constants.ACTIVE_DAYS_PY_CFG_NAME, value=tuple(active_days))
def save_timers(times): print('save_timers():', times) save_py_config(module_name=constants.TIMERS_PY_CFG_NAME, value=times)
async def get_submit(server, reader, writer, querystring, body): """ Note: POST request doesn't work: https://forum.micropython.org/viewtopic.php?f=2&t=7432 """ from urllib_parse import request_query2dict data = request_query2dict(querystring) del request_query2dict gc.collect() import times_utils try: timers = tuple(times_utils.parse_timers(data['timers'])) gc.collect() except ValueError as e: gc.collect() server.message = 'Timers error: %s' % e else: print('Save timers:', timers) # Save timers to flash: from config_files import save_py_config save_py_config(module_name=constants.TIMERS_PY_CFG_NAME, value=timers) save_py_config(module_name=constants.ACTIVE_DAYS_PY_CFG_NAME, value=tuple( [no for no in range(7) if 'd%i' % no in data])) del save_py_config del sys.modules['config_files'] gc.collect() power_timer_active = data.get('active') == 'on' del data # can be collected gc.collect() from rtc import update_rtc_dict update_rtc_dict( data={ constants.POWER_TIMER_ACTIVE_KEY: power_timer_active, # # Deactivate manual overwrite, so that timers are used: constants.RTC_KEY_MANUAL_OVERWRITE_TYPE: None, }) del update_rtc_dict del sys.modules['rtc'] gc.collect() # Update power timer: if power_timer_active: server.message = 'Timers saved and activated.' else: server.message = 'Timers saved and deactivated.' # Force set values by update_power_timer(): server.context.power_timer_active = None server.context.power_timer_today_active = None from power_timer import update_power_timer update_power_timer(context=server.context) gc.collect() from http_utils import send_redirect await send_redirect(writer, url='/set_timer/form/')