summaryrefslogtreecommitdiff
path: root/lib/svg/svg.py
blob: 0ec43f751a7e6bdbe6b2dc20c61231433b7c3772 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from ..utils import cache


@cache
def get_document(node):
    return node.getroottree().getroot()


def generate_unique_id(document, prefix="path"):
    doc_ids = {node.get('id') for node in document.iterdescendants() if 'id' in node.attrib}

    i = 1
    while True:
        new_id = "%s%d" % (prefix, i)
        if new_id not in doc_ids:
            break
        i += 1

    return new_id