netrc — обработка файлов netrc

Исходный код: Lib/netrc.py


Класс netrc анализирует и инкапсулирует формат файла netrc, используемый программой Unix ftp и другими FTP-клиентами.

class netrc.netrc([file])

Экземпляр netrc инкапсулирует данные из файла netrc. Аргумент инициализации, если он присутствует, указывает файл для синтаксического анализа. Если аргумент не указан, будет прочитан файл .netrc в домашнем каталоге пользователя, как определено в os.path.expanduser(). В противном случае будет вызвано исключение FileNotFoundError. Ошибки синтаксического анализа приведут к появлению NetrcParseError с диагностической информацией, включающей имя файла, номер строки и завершающий токен. Если в системе POSIX не указан аргумент, наличие паролей в файле .netrc вызовет проблему NetrcParseError, если владелец файла или разрешения небезопасны (принадлежат пользователю, отличному от пользователя, запускающего процесс, или доступны для чтения или запись любым другим пользователем). Это обеспечивает безопасность, аналогичную безопасности ftp и других программ, использующих .netrc.

Изменено в версии 3.4: Добавлена проверка разрешений POSIX.

Изменено в версии 3.7: os.path.expanduser() используется для определения местоположения файла .netrc, когда file не передается в качестве аргумента.

Изменено в версии 3.10: netrc попробуйте кодировку UTF-8, прежде чем использовать кодировку, специфичную для локали. Запись в файле netrc больше не должна содержать все токены. Значение пропущенных токенов по умолчанию равно пустой строке. Все токены и их значения теперь могут содержать произвольные символы, такие как пробелы и символы, отличные от ASCII. Если имя пользователя является анонимным, проверка безопасности не будет запущена.

exception netrc.NetrcParseError

Исключение, создаваемое классом netrc при обнаружении синтаксических ошибок в исходном тексте. Экземпляры этого исключения содержат три интересных признака:

msg

Текстовое объяснение ошибки.

filename

Имя исходного файла.

lineno

Номер строки, в которой была обнаружена ошибка.

Объекты netrc

Экземпляр netrc имеет следующие методы:

netrc.authenticators(host)

Возвращает 3 кортежа (login, account, password) аутентификаторов для хоста. Если файл netrc не содержит записи для данного хоста, верните кортеж, связанный с записью «по умолчанию». Если ни соответствующий хост, ни запись по умолчанию недоступны, верните None.

netrc.__repr__()

Выведите данные класса в виде строки в формате файла netrc. (При этом комментарии будут удалены, а порядок записей может быть изменен.)

Экземпляры netrc имеют общедоступные переменные экземпляра:

netrc.hosts

Словарь сопоставляет имена хостов с кортежами (login, account, password). Запись «по умолчанию», если таковая имеется, представляется как псевдохостинг с таким именем.

netrc.macros

Словарь сопоставляет имена макросов со списками строк.

Вернуться на верх