@@ -89,7 +89,24 @@ def create_package_from_datastep(table, input=None):
8989
9090 dscode = table .to_frame ().loc [0 , 'DataStepSrc' ]
9191
92- #TODO: Extract inputs into file
92+ # Extract inputs if provided
93+ input_vars = []
94+ # Workaround because sasdataframe does not like to be check if exist
95+ if str (input ) != "None" :
96+ from .pymas .python import ds2_variables
97+ vars = None
98+ if hasattr (input , 'columns' ):
99+ # Assuming input is a DataFrame representing model inputs. Use to
100+ # get input variables
101+ vars = ds2_variables (input )
102+ elif isinstance (input , type ):
103+ params = OrderedDict ([(k , input )
104+ for k in target_func .__code__ .co_varnames ])
105+ vars = ds2_variables (params )
106+ elif isinstance (input , dict ):
107+ vars = ds2_variables (input )
108+ if vars :
109+ input_vars = [var .as_model_metadata () for var in vars if not var .out ]
93110
94111 #Find outputs from ds code
95112 output_vars = []
@@ -123,7 +140,8 @@ def create_package_from_datastep(table, input=None):
123140 'fileMetadata.json' : file_metadata ,
124141 'dmcas_scorecode.sas' : dscode ,
125142 'ModelProperties.json' : {"scoreCodeType" :"dataStep" },
126- 'outputVar.json' : output_vars
143+ 'outputVar.json' : output_vars ,
144+ 'inputVar.json' : input_vars
127145 })
128146
129147 return zip_file
0 commit comments