cloud.iO endpoint glue
Project description
Cloud.iO Glue
Introduction
This package is an extension to the
package providing features not present in the
implementation.
It supports the developer with the Model2CloudConnector
class and the
'cloudio_attribute' decorator.
The fast and simple solution to connect an object to the cloud is to inherit
the class from CloudioNode
and automatically all attributes get
synchronized to the cloud. The drawback here is that the developer does not
have the choice to prohibit the synchronisation of some attributes.
There is where the Model2CloudConnector
class comes in. Inheriting from this
class allows specifying which attribute should be synchronized to the cloud
using the attribute mapping
feature.
Download and Install
The library is available on python's package distribution system PyPi.
From the console you can download and install it using the following command:
pip install cloudio-glue-python
Model2CloudConnector Class
The Model2CloudConnector
class allows to synchronise some attributes of a class.
Which attributes to synchronise is done with an attribute mapping.
To use the Model2CloudConnector
class you need to inherit from it and then
specify which of the attributes to synchronize using the set_attribute_mapping()
method.
Attribute Mapping
Here is an example on how to bring attributes (or properties) x
and y
of the
ComputerMouse
class to the cloud:
from cloudio.glue import Model2CloudConnector
class ComputerMouse(Model2CloudConnector):
def __init__(self):
super(ComputerMouse, self).__init__()
self._x = 0
self._y = 0
# Define the attributes which are going to be mapped to cloud.iO
self.set_attribute_mapping({'x': {'topic': 'position.x', 'attributeType': float,
'constraints': ('read',)}, # ('read', 'write')
'y': {'topic': 'position.y', 'attributeType': float,
'constraints': ('read',)},
})
@property
def x(self): return self._x
@x.setter
def x(self, value): self._x = value
@property
def y(self): return self._y
@y.setter
def y(self, value): self._y = value
Attribute Access Policy
For each attribute the access policy can be specified. Following values can be given
-
read
-
write
or both.
The read access policy allows to read the attribute from the cloud. Giving the
write access policy allows to change the attribute via the cloud.
cloudio_attribute Decorator
An attribute can be automatically synchronized to the cloud by assigning
the cloudio_attribute
decorator to the property.
To assign for example the decorator to the x property change the code above as follows. Remove
the @property decorator and replace it with the @cloudio_attribute
decorator.
The example below shows the @cloudio_attribute
decorator applied to the x
and y
property:
from cloudio.glue import Model2CloudConnector
from cloudio.glue import cloudio_attribute
class ComputerMouse(Model2CloudConnector):
def __init__(self):
super(ComputerMouse, self).__init__()
self._x = 0
self._y = 0
# Define the attributes which are going to be mapped to cloud.iO
self.set_attribute_mapping({'x': {'topic': 'position.x', 'attributeType': float,
'constraints': ('read',)}, # ('read', 'write')
'y': {'topic': 'position.y', 'attributeType': float,
'constraints': ('read',)},
})
@cloudio_attribute
def x(self): return self._x
@x.setter
def x(self, value): self._x = value
@cloudio_attribute
def y(self): return self._y
@y.setter
def y(self, value): self._y = value
Now every time the x
or y
property gets changed, the value is automatically updated to the cloud.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cloudio-glue-python-1.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3c4257242b59005b70e599dde4d73f5907666b9b243babd411269c3ea587aa9 |
|
MD5 | 0b278ebbb006f80e42fd0d45caa9aaaf |
|
BLAKE2b-256 | b896229425677e2ded021adf0b048a00ea2bfd55fa7402b703440b15d95035b1 |
Hashes for cloudio_glue_python-1.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8644f539ee7f16260bc7aa10833d418ae8d19d90793d5cff3d4871a88e9828b |
|
MD5 | 2e4959694bd2ee497e3ae2215e404ea9 |
|
BLAKE2b-256 | a12b339717f0cf39b66a25cc2743f229bbb6adbb04ef65e81a1576d9ae210740 |