netrc — Verarbeitung von netrc-Dateien

Quellcode: Lib/netrc.py


Die Klasse netrc analysiert und kapselt das netrc-Dateiformat, das vom Unix ftp-Programm und anderen FTP-Clients verwendet wird.

class netrc.netrc([file])

Eine Instanz von netrc oder eine Unterklasseninstanz kapselt Daten aus einer netrc-Datei. Das Initialisierungsargument, falls vorhanden, gibt die zu analysierende Datei an. Wenn kein Argument angegeben wird, wird die Datei .netrc im Home-Verzeichnis des Benutzers – wie von os.path.expanduser() ermittelt – gelesen. Andernfalls wird eine FileNotFoundError Ausnahme ausgelöst. Analysefehler lösen NetrcParseError mit diagnostischen Informationen aus, einschließlich des Dateinamens, der Zeilennummer und des abschließenden Tokens.

Wenn auf einem POSIX-System kein Argument angegeben wird, löst die Anwesenheit von Passwörtern in der Datei .netrc eine NetrcParseError aus, wenn die Dateibesitzverhältnisse oder Berechtigungen unsicher sind (dem Benutzer, der den Prozess ausführt, nicht gehören oder für andere Benutzer lesbar oder beschreibbar sind). Dies implementiert ein Sicherheitsverhalten, das dem von ftp und anderen Programmen, die .netrc verwenden, entspricht. Solche Sicherheitsüberprüfungen sind auf Plattformen, die os.getuid() nicht unterstützen, nicht verfügbar.

Geändert in Version 3.4: Hinzugefügt wurde die POSIX-Berechtigungsprüfung.

Geändert in Version 3.7: os.path.expanduser() wird verwendet, um den Speicherort der Datei .netrc zu finden, wenn *file* nicht als Argument übergeben wird.

Geändert in Version 3.10: netrc versucht zuerst die UTF-8-Kodierung, bevor die lokalitätsspezifische Kodierung verwendet wird. Der Eintrag in der netrc-Datei muss nicht mehr alle Token enthalten. Für fehlende Token wird als Wert ein leerer String angenommen. Alle Token und ihre Werte können nun beliebige Zeichen enthalten, wie z. B. Leerzeichen und Nicht-ASCII-Zeichen. Wenn der Login-Name "anonymous" lautet, wird die Sicherheitsprüfung nicht ausgelöst.

exception netrc.NetrcParseError

Ausnahme, die von der Klasse netrc ausgelöst wird, wenn syntaktische Fehler im Quelltext auftreten. Instanzen dieser Ausnahme stellen drei interessante Attribute bereit

msg

Textuelle Erklärung des Fehlers.

filename

Der Name der Quelldatei.

lineno

Die Zeilennummer, in der der Fehler gefunden wurde.

netrc-Objekte

Eine Instanz von netrc hat die folgenden Methoden

netrc.authenticators(host)

Gibt ein 3-Tupel (login, account, password) von Authentifikatoren für host zurück. Wenn die netrc-Datei keinen Eintrag für den angegebenen Host enthielt, wird das Tupel zurückgegeben, das mit dem ‘default’-Eintrag verknüpft ist. Wenn weder ein übereinstimmender Host noch ein Standardeintrag verfügbar ist, wird None zurückgegeben.

netrc.__repr__()

Gibt die Klassendaten als Zeichenkette im Format einer netrc-Datei aus. (Dies verwirft Kommentare und kann die Einträge neu ordnen.)

Instanzen von netrc haben öffentliche Instanzvariablen

netrc.hosts

Dictionary, das Hostnamen auf (login, account, password) Tupel abbildet. Der ‘default’-Eintrag wird, falls vorhanden, als Pseudo-Host mit diesem Namen dargestellt.

netrc.macros

Dictionary, das Makronamen auf Zeichenkettenlisten abbildet.