From ec3d2c8453c79aee4dd9b5f5f90a22e0905d9a5a Mon Sep 17 00:00:00 2001 From: Douglas RAILLARD Date: Tue, 4 Jun 2019 16:16:51 +0100 Subject: [PATCH] exekall: Fix utils.get_name() Handle None without exceptions. --- tools/exekall/exekall/_utils.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/tools/exekall/exekall/_utils.py b/tools/exekall/exekall/_utils.py index 8337aa4fa..e5313c10e 100644 --- a/tools/exekall/exekall/_utils.py +++ b/tools/exekall/exekall/_utils.py @@ -134,6 +134,10 @@ def get_name(obj, full_qual=True, qual=True, pretty=False): else: _get_name = lambda x: x.__name__ + if obj is None: + pretty = True + obj = type(obj) + if pretty: for prettier_obj in {None, NoValue}: if obj == type(prettier_obj): @@ -145,12 +149,16 @@ def get_name(obj, full_qual=True, qual=True, pretty=False): # Add the module's name in front of the name to get a fully # qualified name if full_qual: - module_name = obj.__module__ - module_name = ( - module_name + '.' - if module_name != '__main__' and module_name != 'builtins' - else '' - ) + try: + module_name = obj.__module__ + except AttributeError: + module_name = '' + else: + module_name = ( + module_name + '.' + if module_name != '__main__' and module_name != 'builtins' + else '' + ) else: module_name = '' -- GitLab