#!/usr/bin/python -u # -*- coding: utf-8 -*- class NamespaceStack(): def __init__(self): # self.increaseDepth() self._depth = 1 self._prefix_2_uri = {} self._uri_2_prefix = {} self._pairs = [] pass def getDepth(self): return self._depth def incDepth(self): self._depth += 1 def decDepth(self): self._depth -= 1 def count(self): """Provider the current number of active namespaces.""" return len(self._pairs) def push(self, prefix, uri): self._prefix_2_uri[prefix] = uri self._uri_2_prefix[uri] = prefix self._pairs.append((prefix, uri)) #print "PUSH", prefix, uri def pop(self): self._pairs.pop() #print "POP" def getPrefix(self, index): if index < len(self._pairs): return self._pairs[index][0] else: return -1 def findPrefix(self, uri): if uri in self._uri_2_prefix: return self._uri_2_prefix[uri] else: return -1 def getUri(self, index): if index < len(self._pairs): return self._pairs[index][1] else: return -1 def findUri(self, prefix): if prefix in self._prefix_2_uri: return self._prefix_2_uri[prefix] else: return -1