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>
'''
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pyrediseasyio-0.0.19.tar.gz | 8.6 kB | Without provenance | Details for pyrediseasyio-0.0.19.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pyrediseasyio-0.0.19-py3-none-any.whl | Python 3 | none | any | Details for pyrediseasyio-0.0.19-py3-none-any.whl |
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
|
Security for pyrediseasyio 0.0.19
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.