class documentation

Banana implements the Banana s-expression protocol, client and server.

Method __init__ Undocumented
Method callExpressionReceived Undocumented
Method connectionMade Called when a connection is made.
Method connectionReady Surrogate for connectionMade Called after protocol negotiation.
Method dataReceived Called whenever data is received.
Method expressionReceived Called when an expression (list, string, or int) is received.
Method gotItem Undocumented
Method sendEncoded Send the encoded representation of the given object:
Method setPrefixLimit Set the prefix limit for decoding done by this protocol instance.
Class Variable incomingVocabulary Undocumented
Class Variable outgoingVocabulary Undocumented
Instance Variable buffer Undocumented
Instance Variable currentDialect Undocumented
Instance Variable isClient Undocumented
Instance Variable knownDialects These are the profiles supported by this Banana implementation.
Instance Variable listStack Undocumented
Instance Variable outgoingSymbolCount Undocumented
Instance Variable outgoingSymbols Undocumented
Instance Variable prefixLimit Undocumented
Method _encode Undocumented
Method _selectDialect Undocumented
Instance Variable _largestInt Undocumented
Instance Variable _largestLongInt Undocumented
Instance Variable _smallestInt Undocumented
Instance Variable _smallestLongInt Undocumented

Inherited from Protocol:

Method connectionLost Called when the connection is shut down.
Method logPrefix Return a prefix matching the class name, to identify log messages related to this protocol instance.
Class Variable factory Undocumented

Inherited from BaseProtocol (via Protocol):

Method makeConnection Make a connection to a transport and a server.
Instance Variable connected Undocumented
Instance Variable transport Undocumented

Inherited from Ephemeral (via Protocol, BaseProtocol):

Method __getstate__ Undocumented
Method __reduce__ Serialize any subclass of Ephemeral in a way which replaces it with Ephemeral itself.
Method __setstate__ Undocumented
Instance Variable __class__ Undocumented
def __init__(self, isClient=1): (source)

Undocumented

def callExpressionReceived(self, obj): (source)

Undocumented

def connectionMade(self): (source)

Called when a connection is made.

This may be considered the initializer of the protocol, because it is called when the connection is completed. For clients, this is called once the connection to the server has been established; for servers, this is called after an accept() call stops blocking and a socket has been received. If you need to send any greeting or initial message, do it here.

def connectionReady(self): (source)

Surrogate for connectionMade Called after protocol negotiation.

def dataReceived(self, chunk): (source)

Called whenever data is received.

Use this method to translate to a higher-level message. Usually, some callback will be made upon the receipt of each complete protocol message.

Parameters
chunkUndocumented
dataa string of indeterminate length. Please keep in mind that you will probably need to buffer some data, as partial (or multiple) protocol messages may be received! I recommend that unit tests for protocols call through to this method with differing chunk sizes, down to one byte at a time.
def expressionReceived(self, lst): (source)

Called when an expression (list, string, or int) is received.

def gotItem(self, item): (source)

Undocumented

def sendEncoded(self, obj): (source)

Send the encoded representation of the given object:

Parameters
objAn object to encode and send.
Returns
None
Raises
BananaErrorIf the given object is not an instance of one of the types supported by Banana.
def setPrefixLimit(self, limit): (source)

Set the prefix limit for decoding done by this protocol instance.

See Also
setPrefixLimit
incomingVocabulary: dict = (source)

Undocumented

outgoingVocabulary: dict[bytes, int] = (source)

Undocumented

Undocumented

currentDialect = (source)

Undocumented

isClient = (source)

Undocumented

knownDialects: list of bytes = (source)

These are the profiles supported by this Banana implementation.

listStack: list = (source)

Undocumented

outgoingSymbolCount: int = (source)

Undocumented

outgoingSymbols = (source)

Undocumented

prefixLimit = (source)

Undocumented

def _encode(self, obj, write): (source)

Undocumented

def _selectDialect(self, dialect): (source)

Undocumented

_largestInt = (source)

Undocumented

_largestLongInt = (source)

Undocumented

_smallestInt = (source)

Undocumented

_smallestLongInt = (source)

Undocumented