@@ -1217,9 +1217,8 @@ def from_text(cls, text):
12171217 if gs ['query' ]:
12181218 query = tuple (
12191219 (
1220- cast (Tuple [str , str ], qe .split (u"=" , 1 ))
1221- if u'=' in qe else
1222- (qe , None )
1220+ qe .split (u"=" , 1 ) # type: ignore[misc]
1221+ if u'=' in qe else (qe , None )
12231222 )
12241223 for qe in gs ['query' ].split (u"&" )
12251224 ) # type: QueryPairs
@@ -1860,72 +1859,48 @@ def rooted(self):
18601859 @property
18611860 def path (self ):
18621861 # type: () -> Sequence[Text]
1863- try :
1864- return cast (
1865- Tuple [Text , ...],
1866- self ._path # type: ignore[has-type] # can't determine
1867- )
1868- except AttributeError :
1869- pass
1870- self ._path = tuple ([
1871- _percent_decode (p , raise_subencoding_exc = True )
1872- for p in self ._url .path
1873- ])
1862+ if not hasattr (self , "_path" ):
1863+ self ._path = tuple ([
1864+ _percent_decode (p , raise_subencoding_exc = True )
1865+ for p in self ._url .path
1866+ ])
18741867 return self ._path
18751868
18761869 @property
18771870 def query (self ):
18781871 # type: () -> QueryPairs
1879- try :
1880- return cast (
1881- QueryPairs ,
1882- self ._query # type: ignore[has-type] # can't determine
1883- )
1884- except AttributeError :
1885- pass
1886- self ._query = cast (QueryPairs , tuple (
1887- tuple (
1888- _percent_decode (x , raise_subencoding_exc = True )
1889- if x is not None else None
1890- for x in (k , v )
1891- )
1892- for k , v in self ._url .query
1893- ))
1872+ if not hasattr (self , "_query" ):
1873+ self ._query = cast (QueryPairs , tuple (
1874+ tuple (
1875+ _percent_decode (x , raise_subencoding_exc = True )
1876+ if x is not None else None
1877+ for x in (k , v )
1878+ )
1879+ for k , v in self ._url .query
1880+ ))
18941881 return self ._query
18951882
18961883 @property
18971884 def fragment (self ):
18981885 # type: () -> Text
1899- try :
1900- return cast (
1901- Text ,
1902- self ._fragment # type: ignore[has-type] # can't determine
1903- )
1904- except AttributeError :
1905- pass
1906- frag = self ._url .fragment
1907- self ._fragment = _percent_decode (frag , raise_subencoding_exc = True )
1886+ if not hasattr (self , "_fragment" ):
1887+ frag = self ._url .fragment
1888+ self ._fragment = _percent_decode (frag , raise_subencoding_exc = True )
19081889 return self ._fragment
19091890
19101891 @property
19111892 def userinfo (self ):
19121893 # type: () -> Union[Tuple[str], Tuple[str, str]]
1913- try :
1914- return cast (
1894+ if not hasattr ( self , "_userinfo" ) :
1895+ self . _userinfo = cast (
19151896 Union [Tuple [str ], Tuple [str , str ]],
1916- self ._userinfo # type: ignore[has-type] # can't determine
1917- )
1918- except AttributeError :
1919- pass
1920- self ._userinfo = cast (
1921- Union [Tuple [str ], Tuple [str , str ]],
1922- tuple (
19231897 tuple (
1924- _percent_decode (p , raise_subencoding_exc = True )
1925- for p in self ._url .userinfo .split (':' , 1 )
1898+ tuple (
1899+ _percent_decode (p , raise_subencoding_exc = True )
1900+ for p in self ._url .userinfo .split (':' , 1 )
1901+ )
19261902 )
19271903 )
1928- )
19291904 return self ._userinfo
19301905
19311906 @property
@@ -1935,8 +1910,8 @@ def user(self):
19351910
19361911 @property
19371912 def uses_netloc (self ):
1938- # type: () -> bool
1939- return cast ( bool , self ._url .uses_netloc )
1913+ # type: () -> Optional[ bool]
1914+ return self ._url .uses_netloc
19401915
19411916 def replace (
19421917 self ,
@@ -1975,7 +1950,7 @@ def replace(
19751950 ' ["user", "password"], got %r' % (userinfo ,))
19761951 userinfo_text = u':' .join ([_encode_reserved (p ) for p in userinfo ])
19771952 else :
1978- userinfo_text = cast ( Text , _UNSET )
1953+ userinfo_text = _UNSET
19791954 new_url = self ._url .replace (scheme = scheme ,
19801955 host = host ,
19811956 path = path ,
0 commit comments