# `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])

  Uma instância ou instância de subclasse de `netrc` encapsula dados de um arquivo netrc. O argumento de inicialização, se presente, especifica o arquivo a ser analisado. Se nenhum argumento for fornecido, o arquivo `.netrc` no diretório inicial do usuário – conforme determinado por `os.path.expanduser()` – será lido. Caso contrário, uma exceção `FileNotFoundError` será levantada. Os erros de análise levantam `NetrcParseError` com informações de diagnóstico, incluindo o nome do arquivo, o número da linha e o token final.

  Se nenhum argumento for especificado em um sistema POSIX, a presença de senhas no arquivo `.netrc` levantará um `NetrcParseError` se a propriedade ou as permissões do arquivo forem inseguras (pertencentes a um usuário que não seja o usuário executando o processo ou acessível para leitura ou gravação por qualquer outro usuário). Isso implementa um comportamento de segurança equivalente ao do ftp e de outros programas que usam `.netrc`. Essas verificações de segurança não estão disponíveis em plataformas que não oferecem suporte a `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.