bibliopixel.control.address module

An address identifies how to get or set a piece of data within a Python object, called the “root”, using attributes and indexing.

An address description is a string looking like:

.foo.bar[32][5][baz].bang()

which would mean

“given an object “root”, the value root.foo.bar[32][5]['baz'].bang()”.

Addresses are divided into “segments”.

A segment contained in brackets [] is an index (for a list) or a key (for a dictionary) - otherwise, it’s an attribute.

In the example above, the segments are foo, bar, [32], [5], [baz] and bang; foo and bar are attributes. baz is a string index, and 32 and 5 are numeric indexes.

You can use an Address to either get or set values in the root object.

Any key that’s entirely numeric is taken to be an integer index. This is convenient but prevents the creation of dictionaries like {1: 'x', '1': 'y'} which you probably didn’t want to do anyway.

class bibliopixel.control.address.Address(name=None)[source]

Bases: object

class Attribute(name)[source]

Bases: bibliopixel.control.address.Segment

get(root)[source]
class Call[source]

Bases: bibliopixel.control.address.Segment

get(root)[source]
set(root, *value)[source]
class Index(name)[source]

Bases: bibliopixel.control.address.Segment

get(root)[source]
class Segment(name)[source]

Bases: object

set(root, *value)[source]
get(root)[source]
set(root, *values)[source]
bibliopixel.control.address.number(s)[source]