From 820ef249cfb6c07fdb0996e63cbc0f49b2f80573 Mon Sep 17 00:00:00 2001 From: Ellis Percival Date: Wed, 7 Jun 2017 17:05:09 +0100 Subject: [PATCH] Get element attributes dict without accessing private parameter _attributes Is there a reason `_attributes` should not be publicly accessible? It's useful for me to get this out as a dict. I guess there's a reason to not allow external changes to `_attributes`, hence the copy(). --- untangle.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/untangle.py b/untangle.py index 1263056..3265330 100755 --- a/untangle.py +++ b/untangle.py @@ -14,6 +14,7 @@ License: MIT License - http://www.opensource.org/licenses/mit-license.php """ import os +from copy import copy from xml.sax import make_parser, handler try: from StringIO import StringIO @@ -41,6 +42,14 @@ def __init__(self, name, attributes): self.children = [] self.is_root = False self.cdata = '' + + @property + def attributes(self): + """ + Access the element attributes as a dict. + Returns a copy of the dict to avoid mutation. + """ + return copy(self._attributes) def add_child(self, element): """