[issue31322] SimpleNamespace deep copy

New submission from Pritish Patil: I am new here and not sure how I can suggest this properly. When using nested SimpleNamespaces, a making a copy by using new_NS=SimpleNamespace(**namespace.__dict__.copy()) only copies the highest level namespace. This is expected in python as shallow copies are preferred. But, a nested deep copy function would be nice, and will allow easier use. I suggest a simple def my_namespace_copy(namespace): '''Recursively deep copies nested namespaces''' new_NS=SimpleNamespace(**namespace.__dict__.copy()) for i in new_NS.__dict__.keys(): if(type(new_NS.__dict__[i]) == types.SimpleNamespace): new_NS.__setattr__(i, my_namespace_copy(new_NS.__getattribute__(i))) return new_NS I am not sure of the exact implementation of the class and guess this would need some appropriate modifications. I suggest this be added at SimpleNameSpace.__copy__ or at SimpleNameSpace.__deepcopy__ ---------- assignee: docs@python components: Documentation, Library (Lib) messages: 301112 nosy: Pritish Patil, docs@python priority: normal severity: normal status: open title: SimpleNamespace deep copy type: enhancement versions: Python 3.5, Python 3.6, Python 3.7 _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue31322> _______________________________________

Changes by Pritish Patil <iampritishpatil@gmail.com>: ---------- components: +Extension Modules -Documentation, Library (Lib) _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue31322> _______________________________________
participants (1)
-
Pritish Patil