def sync(): server = Server(API_BASE_URL, CONTROLLER_ID) local = File(STATE_FILE) server_state = server.get_state() if local.present(): local.load() else: local.data = server_state local.save() local_state = local.data changer = Changer(local_state, remote_state) current_state = changer.process_change() server.post_state(current_state)