# `netrc` — netrc file processing

Вихідний код: 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` try UTF-8 encoding before using locale specific encoding.

exception `netrc.``NetrcParseError`

  Exception raised by the `netrc` class when syntactical errors are encountered in source text. Instances of this exception provide three interesting attributes: `msg` is a textual explanation of the error, `filename` is the name of the source file, and `lineno` gives the line number on which the error was found.

## Об’єкти netrc

Екземпляр `netrc` має такі методи:

`netrc.``authenticators`(host)

  Повертає 3-кортеж `(логін, обліковий запис, пароль)` автентифікаторів для host. Якщо файл netrc не містить запису для даного хоста, поверніть кортеж, пов’язаний із записом «default». Якщо ні відповідний хост, ні запис за замовчуванням недоступні, поверніть `None`.

`netrc.``__repr__`()

  Дамп даних класу як рядок у форматі файлу netrc. (Це відхиляє коментарі та може змінити порядок записів.)

Екземпляри `netrc` мають публічні змінні екземпляра:

`netrc.``hosts`

  Словник зіставляє імена хостів із кортежами `(логін, обліковий запис, пароль)`. Запис «за замовчуванням», якщо такий є, представляється як псевдохост під таким іменем.

`netrc.``macros`

  Словник зіставляє імена макросів зі списками рядків.

Примітка

Passwords are limited to a subset of the ASCII character set. All ASCII punctuation is allowed in passwords, however, note that whitespace and non-printable characters are not allowed in passwords. This is a limitation of the way the .netrc file is parsed and may be removed in the future.