Skip to main content

A set of tools for simplifying reading and writing of single values to/from Redis.

Project description

PyRedisEasyIO

A project to simplify reading/writing single objects from/to redis

Description

Redis is a great way to share data between applications - or processes in an application. However, in its raw form, the application has to deal with data type conversion to/from string, check for existence, and other pesky stuff. It would be nice if that were abstracted in such a way to where it didn't appear in code that redis was being used at all.

This project seeks to allow the exchange of single data points in a readable way, eg. my_data.my_value = 30 (automatically writes '30' to redis)

Installation

pip install pyrediseasyio

Usage

The basis of functionality is the IOGroup class. It acts as a container for individual values and performs the behind-the-scenes reads and writes.

from io_group import IOGroup
from single_io import BooleanIO, IntIO, FloatIO


class TestGroup1(IOGroup):
    Bool1 = BooleanIO("Boolean 1", "Bool1", False)
    Bool2 = BooleanIO("Boolean 2", "Bool2", True)
    Int1 = IntIO("Integer 1", "Int1")
    Int2 = IntIO("Integer 2", "Int2", default=34)
    MyFloat1 = FloatIO("Float 1", "Float1", default=1.2)

class TestGroup2(IOGroup):
    Bool1 = BooleanIO("Boolean 1", "Bool1", False)
    Bool2 = BooleanIO("Boolean 2", "Bool2", True)
    Int1 = IntIO("Integer 1", "Int1")
    Int2 = IntIO("Integer 2", "Int2", default=34)
    Float1 = FloatIO("Float 1", "Float1", default=1.2)


group1a = TestGroup1()
group1b = TestGroup1()
group2 = TestGroup2()

group1a.MyFloat1 = 1234.5         # Performs redis 'set', sending 1234.5 with key 'Float1'
print(group1b.Float1.value)       # Performs redis 'get', calling 'value' converts to primitive type
print(group2.Float1.value)

HTML:

For convenience, methods are provided to automatically generate html. The dominate library is used behind the scenes, giving you first class access to manipulate the html response; Below is an example of usage, consult the test cases for further examples.


class TestGroup(IOGroup):
    Bool1 = BooleanIO("Boolean 1", "Bool1", units="On/Off")
    Float1 = FloatIO("Float 1", "Float1", default=1.23, units="furlongs")


h = HMTLIOGroup(test_group, "my_id", "my_namespace").html().render()
print(h)  #-> Gives;

'''
<div class="my_namespace_io_container" id="my_id_io_container">
  <div class="my_namespace_io" id="my_id_Bool1_io">
    <div class="my_namespace_io_name">Boolean 1</div>
    <div class="my_namespace_io_value" id="my_id_Bool1_io_value" onchange="OnIOValueChange(event)">False</div>
    <div class="my_namespace_io_units">On/Off</div>
  </div>
  <div class="my_namespace_io" id="my_id_Float1_io">
    <div class="my_namespace_io_name">Float 1</div>
    <div class="my_namespace_io_value" id="my_id_Float1_io_value" onchange="OnIOValueChange(event)">1.23</div>
    <div class="my_namespace_io_units">furlongs</div>
  </div>
</div>
'''

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyrediseasyio-0.0.28.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

pyrediseasyio-0.0.28-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file pyrediseasyio-0.0.28.tar.gz.

File metadata

  • Download URL: pyrediseasyio-0.0.28.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.1.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.7

File hashes

Hashes for pyrediseasyio-0.0.28.tar.gz
Algorithm Hash digest
SHA256 894809c532a22a137a3835a04e4664bae4450a451b572fe74bf64774b672111f
MD5 18de4097252c3a3c14319d302bc49fe8
BLAKE2b-256 67996030ad9af7bde64b27ca4337cc327a60a01dc336d01b3f835cabc0f06b07

See more details on using hashes here.

File details

Details for the file pyrediseasyio-0.0.28-py3-none-any.whl.

File metadata

  • Download URL: pyrediseasyio-0.0.28-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/39.1.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.7

File hashes

Hashes for pyrediseasyio-0.0.28-py3-none-any.whl
Algorithm Hash digest
SHA256 38fc4b70a37c7a959063c01f3c7e3b95d3d32c6ccb1d986ed79056d4bceb90ce
MD5 7d782ac3435ab656d2ebc7d2b6ca9312
BLAKE2b-256 f71f9c89c17f213448614b54e72e11541aea9fedb8d9b03e59080f54c6d0db36

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page