# 14.3. `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 subclasse de `netrc` encapsula os dados de um arquivo netrc. O argumento de inicialização, se presente, especifica o arquivo para ser analisado. Se o argumento não é dado, o arquivo `.netrc` no diretório inicial do usuário será lido. Os erros de análise serão lançados através de `NetrcParseError` com informações de diagnóstico incluindo o nome do arquivo, o número da linha, e o símbolo final. Se nenhum argumento é especificado em um sistema POSIX, a presença de senhas no arquivo `.netrc` irá gerar uma exceção `NetrcParseError` se o dono do arquivo ou permissões são inseguras (se o arquivo pertence a um usuário diferente do usuário que está executando o processo ou se o arquivo possui permissão de leitura e escrita para qualquer usuário). Isso implementa um comportamento seguro equivalente ao do ftp e outros programas que usam `.netrc`.

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

exception `netrc.``NetrcParseError`

  Exceção levantada pela classe `netrc` quando erros sintáticos são encontrados no texto de origem. As instâncias desta exceção fornecem três atributos interessantes: `msg` é uma explicação textual do erro, `filename` é o nome do arquivo-fonte e `lineno` fornece o número da linha na qual o erro foi encontrado.

## 14.3.1. Objetos netrc

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

`netrc.``authenticators`(host)

  Retorna uma 3-tuple `(login, account, password)` 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 correpondente nem uma entrada padrão estiver disponível, retorna `None`.

`netrc.``__repr__`()

  Despeja os dados da classe como uma sequência 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.

Nota

As senhas são limitadas a um subconjunto do conjunto de caracteres ASCII. Todas as pontuações ASCII são permitidas nas senhas; no entanto, observe que caracteres em branco e não imprimíveis não são permitidos nas senhas. Essa é uma limitação da maneira como o arquivo .netrc é analisado e pode ser removido no futuro.