@@ -441,12 +441,6 @@ def load_from_csv(self,
441441 except AttributeError :
442442 pass
443443
444- if checkers .is_file_on_filesystem (as_string_or_file ):
445- with open (as_string_or_file , 'r' ) as file_ :
446- as_str = file_ .read ()
447- else :
448- as_str = as_string_or_file
449-
450444 property_column_map = validators .dict (property_column_map , allow_empty = False )
451445 cleaned_column_map = {}
452446 for key in property_column_map :
@@ -465,17 +459,32 @@ def load_from_csv(self,
465459 f'instead.' )
466460 cleaned_column_map [key ] = map_value
467461
468- columns , csv_records = utility_functions .parse_csv (
469- as_str ,
470- has_header_row = has_header_row ,
471- delimiter = delimiter ,
472- null_text = null_text ,
473- wrapper_character = wrapper_character ,
474- line_terminator = line_terminator ,
475- wrap_all_strings = False ,
476- double_wrapper_character_when_nested = False ,
477- escape_character = "\\ "
478- )
462+ if not checkers .is_on_filesystem (as_string_or_file ):
463+ as_str = as_string_or_file
464+ columns , csv_records = utility_functions .parse_csv (
465+ as_str ,
466+ has_header_row = has_header_row ,
467+ delimiter = delimiter ,
468+ null_text = null_text ,
469+ wrapper_character = wrapper_character ,
470+ line_terminator = line_terminator ,
471+ wrap_all_strings = False ,
472+ double_wrapper_character_when_nested = False ,
473+ escape_character = "\\ "
474+ )
475+ else :
476+ with open (as_string_or_file , 'r' , newline = '' ) as file_ :
477+ columns , csv_records = utility_functions .parse_csv (
478+ file_ ,
479+ has_header_row = has_header_row ,
480+ delimiter = delimiter ,
481+ null_text = null_text ,
482+ wrapper_character = wrapper_character ,
483+ line_terminator = line_terminator ,
484+ wrap_all_strings = False ,
485+ double_wrapper_character_when_nested = False ,
486+ escape_character = "\\ "
487+ )
479488
480489 for key in cleaned_column_map :
481490 map_value = cleaned_column_map [key ]
@@ -496,7 +505,14 @@ def load_from_csv(self,
496505 data_point_dict = {}
497506 for key in cleaned_column_map :
498507 map_value = cleaned_column_map [key ]
499- data_point_dict [key ] = record .get (map_value , None )
508+ value = record .get (map_value , None )
509+ if value and isinstance (value , str ) and ',' in value :
510+ test_value = value .replace (delimiter , '' )
511+ if checkers .is_numeric (test_value ):
512+ value = test_value
513+
514+ data_point_dict [key ] = value
515+
500516 data_point_dicts .append (data_point_dict )
501517
502518 self .data = data_point_dicts
@@ -651,14 +667,14 @@ def from_csv(cls,
651667 instance = cls (** series_kwargs )
652668 instance .load_from_csv (as_string_or_file ,
653669 property_column_map ,
654- has_header_row = True ,
655- delimiter = ',' ,
656- null_text = 'None' ,
657- wrapper_character = "'" ,
658- line_terminator = ' \r \n ' ,
659- wrap_all_strings = False ,
660- double_wrapper_character_when_nested = False ,
661- escape_character = " \\ " )
670+ has_header_row = has_header_row ,
671+ delimiter = delimiter ,
672+ null_text = null_text ,
673+ wrapper_character = wrapper_character ,
674+ line_terminator = line_terminator ,
675+ wrap_all_strings = wrap_all_strings ,
676+ double_wrapper_character_when_nested = double_wrapper_character_when_nested ,
677+ escape_character = escape_character )
662678
663679 return instance
664680
0 commit comments