xref: /third_party/python/Doc/library/netrc.rst (revision 7db96d56)
17db96d56Sopenharmony_ci
27db96d56Sopenharmony_ci:mod:`netrc` --- netrc file processing
37db96d56Sopenharmony_ci======================================
47db96d56Sopenharmony_ci
57db96d56Sopenharmony_ci.. module:: netrc
67db96d56Sopenharmony_ci   :synopsis: Loading of .netrc files.
77db96d56Sopenharmony_ci
87db96d56Sopenharmony_ci.. moduleauthor:: Eric S. Raymond <esr@snark.thyrsus.com>
97db96d56Sopenharmony_ci.. sectionauthor:: Eric S. Raymond <esr@snark.thyrsus.com>
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ci**Source code:** :source:`Lib/netrc.py`
127db96d56Sopenharmony_ci
137db96d56Sopenharmony_ci--------------
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_ciThe :class:`~netrc.netrc` class parses and encapsulates the netrc file format used by
167db96d56Sopenharmony_cithe Unix :program:`ftp` program and other FTP clients.
177db96d56Sopenharmony_ci
187db96d56Sopenharmony_ci
197db96d56Sopenharmony_ci.. class:: netrc([file])
207db96d56Sopenharmony_ci
217db96d56Sopenharmony_ci   A :class:`~netrc.netrc` instance or subclass instance encapsulates data from  a netrc
227db96d56Sopenharmony_ci   file.  The initialization argument, if present, specifies the file to parse.  If
237db96d56Sopenharmony_ci   no argument is given, the file :file:`.netrc` in the user's home directory --
247db96d56Sopenharmony_ci   as determined by :func:`os.path.expanduser` -- will be read.  Otherwise,
257db96d56Sopenharmony_ci   a :exc:`FileNotFoundError` exception will be raised.
267db96d56Sopenharmony_ci   Parse errors will raise :exc:`NetrcParseError` with diagnostic
277db96d56Sopenharmony_ci   information including the file name, line number, and terminating token.
287db96d56Sopenharmony_ci   If no argument is specified on a POSIX system, the presence of passwords in
297db96d56Sopenharmony_ci   the :file:`.netrc` file will raise a :exc:`NetrcParseError` if the file
307db96d56Sopenharmony_ci   ownership or permissions are insecure (owned by a user other than the user
317db96d56Sopenharmony_ci   running the process, or accessible for read or write by any other user).
327db96d56Sopenharmony_ci   This implements security behavior equivalent to that of ftp and other
337db96d56Sopenharmony_ci   programs that use :file:`.netrc`.
347db96d56Sopenharmony_ci
357db96d56Sopenharmony_ci   .. versionchanged:: 3.4 Added the POSIX permission check.
367db96d56Sopenharmony_ci
377db96d56Sopenharmony_ci   .. versionchanged:: 3.7
387db96d56Sopenharmony_ci      :func:`os.path.expanduser` is used to find the location of the
397db96d56Sopenharmony_ci      :file:`.netrc` file when *file* is not passed as argument.
407db96d56Sopenharmony_ci
417db96d56Sopenharmony_ci   .. versionchanged:: 3.10
427db96d56Sopenharmony_ci      :class:`netrc` try UTF-8 encoding before using locale specific
437db96d56Sopenharmony_ci      encoding.
447db96d56Sopenharmony_ci      The entry in the netrc file no longer needs to contain all tokens.  The missing
457db96d56Sopenharmony_ci      tokens' value default to an empty string.  All the tokens and their values now
467db96d56Sopenharmony_ci      can contain arbitrary characters, like whitespace and non-ASCII characters.
477db96d56Sopenharmony_ci      If the login name is anonymous, it won't trigger the security check.
487db96d56Sopenharmony_ci
497db96d56Sopenharmony_ci
507db96d56Sopenharmony_ci.. exception:: NetrcParseError
517db96d56Sopenharmony_ci
527db96d56Sopenharmony_ci   Exception raised by the :class:`~netrc.netrc` class when syntactical errors are
537db96d56Sopenharmony_ci   encountered in source text.  Instances of this exception provide three
547db96d56Sopenharmony_ci   interesting attributes:  :attr:`msg` is a textual explanation of the error,
557db96d56Sopenharmony_ci   :attr:`filename` is the name of the source file, and :attr:`lineno` gives the
567db96d56Sopenharmony_ci   line number on which the error was found.
577db96d56Sopenharmony_ci
587db96d56Sopenharmony_ci
597db96d56Sopenharmony_ci.. _netrc-objects:
607db96d56Sopenharmony_ci
617db96d56Sopenharmony_cinetrc Objects
627db96d56Sopenharmony_ci-------------
637db96d56Sopenharmony_ci
647db96d56Sopenharmony_ciA :class:`~netrc.netrc` instance has the following methods:
657db96d56Sopenharmony_ci
667db96d56Sopenharmony_ci
677db96d56Sopenharmony_ci.. method:: netrc.authenticators(host)
687db96d56Sopenharmony_ci
697db96d56Sopenharmony_ci   Return a 3-tuple ``(login, account, password)`` of authenticators for *host*.
707db96d56Sopenharmony_ci   If the netrc file did not contain an entry for the given host, return the tuple
717db96d56Sopenharmony_ci   associated with the 'default' entry.  If neither matching host nor default entry
727db96d56Sopenharmony_ci   is available, return ``None``.
737db96d56Sopenharmony_ci
747db96d56Sopenharmony_ci
757db96d56Sopenharmony_ci.. method:: netrc.__repr__()
767db96d56Sopenharmony_ci
777db96d56Sopenharmony_ci   Dump the class data as a string in the format of a netrc file. (This discards
787db96d56Sopenharmony_ci   comments and may reorder the entries.)
797db96d56Sopenharmony_ci
807db96d56Sopenharmony_ciInstances of :class:`~netrc.netrc` have public instance variables:
817db96d56Sopenharmony_ci
827db96d56Sopenharmony_ci
837db96d56Sopenharmony_ci.. attribute:: netrc.hosts
847db96d56Sopenharmony_ci
857db96d56Sopenharmony_ci   Dictionary mapping host names to ``(login, account, password)`` tuples.  The
867db96d56Sopenharmony_ci   'default' entry, if any, is represented as a pseudo-host by that name.
877db96d56Sopenharmony_ci
887db96d56Sopenharmony_ci
897db96d56Sopenharmony_ci.. attribute:: netrc.macros
907db96d56Sopenharmony_ci
917db96d56Sopenharmony_ci   Dictionary mapping macro names to string lists.
92