Skip to content

Commit

Permalink
Respect the NETRC environment variable
Browse files Browse the repository at this point in the history
  • Loading branch information
mpichette-apple committed Nov 1, 2020
1 parent 1431502 commit ba54371
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
3 changes: 2 additions & 1 deletion docs/user/quickstart.rst
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,8 @@ Note: Custom headers are given less precedence than more specific sources of inf

* Authorization headers set with `headers=` will be overridden if credentials
are specified in ``.netrc``, which in turn will be overridden by the ``auth=``
parameter.
parameter. Requests will search for the netrc file at `~/.netrc`, `~/_netrc`,
or at the path specified by the `NETRC` environment variable.
* Authorization headers will be removed if you get redirected off-host.
* Proxy-Authorization headers will be overridden by proxy credentials provided in the URL.
* Content-Length headers will be overridden when we can determine the length of the content.
Expand Down
10 changes: 8 additions & 2 deletions requests/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,14 +169,20 @@ def super_len(o):
def get_netrc_auth(url, raise_errors=False):
"""Returns the Requests tuple auth for a given url from netrc."""

netrc_file = os.environ.get('NETRC')
if netrc_file is not None:
netrc_locations = (netrc_file,)
else:
netrc_locations = ('~/{}'.format(f) for f in NETRC_FILES)

try:
from netrc import netrc, NetrcParseError

netrc_path = None

for f in NETRC_FILES:
for f in netrc_locations:
try:
loc = os.path.expanduser('~/{}'.format(f))
loc = os.path.expanduser(f)
except KeyError:
# os.path.expanduser can fail when $HOME is undefined and
# getpwuid fails. See https://bugs.python.org/issue20164 &
Expand Down

0 comments on commit ba54371

Please sign in to comment.