Skip to content

Commit 4c3bfdb

Browse files
authored
Merge pull request #509 from butchland/feat/pass-headers-as-parameters-to-urlretrieve
[enhancement] Add the headers parameter to urlcheck, urlsave, urlretrieve
2 parents 86337ba + 2d59684 commit 4c3bfdb

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

fastcore/net.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,10 @@ def urljson(url, data=None, timeout=None):
130130
return json.loads(res) if res else {}
131131

132132
# %% ../nbs/03b_net.ipynb 23
133-
def urlcheck(url, timeout=10):
133+
def urlcheck(url, headers=None, timeout=10):
134134
if not url: return True
135135
try:
136-
with urlopen(url, timeout=timeout) as u: return u.status<400
136+
with urlopen(url, headers=headers, timeout=timeout) as u: return u.status<400
137137
except URLError: return False
138138
except socket.timeout: return False
139139
except InvalidURL: return False
@@ -144,9 +144,9 @@ def urlclean(url):
144144
return urlunparse(urlparse(str(url))[:3]+('','',''))
145145

146146
# %% ../nbs/03b_net.ipynb 26
147-
def urlretrieve(url, filename=None, reporthook=None, data=None, timeout=None):
147+
def urlretrieve(url, filename=None, reporthook=None, data=None, headers=None, timeout=None):
148148
"Same as `urllib.request.urlretrieve` but also works with `Request` objects"
149-
with contextlib.closing(urlopen(url, data, timeout=timeout)) as fp:
149+
with contextlib.closing(urlopen(url, data, headers=headers, timeout=timeout)) as fp:
150150
headers = fp.info()
151151
if filename: tfp = open(filename, 'wb')
152152
else:
@@ -177,11 +177,11 @@ def urldest(url, dest=None):
177177
return dest/name if dest.is_dir() else dest
178178

179179
# %% ../nbs/03b_net.ipynb 28
180-
def urlsave(url, dest=None, reporthook=None, timeout=None):
180+
def urlsave(url, dest=None, reporthook=None, headers=None, timeout=None):
181181
"Retrieve `url` and save based on its name"
182182
dest = urldest(url, dest)
183183
dest.parent.mkdir(parents=True, exist_ok=True)
184-
nm,msg = urlretrieve(url, dest, reporthook, timeout=timeout)
184+
nm,msg = urlretrieve(url, dest, reporthook, headers=headers, timeout=timeout)
185185
return nm
186186

187187
# %% ../nbs/03b_net.ipynb 30

nbs/03b_net.ipynb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -402,10 +402,10 @@
402402
"outputs": [],
403403
"source": [
404404
"#|export\n",
405-
"def urlcheck(url, timeout=10):\n",
405+
"def urlcheck(url, headers=None, timeout=10):\n",
406406
" if not url: return True\n",
407407
" try:\n",
408-
" with urlopen(url, timeout=timeout) as u: return u.status<400\n",
408+
" with urlopen(url, headers=headers, timeout=timeout) as u: return u.status<400\n",
409409
" except URLError: return False\n",
410410
" except socket.timeout: return False\n",
411411
" except InvalidURL: return False"
@@ -439,9 +439,9 @@
439439
"outputs": [],
440440
"source": [
441441
"#|export\n",
442-
"def urlretrieve(url, filename=None, reporthook=None, data=None, timeout=None):\n",
442+
"def urlretrieve(url, filename=None, reporthook=None, data=None, headers=None, timeout=None):\n",
443443
" \"Same as `urllib.request.urlretrieve` but also works with `Request` objects\"\n",
444-
" with contextlib.closing(urlopen(url, data, timeout=timeout)) as fp:\n",
444+
" with contextlib.closing(urlopen(url, data, headers=headers, timeout=timeout)) as fp:\n",
445445
" headers = fp.info()\n",
446446
" if filename: tfp = open(filename, 'wb')\n",
447447
" else:\n",
@@ -486,11 +486,11 @@
486486
"outputs": [],
487487
"source": [
488488
"#|export\n",
489-
"def urlsave(url, dest=None, reporthook=None, timeout=None):\n",
489+
"def urlsave(url, dest=None, reporthook=None, headers=None, timeout=None):\n",
490490
" \"Retrieve `url` and save based on its name\"\n",
491491
" dest = urldest(url, dest)\n",
492492
" dest.parent.mkdir(parents=True, exist_ok=True)\n",
493-
" nm,msg = urlretrieve(url, dest, reporthook, timeout=timeout)\n",
493+
" nm,msg = urlretrieve(url, dest, reporthook, headers=headers, timeout=timeout)\n",
494494
" return nm"
495495
]
496496
},
@@ -729,7 +729,7 @@
729729
"split_at_heading": true
730730
},
731731
"kernelspec": {
732-
"display_name": "Python 3 (ipykernel)",
732+
"display_name": "Python 3",
733733
"language": "python",
734734
"name": "python3"
735735
}

0 commit comments

Comments
 (0)