netrc — Bearbetning av netrc-fil

Källkod: Lib/netrc.py


Klassen netrc analyserar och kapslar in filformatet netrc som används av Unix-programmet ftp och andra FTP-klienter.

class netrc.netrc([file])

En netrc-instans eller underklass-instans kapslar in data från en netrc-fil. Initialiseringsargumentet, om det finns, anger vilken fil som skall analyseras. Om inget argument anges kommer filen .netrc i användarens hemkatalog – som bestäms av os.path.expanduser() – att läsas. Annars kommer ett FileNotFoundError undantag att uppstå. Parse-fel kommer att ge upphov till NetrcParseError med diagnostisk information inklusive filnamn, radnummer och avslutande token.

Om inget argument anges på ett POSIX-system kommer förekomsten av lösenord i filen .netrc att ge upphov till ett NetrcParseError om filägandet eller behörigheterna är osäkra (ägs av en annan användare än den som kör processen, eller är tillgängliga för läsning eller skrivning av någon annan användare). Detta implementerar ett säkerhetsbeteende som är likvärdigt med det i ftp och andra program som använder .netrc. Sådana säkerhetskontroller är inte tillgängliga på plattformar som inte stöder os.getuid().

Ändrad i version 3.4: Lagt till kontroll av POSIX-behörighet.

Ändrad i version 3.7: os.path.expanduser() används för att hitta platsen för .netrc-filen när file inte anges som argument.

Ändrad i version 3.10: netrc försöker UTF-8-kodning innan lokalspecifik kodning används. Posten i netrc-filen behöver inte längre innehålla alla tokens. Värdet för de tokens som saknas är som standard en tom sträng. Alla tokens och deras värden kan nu innehålla godtyckliga tecken, t.ex. blanksteg och icke-ASCII-tecken. Om inloggningsnamnet är anonymt kommer det inte att utlösa säkerhetskontrollen.

exception netrc.NetrcParseError

Undantag som skapas av netrc-klassen när syntaktiska fel påträffas i källtexten. Instanser av detta undantag ger tre intressanta attribut:

msg

Textuell förklaring av felet.

filename

Namnet på källfilen.

lineno

Radnumret där felet upptäcktes.

netrc-objekt

En instans av netrc har följande metoder:

netrc.authenticators(host)

Returnerar en 3-tupel (inloggning, konto, lösenord) av autentiserare för host. Om netrc-filen inte innehöll någon post för den angivna värden, returneras den tupel som är associerad med ”default”-posten. Om varken matchande värd eller standardpost finns tillgänglig, returneras None.

netrc.__repr__()

Dumpar klassdata som en sträng i samma format som en netrc-fil. (Detta tar bort kommentarer och kan ändra ordningen på posterna)

Instanser av netrc har offentliga instansvariabler:

netrc.hosts

Ordbok som mappar värdnamn till (login, account, password)-tupler. Den eventuella ”default”-posten representeras som en pseudovärd med det namnet.

netrc.macros

Ordbok som mappar makronamn till stränglistor.