#!/usr/bin/env python3 # # Copyright 2018 Ettus Research, a National Instruments Company # # SPDX-License-Identifier: GPL-3.0-or-later # """ Implements decorators and utility functions to be used with the RPC server """ def no_claim(func): " Decorator for functions that require no token check " func._notok = True return func def no_rpc(func): " Decorator for functions that should not be exposed via RPC " func._norpc = True return func def get_map_for_rpc(map, log): """ ensure the map contains only string values otherwise it cannot be casted to std::map in C++ # TODO reconsider the workaround once we transition away from mprpc """ for key, value in map.items(): if value is None: log.warning('casting parameter "{}" from None to "n/a"'.format(key)) map[key] = "n/a" return map