ursine is packaged and available on pypi
pip install ursine
from ursine import URI, Header
# build new URIs / Headers
uri = URI.build(scheme='sip', host='10.10.10.10', transport='tcp')
print(uri) # sip:10.10.10.10;transport=tcp
header = Header.build(display_name='Alice', uri=uri, tag='xyz')
print(header) # "Alice" <sip:10.10.10.10;transport=tcp>;tag=xyz
# parse existing ones
uri = URI('sips:[::1]:5080')
uri.scheme == 'sips'
uri.host == '[::1]'
uri.transport == 'tcp'
header = Header('"Bob" <sips:[::1]:5080>;tag=abc')
header.display_name == 'Bob'
header.tag == 'abc'
header.uri.scheme == 'sips'
# Header and URI objects are immutable
alice_uri = URI('sip:alice@10.10.10.10')
modified_uri = alice_uri.with_user(None) # 'sip:10.10.10.10;transport=udp'
modified_uri != alice_uri