Ticket #6066: 6066.diff

File 6066.diff, 3.5 KB (added by borko, 3 years ago)

diff v1

  • twisted/internet/base.py

    diff --git a/twisted/internet/base.py b/twisted/internet/base.py
    index 46e9217..5f10c6c 100644
    a b class DelayedCall: 
    176176        if self._str is not None:
    177177            return self._str
    178178        if hasattr(self, 'func'):
    179             # This code should be replaced by a utility function in reflect;
    180             # see ticket #6066:
    181             if hasattr(self.func, '__qualname__'):
    182                 func = self.func.__qualname__
    183             elif hasattr(self.func, '__name__'):
    184                 func = self.func.func_name
    185                 if hasattr(self.func, 'im_class'):
    186                     func = self.func.im_class.__name__ + '.' + func
    187             else:
    188                 func = reflect.safe_repr(self.func)
     179            func = reflect.getFunctionName(self.func)
    189180        else:
    190181            func = None
    191182
  • twisted/internet/task.py

    diff --git a/twisted/internet/task.py b/twisted/internet/task.py
    index 6e7b908..11afa17 100644
    a b class LoopingCall: 
    244244
    245245
    246246    def __repr__(self):
    247         if hasattr(self.f, '__qualname__'):
    248             func = self.f.__qualname__
    249         elif hasattr(self.f, '__name__'):
    250             func = self.f.__name__
    251             if hasattr(self.f, 'im_class'):
    252                 func = self.f.im_class.__name__ + '.' + func
    253         else:
    254             func = reflect.safe_repr(self.f)
    255 
    256247        return 'LoopingCall<%r>(%s, *%s, **%s)' % (
    257             self.interval, func, reflect.safe_repr(self.a),
     248            self.interval, reflect.getFunctionName(self.f), reflect.safe_repr(self.a),
    258249            reflect.safe_repr(self.kw))
    259250
    260251
  • twisted/python/_reflectpy3.py

    diff --git a/twisted/python/_reflectpy3.py b/twisted/python/_reflectpy3.py
    index c0451e9..226bb20 100644
    a b def _determineClassName(x): 
    286286            return '<BROKEN CLASS AT 0x%x>' % unsignedID(c)
    287287
    288288
     289def getFunctionName(funptr):
     290    """
     291    Return name of the function passed
     292   
     293    @param funptr: Searched function.
     294   
     295    @return: Function name or None if it does not exist for passed object
     296    """
     297    if hasattr( funptr , '__qualname__'):
     298        func = funptr.__qualname__
     299    elif hasattr( funptr, '__name__'):
     300        func = funptr.func_name
     301        if hasattr(funptr, 'im_class'):
     302            func = funptr.im_class.__name__ + '.' + func
     303    else:
     304        func = safe_repr(funptr)
     305    return func
     306
     307
    289308def _safeFormat(formatter, o):
    290309    """
    291310    Helper function for L{safe_repr} and L{safe_str}.
  • twisted/python/test/test_reflectpy3.py

    diff --git a/twisted/python/test/test_reflectpy3.py b/twisted/python/test/test_reflectpy3.py
    index acd8f8d..8722b10 100644
    a b class LookupsTestCase(TestCase): 
    350350
    351351
    352352
     353class GetFunctionNameTestCase(TestCase):
     354    """
     355    Tests for L{getFunctionName}.
     356    """
     357
     358    def test_function(self):
     359        """
     360        L{getFunctionName} should return function name passed as a second argument.
     361        """
     362        self.assertEqual(
     363            reflect.getFunctionName(reflect.getFunctionName),
     364            "getFunctionName")
     365
     366    def test_memberFunction(self):
     367        """
     368        L{getFunctionName} should return fully qualified function name passed as a second argument.
     369        """
     370        self.assertEqual(
     371            reflect.getFunctionName(self.test_memberFunction),
     372            "GetFunctionNameTestCase.test_memberFunction")
     373
     374
     375
    353376class Breakable(object):
    354377
    355378    breakRepr = False