@@ -89,7 +89,24 @@ def create_package_from_datastep(table, input=None):
89
89
90
90
dscode = table .to_frame ().loc [0 , 'DataStepSrc' ]
91
91
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 ]
93
110
94
111
#Find outputs from ds code
95
112
output_vars = []
@@ -123,7 +140,8 @@ def create_package_from_datastep(table, input=None):
123
140
'fileMetadata.json' : file_metadata ,
124
141
'dmcas_scorecode.sas' : dscode ,
125
142
'ModelProperties.json' : {"scoreCodeType" :"dataStep" },
126
- 'outputVar.json' : output_vars
143
+ 'outputVar.json' : output_vars ,
144
+ 'inputVar.json' : input_vars
127
145
})
128
146
129
147
return zip_file
0 commit comments