#NEWLINE# def clone( self ) : #NEWLINE# #INDENT# '\n        Return a copy of this configuration object.\n\n        The new object will be identical in terms of configured sources and any\n        loaded/merged data, but will be a distinct object with no shared\n        mutable state.\n        ' #NEWLINE# new = Config ( ) #NEWLINE# for name in '\n            defaults\n            collection\n            system_prefix\n            system_path\n            system_found\n            system\n            user_prefix\n            user_path\n            user_found\n            user\n            project_home\n            project_prefix\n            project_path\n            project_found\n            project\n            env_prefix\n            env\n            runtime_path\n            runtime_found\n            runtime\n            overrides\n        ' . split ( ) : #NEWLINE# #INDENT# name = '_{0}' . format ( name ) #NEWLINE# setattr ( new , name , copy . deepcopy ( getattr ( self , name ) ) ) #NEWLINE# #UNINDENT# new . config = copy . deepcopy ( self . config ) #NEWLINE# return new