Skip to content

Commit

Permalink
Add types to logging_service.py (#1227)
Browse files Browse the repository at this point in the history
* add types to logging_service

Signed-off-by: Michael Carlstrom <[email protected]>
  • Loading branch information
InvincibleRMC authored Feb 28, 2024
1 parent 5cbb110 commit cbc2180
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 8 deletions.
18 changes: 13 additions & 5 deletions rclpy/rclpy/logging_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,23 @@
# See the License for the specific language governing permissions and
# limitations under the License.

from typing import TYPE_CHECKING

from rcl_interfaces.msg import LoggerLevel, SetLoggerLevelsResult
from rcl_interfaces.srv import GetLoggerLevels
from rcl_interfaces.srv import SetLoggerLevels
import rclpy
from rclpy.impl.logging_severity import LoggingSeverity
from rclpy.qos import qos_profile_services_default
from rclpy.validate_topic_name import TOPIC_SEPARATOR_STRING

if TYPE_CHECKING:
from rclpy.node import Node


class LoggingService:

def __init__(self, node):
def __init__(self, node: 'Node'):
node_name = node.get_name()

get_logger_name_service_name = \
Expand All @@ -39,27 +45,29 @@ def __init__(self, node):
self._set_logger_levels, qos_profile=qos_profile_services_default
)

def _get_logger_levels(self, request, response):
def _get_logger_levels(self, request: GetLoggerLevels.Request,
response: GetLoggerLevels.Response) -> GetLoggerLevels.Response:
for name in request.names:
logger_level = LoggerLevel()
logger_level.name = name
try:
ret_level = rclpy.logging.get_logger_level(name)
except RuntimeError:
ret_level = 0
ret_level = LoggingSeverity.UNSET
logger_level.level = ret_level
response.levels.append(logger_level)
return response

def _set_logger_levels(self, request, response):
def _set_logger_levels(self, request: SetLoggerLevels.Request,
response: SetLoggerLevels.Response) -> SetLoggerLevels.Response:
for level in request.levels:
result = SetLoggerLevelsResult()
result.successful = False
try:
rclpy.logging.set_logger_level(level.name, level.level, detailed_error=True)
result.successful = True
except ValueError:
result.reason = 'Failed reason: Invaild logger level.'
result.reason = 'Failed reason: Invalid logger level.'
except RuntimeError as e:
result.reason = str(e)
response.results.append(result)
Expand Down
6 changes: 3 additions & 3 deletions rclpy/test/test_logging_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,9 +196,9 @@ def test_set_logging_level_with_invalid_param(self):
response = future.result()
self.assertEqual(len(response.results), 2)
self.assertFalse(response.results[0].successful)
self.assertEqual(response.results[0].reason, 'Failed reason: Invaild logger level.')
self.assertEqual(response.results[0].reason, 'Failed reason: Invalid logger level.')
self.assertFalse(response.results[1].successful)
self.assertEqual(response.results[1].reason, 'Failed reason: Invaild logger level.')
self.assertEqual(response.results[1].reason, 'Failed reason: Invalid logger level.')
self.test_node.destroy_client(set_client)

def test_set_logging_level_with_partial_invalid_param(self):
Expand Down Expand Up @@ -228,7 +228,7 @@ def test_set_logging_level_with_partial_invalid_param(self):
self.assertTrue(response.results[0].successful)
self.assertEqual(response.results[0].reason, '')
self.assertFalse(response.results[1].successful)
self.assertEqual(response.results[1].reason, 'Failed reason: Invaild logger level.')
self.assertEqual(response.results[1].reason, 'Failed reason: Invalid logger level.')
self.assertTrue(response.results[2].successful)
self.assertEqual(response.results[2].reason, '')
self.test_node.destroy_client(set_client)
Expand Down

0 comments on commit cbc2180

Please sign in to comment.