uhd/mpm/python/usrp_mpm/rpc_utils.py
Joerg Hofrichter ba5028cf57 mpm: avoid importing from rpc_server when importing usrp_mpm
Importing from usrp_mpm.rpc_server imports a lot of dependencies which are
unnecessary if the rpc_server functionality is not actually needed.

Move the decorator functions to a new file rpc_utils.py and import only
from this file inside periph_manager.

usrp_hwd.py needs additional dependencies which are specifically imported:
- usrp_mpm.rpc_server.spawn_rpc_process
- usrp_mpm.discovery.spawn_discovery_process
2024-06-11 10:20:08 +02:00

31 lines
887 B
Python

#!/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<string, string> 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