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


Класс 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 не передаётся в качестве аргумента.

exception netrc.NetrcParseError

Исключение, создаваемое классом netrc при обнаружении синтаксических ошибок в исходном тексте. Экземпляры данного исключения предоставляют три интересных атрибута: msg — текстовое объяснение ошибки, filename — имя исходного файла, а lineno — номер строки, в которой была обнаружена ошибка.

Объекты netrc

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

netrc.authenticators(host)

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

netrc.__repr__()

Дамп данных класса в виде строки в формате netrc файла. (Это отбрасывает комментарии и может изменить порядок записей.)

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

netrc.hosts

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

netrc.macros

Словарь, отображающий имена макросов в списки строк.

Примечание

Пароли ограничены подмножеством набора символов ASCII. В паролях разрешены все знаки пунктуации ASCII, однако обратите внимание, что пробелы и непечатаемые символы в паролях запрещены. Это ограничение способа анализа файла .netrc, которое может быть удалено в будущем.