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