netrc — Verarbeitung von netrc-Dateien

Quellcode: Lib/netrc.py


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

class netrc.netrc([file])

Eine Instanz von netrc oder einer Unterklasse kapselt die Daten aus einer netrc-Datei. Das Initialisierungsargument gibt, falls vorhanden, die zu parsende Datei an. Ohne Argument wird die Datei .netrc im Heimatverzeichnis des Benutzers gelesen – ermittelt über os.path.expanduser(). Andernfalls wird eine Ausnahme FileNotFoundError ausgelöst. Bei Parse-Fehlern wird NetrcParseError mit Diagnoseangaben ausgelöst, darunter Dateiname, Zeilennummer und abschließendes Token.

Wird auf einem POSIX-System kein Argument angegeben, löst das Vorhandensein von Passwörtern in der Datei .netrc einen NetrcParseError aus, wenn Eigentümer oder Zugriffsrechte der Datei unsicher sind (Eigentum eines anderen Benutzers als desjenigen, der den Prozess ausführt, oder Lese- bzw. Schreibzugriff für andere Benutzer). Damit wird ein Sicherheitsverhalten umgesetzt, das dem von ftp und anderen Programmen entspricht, die .netrc verwenden. Auf Plattformen, die os.getuid() nicht unterstützen, stehen solche Sicherheitsprüfungen nicht zur Verfügung.

Geändert in Version 3.4: Die POSIX-Rechteprüfung wurde hinzugefügt.

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

Geändert in Version 3.10: netrc try UTF-8 encoding before using locale specific encoding. The entry in the netrc file no longer needs to contain all tokens. The missing tokens‘ value default to an empty string. All the tokens and their values now can contain arbitrary characters, like whitespace and non-ASCII characters. If the login name is anonymous, it won’t trigger the security check.

exception netrc.NetrcParseError

Ausnahme, die von der Klasse netrc ausgelöst wird, wenn im Quelltext Syntaxfehler auftreten. Instanzen dieser Ausnahme bieten drei interessante Attribute:

msg

Textuelle Erläuterung 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) mit den Authentifizierungsdaten für host zurück. Enthält die netrc-Datei keinen Eintrag für den angegebenen Host, wird das Tupel des Eintrags „default“ zurückgegeben. Ist weder ein passender Host noch ein Standardeintrag vorhanden, wird None zurückgegeben.

netrc.__repr__()

Gibt die Daten der Klasse als Zeichenkette im Format einer netrc-Datei aus. (Dabei gehen Kommentare verloren, und die Reihenfolge der Einträge kann sich ändern.)

Instanzen von netrc haben öffentliche Instanzvariablen:

netrc.hosts

Dictionary, das Hostnamen auf Tupel der Form (login, account, password) abbildet. Der Eintrag „default“ wird, falls vorhanden, als Pseudo-Host unter diesem Namen dargestellt.

netrc.macros

Dictionary, das Makronamen auf Listen von Zeichenketten abbildet.