@@ -440,12 +440,6 @@ def load_from_csv(self,
440440 except AttributeError :
441441 pass
442442
443- if checkers .is_file_on_filesystem (as_string_or_file ):
444- with open (as_string_or_file , 'r' ) as file_ :
445- as_str = file_ .read ()
446- else :
447- as_str = as_string_or_file
448-
449443 property_column_map = validators .dict (property_column_map , allow_empty = False )
450444 cleaned_column_map = {}
451445 for key in property_column_map :
@@ -464,17 +458,32 @@ def load_from_csv(self,
464458 f'instead.' )
465459 cleaned_column_map [key ] = map_value
466460
467- columns , csv_records = utility_functions .parse_csv (
468- as_str ,
469- has_header_row = has_header_row ,
470- delimiter = delimiter ,
471- null_text = null_text ,
472- wrapper_character = wrapper_character ,
473- line_terminator = line_terminator ,
474- wrap_all_strings = False ,
475- double_wrapper_character_when_nested = False ,
476- escape_character = "\\ "
477- )
461+ if not checkers .is_on_filesystem (as_string_or_file ):
462+ as_str = as_string_or_file
463+ columns , csv_records = utility_functions .parse_csv (
464+ as_str ,
465+ has_header_row = has_header_row ,
466+ delimiter = delimiter ,
467+ null_text = null_text ,
468+ wrapper_character = wrapper_character ,
469+ line_terminator = line_terminator ,
470+ wrap_all_strings = False ,
471+ double_wrapper_character_when_nested = False ,
472+ escape_character = "\\ "
473+ )
474+ else :
475+ with open (as_string_or_file , 'r' , newline = '' ) as file_ :
476+ columns , csv_records = utility_functions .parse_csv (
477+ file_ ,
478+ has_header_row = has_header_row ,
479+ delimiter = delimiter ,
480+ null_text = null_text ,
481+ wrapper_character = wrapper_character ,
482+ line_terminator = line_terminator ,
483+ wrap_all_strings = False ,
484+ double_wrapper_character_when_nested = False ,
485+ escape_character = "\\ "
486+ )
478487
479488 for key in cleaned_column_map :
480489 map_value = cleaned_column_map [key ]
@@ -495,7 +504,14 @@ def load_from_csv(self,
495504 data_point_dict = {}
496505 for key in cleaned_column_map :
497506 map_value = cleaned_column_map [key ]
498- data_point_dict [key ] = record .get (map_value , None )
507+ value = record .get (map_value , None )
508+ if value and isinstance (value , str ) and ',' in value :
509+ test_value = value .replace (delimiter , '' )
510+ if checkers .is_numeric (test_value ):
511+ value = test_value
512+
513+ data_point_dict [key ] = value
514+
499515 data_point_dicts .append (data_point_dict )
500516
501517 self .data = data_point_dicts
@@ -650,14 +666,14 @@ def from_csv(cls,
650666 instance = cls (** series_kwargs )
651667 instance .load_from_csv (as_string_or_file ,
652668 property_column_map ,
653- has_header_row = True ,
654- delimiter = ',' ,
655- null_text = 'None' ,
656- wrapper_character = "'" ,
657- line_terminator = ' \r \n ' ,
658- wrap_all_strings = False ,
659- double_wrapper_character_when_nested = False ,
660- escape_character = " \\ " )
669+ has_header_row = has_header_row ,
670+ delimiter = delimiter ,
671+ null_text = null_text ,
672+ wrapper_character = wrapper_character ,
673+ line_terminator = line_terminator ,
674+ wrap_all_strings = wrap_all_strings ,
675+ double_wrapper_character_when_nested = double_wrapper_character_when_nested ,
676+ escape_character = escape_character )
661677
662678 return instance
663679
0 commit comments