Skip to main content

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>
'''

Release files for pyrediseasyio 0.0.19

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyrediseasyio 0.0.19
File Size Uploaded
pyrediseasyio-0.0.19.tar.gz 8.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyrediseasyio 0.0.19
File Interpreter ABI Platform
pyrediseasyio-0.0.19-py3-none-any.whl Python 3 none any Details

Total release size: 27.0 kB

Release files / pyrediseasyio-0.0.19.tar.gz

Download URL pyrediseasyio-0.0.19.tar.gz
Size 8.6 kB
Tags Source
SHA-256 checksum
How to use checksums
b0fa900df6c067a5d198570ab173888038b728990224e9012cbf5323a0e8c0bb
BLAKE2b-256 checksum
How to use checksums
766f03e245b0e7ad3f234677fffb43663a91f283d7e7e3d53148bc5357e1fcab
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / pyrediseasyio-0.0.19-py3-none-any.whl

Download URL pyrediseasyio-0.0.19-py3-none-any.whl
Size 18.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0a6e53f31f428ef0ff4dcdf18e2c9074c4e9b20d9f8a8bc70cb77f015abcb523
BLAKE2b-256 checksum
How to use checksums
49205b46d9aa74e8dc93edffd240f19b1baf8bf7dfd7a31765e591792313cc05
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

0.0.35

2 release files

0.0.34

2 release files

0.0.33

2 release files

0.0.32

2 release files

0.0.31

2 release files

0.0.30

2 release files

0.0.20

2 release files

This release

0.0.19 This release

2 release files

0.0.18

2 release files

0.0.17

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page