#NEWLINE# def __call__( self , func ) : #NEWLINE# #INDENT# 'Applies the @qc decorator to given function,\n        turning it into a testable property.\n        ' #NEWLINE# ( func_args , _ , _ , func_defaults ) = inspect . getargspec ( func ) #NEWLINE# ( func_args , func_defaults ) = ( ( func_args or [ ] ) , ( func_defaults or [ ] ) ) #NEWLINE# free_args_count = ( len ( func_args ) - len ( func_defaults ) ) #NEWLINE# if ( free_args_count > 0 ) : #NEWLINE# #INDENT# raise TypeError ( ( 'property has unbound variables: %s' % func_args [ : free_args_count ] ) ) #NEWLINE# #UNINDENT# return Property ( func = func , data = dict ( zip ( func_args , func_defaults ) ) , tests_count = self . tests_count )