def __init__(self, version_string, url=None):
super(Version, self).__init__()<EOL>self.url = url<EOL>version_string = str(version_string.strip())<EOL>self.version = None<EOL>if version_string.startswith('<STR_LIT:v>') or version_string.startswith('<STR_LIT:=>'):<EOL><INDENT>self.version = semantic_version.Version(version_string[<NUM_LIT:1>:], partial=False)<EOL><DEDENT>elif not version_string:<EOL><INDENT>self.version = TipVersion()<EOL><DEDENT>else:<EOL><INDENT>self.version = semantic_version.Version(version_string, partial=False)<EOL><DEDENT>self.url = url<EOL>
Wrap the semantic_version Version class so that we can represent
            'tip' versions as well as specific versions, and store an optional
            URL that can represent the location from which we can retrieve this
            version.

            Also add some useful methods for manipulating versions.