pyclbr — Stöd för Python-modulbläddrare

Källkod: Lib/pyclbr.py


Modulen pyclbr ger begränsad information om de funktioner, klasser och metoder som definieras i en Python-kodad modul. Informationen är tillräcklig för att implementera en modulbläddrare. Informationen hämtas från Python-källkoden i stället för genom att importera modulen, så den här modulen är säker att använda med opålitlig kod. Denna restriktion gör det omöjligt att använda denna modul med moduler som inte är implementerade i Python, inklusive alla standardmoduler och valfria tilläggsmoduler.

pyclbr.readmodule(module, path=None)

Returnerar en ordbok som mappar klassnamn på modulnivå till klassdeskriptorer. Om möjligt inkluderas deskriptorer för importerade basklasser. Parameter module är en sträng med namnet på den modul som ska läsas; det kan vara namnet på en modul inom ett paket. Om path anges är det en sekvens av katalogsökvägar som föregås av sys.path, som används för att hitta modulens källkod.

Denna funktion är det ursprungliga gränssnittet och behålls endast för bakåtkompatibilitet. Den returnerar en filtrerad version av följande.

pyclbr.readmodule_ex(module, path=None)

Returnerar ett ordboksbaserat träd som innehåller en funktions- eller klassdeskriptor för varje funktion och klass som definieras i modulen med en def- eller class-sats. Den returnerade ordlistan mappar funktions- och klassnamn på modulnivå till deras deskriptorer. Nestade objekt skrivs in i förälderns barnordbok. Precis som med readmodule namnger module den modul som ska läsas och path föregås av sys.path. Om modulen som läses är ett paket har den returnerade ordlistan en nyckel '__path__' vars värde är en lista som innehåller sökvägen för paketet.

Tillagd i version 3.7: Deskriptorer för nästlade definitioner. De nås via det nya attributet children. Var och en har ett nytt parent-attribut.

De deskriptorer som returneras av dessa funktioner är instanser av klasserna Function och Class. Användare förväntas inte skapa instanser av dessa klasser.

Funktionsobjekt

class pyclbr.Function

Class Function-instanser beskriver funktioner som definieras av def-satser. De har följande attribut:

file

Namn på den fil där funktionen definieras.

module

Namnet på den modul som definierar den funktion som beskrivs.

name

Namnet på funktionen.

lineno

Radnumret i filen där definitionen börjar.

parent

För funktioner på högsta nivån, None. För nästlade funktioner, den överordnade.

Tillagd i version 3.7.

children

En dictionary som mappar namn till deskriptorer för nästlade funktioner och klasser.

Tillagd i version 3.7.

is_async

True för funktioner som definieras med prefixet async, annars False.

Tillagd i version 3.10.

Klassobjekt

class pyclbr.Class

Class Class-instanser beskriver klasser som definieras av class-satser. De har samma egenskaper som Functions och två till.

file

Namn på den fil där klassen definieras.

module

Namnet på den modul som definierar den klass som beskrivs.

name

Namnet på klassen.

lineno

Radnumret i filen där definitionen börjar.

parent

För klasser på högsta nivån, None. För nästlade klasser, den överordnade.

Tillagd i version 3.7.

children

En ordbok som mappar namn till deskriptorer för nästlade funktioner och klasser.

Tillagd i version 3.7.

super

En lista med Class-objekt som beskriver de omedelbara basklasserna för den klass som beskrivs. Klasser som namnges som superklasser men som inte kan hittas med readmodule_ex() listas som en sträng med klassnamnet istället för som Class-objekt.

methods

En dictionary som mappar metodnamn till radnummer. Detta kan härledas från den nyare children-ordlistan, men finns kvar för bakåtkompatibilitet.