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

Источник: Lib/netrc.py


Класс netrc анализирует и инкапсулирует формат файла netrc, используемый программой ftp Unix и другими 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

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