Amara 2.0. Amara XML toolkit is an open-source collection of Python tools for XML processing, not just tools that happen to be written in Python, but tools built from the ground up to use Python idioms and take advantage of the many advantages of Python over other programming languages.
Change abspath method to be iterative instead of recursive
Add xpatherate function, that generates xpath strings for multiple nodes together, utilizing the cache used to count nodes' positions, making the algorithm work faster by not recalculating nodes counts each time we get an xpath for a node.