Go to the latest version of this document.

# ``twisted`.`protocols`.`amp`.`Argument``

class documentation

`class Argument: (source)`

Known subclasses: `twisted.protocols.amp.AmpList`, `twisted.protocols.amp.Boolean`, `twisted.protocols.amp.DateTime`, `twisted.protocols.amp.Decimal`, `twisted.protocols.amp.Float`, `twisted.protocols.amp.Integer`, `twisted.protocols.amp.ListOf`, `twisted.protocols.amp.String`

Constructor: `Argument(optional)`

Implements interfaces: `twisted.protocols.amp.IArgumentType`

View In Hierarchy

Base-class of all objects that take values from Amp packets and convert them into objects for Python functions.

This implementation of `IArgumentType` provides several higher-level hooks for subclasses to override. See `toString` and `fromString` which will be used to define the behavior of `IArgumentType.toBox` and `IArgumentType.fromBox`, respectively.

Method | `__init__` | Create an Argument.
Method | `fromBox` | Populate an 'out' dictionary with mapping names to Python values decoded from an 'in' AmpBox mapping strings to string values.
Method | `fromString` | Convert a string to a Python object. Subclasses must implement this.
Method | `fromStringProto` | Convert a string to a Python value.
Method | `retrieve` | Retrieve the given key from the given dictionary, removing it if found.
Method | `toBox` | Populate an 'out' AmpBox with strings encoded from an 'in' dictionary mapping names to Python values.
Method | `toString` | Convert a Python object into a string for passing over the network.
Method | `toStringProto` | Convert a Python object to a string.
Instance Variable | `optional` | Undocumented

def __init__(self, optional=False): (source)
overridden in `twisted.protocols.amp.AmpList`, `twisted.protocols.amp.ListOf`

Create an Argument.

Parameters
optional | a boolean indicating whether this argument can be omitted in the protocol.

def fromBox(self, name, strings, objects, proto): (source)
from `twisted.protocols.amp.IArgumentType`
overridden in `twisted.protocols.amp._LocalArgument`

Populate an 'out' dictionary with mapping names to Python values decoded from an 'in' AmpBox mapping strings to string values.

Parameters
name:`bytes` | the argument name to retrieve
strings:AmpBox | The AmpBox to read string(s) from, a mapping of argument names to string values.
objects:dict | The dictionary to write object(s) to, a mapping of names to Python objects. Keys will be native strings.
proto | an AMP instance.

def fromString(self, inString): (source)
overridden in `twisted.protocols.amp.Boolean`, `twisted.protocols.amp.DateTime`, `twisted.protocols.amp.Decimal`, `twisted.protocols.amp.ListOf`, `twisted.protocols.amp.String`

Convert a string to a Python object. Subclasses must implement this.

Parameters
inString:`bytes` | the string to convert.

Returns
the decoded value from `inString`

def fromStringProto(self, inString, proto): (source)
overridden in `twisted.protocols.amp.AmpList`, `twisted.protocols.amp.Descriptor`

Convert a string to a Python value.

Parameters
inString:`bytes` | the string to convert.
proto:AMP | the protocol we are converting for.

Returns
a Python object.

def retrieve(self, d, name, proto): (source)

Retrieve the given key from the given dictionary, removing it if found.

Parameters
d | a dictionary.
name | a key in d.
proto | an instance of an AMP.

Returns
d[name].

Raises
`KeyError` | if I am not optional and no value was found.

def toBox(self, name, strings, objects, proto): (source)
from `twisted.protocols.amp.IArgumentType`

Populate an 'out' AmpBox with strings encoded from an 'in' dictionary mapping names to Python values.

Parameters
name:`bytes` | the argument name to retrieve
strings:AmpBox | The AmpBox to write string(s) to, a mapping of argument names to string values.
objects:dict | The dictionary to read object(s) from, a mapping of names to Python objects. Keys should be native strings.
proto:AMP | the protocol we are converting for.

def toString(self, inObject): (source)
overridden in `twisted.protocols.amp.Boolean`, `twisted.protocols.amp.DateTime`, `twisted.protocols.amp.Decimal`, `twisted.protocols.amp.Float`, `twisted.protocols.amp.Integer`, `twisted.protocols.amp.ListOf`, `twisted.protocols.amp.String`

Convert a Python object into a string for passing over the network.

Parameters
inObject | an object of the type that this Argument is intended to deal with.

Returns
`bytes` | the wire encoding of inObject

def toStringProto(self, inObject, proto): (source)
overridden in `twisted.protocols.amp.AmpList`, `twisted.protocols.amp.Descriptor`

Convert a Python object to a string.

Parameters
inObject | the object to convert.
proto:AMP | the protocol we are converting for.

optional = (source)

Undocumented