@@ -68,7 +68,7 @@ def _load_config(inputs, estimator):
68
68
69
69
@staticmethod
70
70
def _format_inputs_to_input_config (inputs ):
71
- # Circular dependency
71
+ # Deferred import due to circular dependency
72
72
from sagemaker .amazon .amazon_estimator import RecordSet
73
73
if isinstance (inputs , RecordSet ):
74
74
inputs = inputs .data_channel ()
@@ -84,14 +84,7 @@ def _format_inputs_to_input_config(inputs):
84
84
for k , v in inputs .items ():
85
85
input_dict [k ] = _Job ._format_string_uri_input (v )
86
86
elif isinstance (inputs , list ):
87
- for record in inputs :
88
- if not isinstance (record , RecordSet ):
89
- raise ValueError ('List compatible only with RecordSets.' )
90
-
91
- if record .channel in input_dict :
92
- raise ValueError ('Duplicate channels not allowed.' )
93
-
94
- input_dict [record .channel ] = record .records_s3_input ()
87
+ input_dict = _Job ._format_record_set_list_input (inputs )
95
88
else :
96
89
raise ValueError (
97
90
'Cannot format input {}. Expecting one of str, dict or s3_input' .format (inputs ))
@@ -123,6 +116,23 @@ def _format_string_uri_input(input):
123
116
'Cannot format input {}. Expecting one of str, s3_input, or file_input' .format (
124
117
input ))
125
118
119
+ @staticmethod
120
+ def _format_record_set_list_input (inputs ):
121
+ # Deferred import due to circular dependency
122
+ from sagemaker .amazon .amazon_estimator import RecordSet
123
+
124
+ input_dict = {}
125
+ for record in inputs :
126
+ if not isinstance (record , RecordSet ):
127
+ raise ValueError ('List compatible only with RecordSets.' )
128
+
129
+ if record .channel in input_dict :
130
+ raise ValueError ('Duplicate channels not allowed.' )
131
+
132
+ input_dict [record .channel ] = record .records_s3_input ()
133
+
134
+ return input_dict
135
+
126
136
@staticmethod
127
137
def _prepare_output_config (s3_path , kms_key_id ):
128
138
config = {'S3OutputPath' : s3_path }
0 commit comments