Elements

Element

class refract.elements.Element(element: str = None, meta: refract.elements.base.Metadata = None, attributes: refract.elements.base.Attributes = None, content=None)

Base Refract Element

children

Returns all of the children elements.

defract

Returns the underlying (unrefracted) value of element

>>> Element(content='Hello').defract
'Hello'
>>> Element(content=Element(content='Hello')).defract
'Hello'
>>> Element(content=[Element(content='Hello')]).defract
['Hello']
recursive_children

Generator returning all recursive children elements.

String

class refract.elements.String(meta: refract.elements.base.Metadata = None, attributes: refract.elements.base.Attributes = None, content: str = None)

Refract String Element

>>> String(content='Hello')

Number

class refract.elements.Number(meta: refract.elements.base.Metadata = None, attributes: refract.elements.base.Attributes = None, content=None)

Refract Number Element

>>> Number(content=5)

Boolean

class refract.elements.Boolean(meta: refract.elements.base.Metadata = None, attributes: refract.elements.base.Attributes = None, content: bool = None)

Refract Boolean Element

>>> Boolean(content=True)

Null

class refract.elements.Null(meta: refract.elements.base.Metadata = None, attributes: refract.elements.base.Attributes = None)

Refract Null Element

>>> Null()

Array

class refract.elements.Array(meta: refract.elements.base.Metadata = None, attributes: refract.elements.base.Attributes = None, content=None)

Refract Object Element

>>> Array(content=['Hello'])
>>> Array(content=[Element()])
__delitem__(index: int)
>>> array = Array(content=[Element()])
>>> del array[0]
__getitem__(index: int)

Returns the element at the given index.

>>> array = Array(content=[String(content='Hello')])
>>> array[0]
String(content='Hello')
__init__(meta: refract.elements.base.Metadata = None, attributes: refract.elements.base.Attributes = None, content=None) → None

Initialize self. See help(type(self)) for accurate signature.

__len__()

Number of items in the array.

>>> len(Array())
0
append(element)

Append an element onto the array.

>>> array = Array()
>>> array.append('test')
clear()

Removes all the elements from the array.

index(element: refract.elements.base.Element) → int

Return the index in the array of the first item whose value is element. It is an error if there is no such item.

>>> element = String('hello')
>>> array = Array(content=[element])
>>> array.index(element)
0
insert(index: int, element)

Insert an element at a given position.

>>> array = Array()
>>> array.insert(0, Element())

Object

class refract.elements.Object(meta: refract.elements.base.Metadata = None, attributes: refract.elements.base.Attributes = None, content: List[refract.elements.object.Member] = None)

Refract Object Element

>>> Object(content={})
>>> Object(content=[Member()])
__contains__(key) → bool

Returns whether the object contains the given key.

>>> key = String(content='id')
>>> value = String(content='Hello')
>>> obj = Object(content=[Member(key=key, value=value)])
>>> key in obj
True
__delitem__(key)

Deletes the member for the given key

>>> key = String(content='id')
>>> value = String(content='Hello')
>>> obj = Object(content=[Member(key=key, value=value)])
>>> del obj[key]
__getitem__(key) → refract.elements.base.Element

Returns the value for the given key

>>> key = String(content='id')
>>> value = String(content='Hello')
>>> obj = Object(content=[Member(key=key, value=value)])
>>> obj['id']
String(content='Hello')
__init__(meta: refract.elements.base.Metadata = None, attributes: refract.elements.base.Attributes = None, content: List[refract.elements.object.Member] = None) → None

Initialize self. See help(type(self)) for accurate signature.

__len__()

Number of items in the object.

>>> len(Object())
0
keys() → List[refract.elements.base.Element]

Returns all of the objects keys.

values() → List[refract.elements.base.Element]

Returns all of the objects values.

Member

class refract.elements.Member(meta: refract.elements.base.Metadata = None, attributes: refract.elements.base.Attributes = None, key: refract.elements.base.Element = None, value: refract.elements.base.Element = None)

Refract Member Element

>>> Member(key=Element(), value=Element())
key

The members key element

value

The members value element

Element Registry

class refract.registry.Registry

A Refract Registry contains a collection of element classes which can be used for deserialising serialised Refract into specialised element subclasses.

By default, the registry contains all primitive Refract types including Array, Member, and Object.

>>> registry = Registry()
find_element_class(element_name)

Finds an element class for the given element name contained within the registry.

Returns Element when there is no matching element subclass.

>>> registry.find_element_class('string')
String
>>> registry.find_element_class('unknown')
Element
register(element)

Register a new class in the registry.

>>> class Request(Element):
...     element = 'request'
>>>
>>> registry.register(Request)

Register can be used as class a decorator to register an Element.

>>> @registry.register
>>> class Request(Element):
...     element = 'request'