# `netrc` — Arquivo de processamento netrc

Código-fonte: Lib/netrc.py

A classe `netrc` analisa e encapsula o formato do arquivo netrc usado pelo programa Unix ftp e outros clientes FTP.

class netrc.netrc([file])

  A `netrc` instance or subclass instance encapsulates data from a netrc file. The initialization argument, if present, specifies the file to parse. If no argument is given, the file `.netrc` in the user’s home directory – as determined by `os.path.expanduser()` – will be read. Otherwise, a `FileNotFoundError` exception will be raised. Parse errors will raise `NetrcParseError` with diagnostic information including the file name, line number, and terminating token.

  If no argument is specified on a POSIX system, the presence of passwords in the `.netrc` file will raise a `NetrcParseError` if the file ownership or permissions are insecure (owned by a user other than the user running the process, or accessible for read or write by any other user). This implements security behavior equivalent to that of ftp and other programs that use `.netrc`. Such security checks are not available on platforms that do not support `os.getuid()`.

  Alterado na versão 3.4: Adicionada a verificação de permissão POSIX.

  Alterado na versão 3.7: `os.path.expanduser()` é usado para encontrar a localização do arquivo `.netrc` quando file não é passado como argumento.

  Alterado na versão 3.10: `netrc` tenta a codificação UTF-8 antes de usar a codificação específica da localidade. A entrada no arquivo netrc não precisa mais conter todos os tokens. O valor padrão dos tokens ausentes é uma string vazia. Todos os tokens e seus valores agora podem conter caracteres arbitrários, como espaços em branco e caracteres não ASCII. Se o nome de login for anônimo, ele não acionará a verificação de segurança.

exception netrc.NetrcParseError

  Exceção levantada pela classe `netrc` quando erros sintáticos são encontrados no texto fonte. As instâncias desta exceção fornecem três atributos interessantes:

  msg

    Explicação textual do erro.

  filename

    O nome do arquivo de origem.

  lineno

    O número da linha em que o erro foi encontrado.

## Objetos netrc

Uma instância da classe `netrc` tem os seguintes métodos:

netrc.authenticators(host)

  Retorna uma tupla de 3 elementos `(login, conta, senha)` dos autenticadores do host. Se o arquivo netrc não contém uma entrada para o host dado, retorna a tupla associada com a entrada padrão. Se não houver nenhum host correspondente nem uma entrada padrão estiver disponível, retorna `None`.

netrc.__repr__()

  Despeja os dados da classe como uma string no formato de um arquivo netrc. (Isso descarta os comentários e pode reordenar as entradas.)

Instâncias de `netrc` possuem variáveis de instância públicas:

netrc.hosts

  Dicionário mapeando nomes de host para tuplas `(login, conta, senha)`. A entrada default, se houver, é representada como um pseudo-host por esse nome.

netrc.macros

  Dicionário mapeando nomes de macros para listas de strings.