@@ -689,6 +689,7 @@ def __init__(self, defaults=None, dict_type=_default_dict,
689689 if defaults :
690690 self ._read_defaults (defaults )
691691 self ._allow_unnamed_section = allow_unnamed_section
692+ self ._loaded_files = []
692693
693694 def defaults (self ):
694695 return self ._defaults
@@ -757,6 +758,7 @@ def read(self, filenames, encoding=None):
757758 if isinstance (filename , os .PathLike ):
758759 filename = os .fspath (filename )
759760 read_ok .append (filename )
761+ self ._loaded_files .extend (read_ok )
760762 return read_ok
761763
762764 def read_file (self , f , source = None ):
@@ -1049,12 +1051,31 @@ def __iter__(self):
10491051 return itertools .chain ((self .default_section ,), self ._sections .keys ())
10501052
10511053 def __str__ (self ):
1052- config_dict = {section : dict (self .items (section )) for section in self .sections ()}
1054+ config_dict = {
1055+ section : dict (self .items (section )) for section in self .sections ()
1056+ }
10531057 return str (config_dict )
10541058
10551059 def __repr__ (self ):
1056- return f"<ConfigParser(default_section='{ self .default_section } ', interpolation={ self ._interpolation } )>"
1057-
1060+ init_params = {
1061+ "defaults" : self ._defaults if self ._defaults else None ,
1062+ "dict_type" : type (self ._dict ).__name__ ,
1063+ "allow_no_value" : self ._allow_no_value ,
1064+ "delimiters" : self ._delimiters ,
1065+ "strict" : self ._strict ,
1066+ "default_section" : self .default_section ,
1067+ "interpolation" : type (self ._interpolation ).__name__ ,
1068+ }
1069+ init_params = {k : v for k , v in init_params .items () if v is not None }
1070+
1071+ state_summary = {
1072+ "loaded_files" : self ._loaded_files if hasattr (self , '_loaded_files' ) else "(no files loaded)" ,
1073+ "sections" : len (self ._sections ),
1074+ }
1075+
1076+ return (f"<{ self .__class__ .__name__ } ("
1077+ f"params={ init_params } , "
1078+ f"state={ state_summary } )>" )
10581079
10591080 def _read (self , fp , fpname ):
10601081 """Parse a sectioned configuration file.
0 commit comments