#NEWLINE# def type_check_inputs( self , pvalueish ) : #NEWLINE# #INDENT# type_hints = self . get_type_hints ( ) . input_types #NEWLINE# if type_hints : #NEWLINE# #INDENT# ( args , kwargs ) = self . raw_side_inputs #NEWLINE# def element_type( side_input ) : #NEWLINE# #INDENT# if isinstance ( side_input , pvalue . PCollectionView ) : #NEWLINE# #INDENT# return side_input . element_type #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# return instance_to_type ( side_input ) #NEWLINE# #UNINDENT# #UNINDENT# arg_types = ( [ pvalueish . element_type ] + [ element_type ( v ) for v in hint ] ) #NEWLINE# kwargs_types = { k : element_type ( v ) for ( k , v ) in kwargs . items ( ) } #NEWLINE# argspec_fn = self . process_argspec_fn ( ) #NEWLINE# bindings = getcallargs_forhints ( argspec_fn , * arg_types , ** kwargs_types ) #NEWLINE# hints = getcallargs_forhints ( argspec_fn , * type_hints [ 0 ] , ** type_hints [ 1 ] ) #NEWLINE# for ( arg , hint ) in hints . items ( ) : #NEWLINE# #INDENT# if arg . startswith ( '%unknown%' ) : #NEWLINE# #INDENT# continue #NEWLINE# #UNINDENT# if ( hint is None ) : #NEWLINE# #INDENT# continue #NEWLINE# #UNINDENT# if ( not typehints . is_consistent_with ( bindings . get ( arg , typehints . Any ) , hint ) ) : #NEWLINE# #INDENT# raise typehints . TypeCheckError ( ( "Type hint violation for '%s': requires %s but got %s for %s" % ( self . label , hint , bindings [ arg ] , arg ) ) )