from string import split


class USK:
    def __init__(self, path):
        components = split(path, '/')
        # Expecting USK@key/name/edition
        assert len(components) == 3

        self.key = components[0]
        self.name = components[1]
        self.edition = int(components[2])

        # TODO: Is stripping "freenet://" appropriate?
        if self.key.startswith('freenet:'):
            self.key = self.key[len('freenet:'):]
            if self.key.startswith('//'):
                self.key = self.key[len('//'):]

    def __str__(self):
        return '%s/%s/%s' % (self.key, self.name, self.edition)

    def __repr__(self):
        return "USK(%s)" % str(self)