From 68f2e96856a9ccf1705dbd989233264af1a46a66 Mon Sep 17 00:00:00 2001 From: russellballestrini Date: Mon, 1 Feb 2016 22:27:40 -0500 Subject: [PATCH] factored out a new not_authority method changed miniuri/miniuri.py --- miniuri/miniuri.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/miniuri/miniuri.py b/miniuri/miniuri.py index 2620a02..1ebf5ba 100644 --- a/miniuri/miniuri.py +++ b/miniuri/miniuri.py @@ -21,12 +21,8 @@ class Uri( object ): @property def uri( self ): """build and return uri from attributes""" - scheme = path = filename = query = fragment = '' - if self.scheme: scheme = self.scheme + '://' - if self.path: path = self.path - if self.query: query = '?' + self.query - if self.fragment: fragment = '#' + self.fragment - return ''.join([scheme,self.authority,path,filename,query,fragment]) + scheme = self.scheme + '://' if self.scheme else '' + return ''.join([scheme, self.authority, self.not_authority]) @uri.setter def uri( self, uri ): @@ -35,7 +31,7 @@ class Uri( object ): self.hostname = self.port = self.path = None self.filename = self.query = self.fragment = None - if '://' in uri: # attempt to parse scheme + if '://' in uri: self.scheme, uri = uri.split( '://' ) if '#' in uri: @@ -44,9 +40,10 @@ class Uri( object ): if '?' in uri: uri, self.query = uri.split('?') - # invoke authority setter + # invoke authority setter. self.authority = uri.split( '/' )[0] + # invoke path setter. self.path = uri[ len( self.authority ): ] @property @@ -71,6 +68,15 @@ class Uri( object ): if ':' in self.hostname: self.hostname, self.port = self.hostname.split( ':' ) + @property + def not_authority(self): + """return everything that isn't part of the authority.""" + path = query = fragment = '' + if self.path: path = self.path + if self.query: query = '?' + self.query + if self.fragment: fragment = '#' + self.fragment + return ''.join([path, query, fragment]) + @property def userinfo( self ): """return username:password, username, or None"""