pyfingerd structure

pyfingerd’s conception is centered around the server class, pyfingerd.core.FingerServer, which itself makes use of two other objects: an interface and a formatter.


An interface provides the data presented by the server to the client.

Interfaces in pyfingerd are subclasses of pyfingerd.core.FingerInterface. Interfaces must override the methods from this class, mostly the one to search for users, in order to provide data from their source.

Usable interfaces throughout pyfingerd are the following:


Base class and dummy interface, doesn’t transmit nor yield any user results.


Interface following a scenario; see Fictional interfaces for more information.


Interface using the POSIX user accounting databases.


Interface bound to the one using native system interface:

  • pyfingerd.posix.FingerPOSIXInterface if on Linux or *BSD.

  • pyfingerd.core.FingerInterface by default.


A formatter takes data obtained by the server for a given request through its interface, and presents it using text.

Formatters in pyfingerd are subclasses of pyfingerd.core.FingerFormatter. Existing formatters throughout pyfingerd are the following:


Base class, outputs similarly to RFC 1288.