@@ -301,11 +301,7 @@ def __init__(self, *args, **kwargs):
301301
302302 for src in ('xsrc' , 'ysrc' ):
303303 if src in kwargs and isinstance (kwargs [src ], Column ):
304- column = kwargs [src ]
305- if column .id == '' :
306- raise exceptions .InputError (exceptions .
307- ColumnHasntBeenUploadedErrorMessage (column .name , src ))
308- kwargs [src ] = kwargs [src ].id
304+ kwargs [src ] = self ._assign_id_to_src (src , kwargs [src ])
309305
310306 super (PlotlyDict , self ).__init__ (* args , ** kwargs )
311307 if issubclass (NAME_TO_CLASS [class_name ], PlotlyTrace ):
@@ -318,15 +314,22 @@ def __init__(self, *args, **kwargs):
318314 "a user interface." )
319315
320316 def __setitem__ (self , key , value ):
321- for src in ('xsrc' , 'ysrc' ):
322- if src == key and isinstance (value , Column ):
323- if value .id == '' :
324- raise exceptions .InputError (exceptions .
325- ColumnHasntBeenUploadedErrorMessage (value .name , src ))
326- value = value .id
317+ if key in ('xsrc' , 'ysrc' ):
318+ value = self ._assign_id_to_src (key , value )
327319
328320 return super (PlotlyDict , self ).__setitem__ (key , value )
329321
322+ def _assign_id_to_src (self , src_name , src_value ):
323+ if isinstance (src_value , Column ):
324+ if src_value .id == '' :
325+ err = exceptions .COLUMN_NOT_YET_UPLOADED_MESSAGE
326+ err .format (column_name = src_value .name , reference = src_name )
327+ raise exceptions .InputError (err )
328+ else :
329+ src_value = src_value .id
330+ return src_value
331+
332+
330333 def update (self , dict1 = None , ** dict2 ):
331334 """Update current dict with dict1 and then dict2.
332335
0 commit comments