53
53
def parse_requirement_arg (spec ):
54
54
try :
55
55
return Requirement .parse (spec )
56
- except ValueError :
56
+ except ValueError as e :
57
57
raise DistutilsError (
58
58
"Not a URL, existing file, or requirement spec: %r" % (spec ,)
59
- )
59
+ ) from e
60
60
61
61
62
62
def parse_bdist_wininst (name ):
@@ -772,15 +772,15 @@ def open_url(self, url, warning=None):
772
772
if warning :
773
773
self .warn (warning , msg )
774
774
else :
775
- raise DistutilsError ('%s %s' % (url , msg ))
775
+ raise DistutilsError ('%s %s' % (url , msg )) from v
776
776
except urllib .error .HTTPError as v :
777
777
return v
778
778
except urllib .error .URLError as v :
779
779
if warning :
780
780
self .warn (warning , v .reason )
781
781
else :
782
782
raise DistutilsError ("Download error for %s: %s"
783
- % (url , v .reason ))
783
+ % (url , v .reason )) from v
784
784
except http_client .BadStatusLine as v :
785
785
if warning :
786
786
self .warn (warning , v .line )
@@ -789,13 +789,13 @@ def open_url(self, url, warning=None):
789
789
'%s returned a bad status line. The server might be '
790
790
'down, %s' %
791
791
(url , v .line )
792
- )
792
+ ) from v
793
793
except (http_client .HTTPException , socket .error ) as v :
794
794
if warning :
795
795
self .warn (warning , v )
796
796
else :
797
797
raise DistutilsError ("Download error for %s: %s"
798
- % (url , v ))
798
+ % (url , v )) from v
799
799
800
800
def _download_url (self , scheme , url , tmpdir ):
801
801
# Determine download filename
0 commit comments