Framework for converting data to be responsive
Project description
Welcome
Requirements
- Python installed (recommended: Python >= 3.10)
- Installed nox with
pip install nox
Quickstart (Usage)
For basic usage of the library please read the document (see documentation badge).
from responsive.data import make_responsive
from responsive.observer import OutputObserver
if __name__ == "__main__":
subject = make_responsive(
{
"some_str": "string 1",
"some_int": 1234567890,
"some_list": [1, 2, 3, 4, 5, {"inner_str": "string 2"}],
"some_dict": {"some_other_str": "string 3"},
}
)
subject.add_observer(OutputObserver())
# changing string field
subject.some_str = "another string"
# changing integer field
subject.some_int = 9876543210
# changing dictionary in a list
subject.some_list[-1].inner_str = "just another string"
# appending a value to a list field
subject.some_list.append(6)
# removing a value from a list field
subject.some_list.remove(3)
# change value by index
subject.some_list[2] = 7
# changing list field to another list
subject.some_list = [5, 4, 3, 2, 1, 0]
# changing string field of a nested dictionary
subject.some_dict.some_other_str = "yet another string"
# changing dictionary in total
subject.some_dict = {"some_other_str": "string 4"}
# changing string field of a nested dictionary (after replacement)
subject.some_dict.some_other_str = "string 5"
The output looks like following:
subject with id 4371736816 has notified with () and {'id': 4371736816, 'context': <Context.DICTIONARY: 2>, 'name': 'some_str', 'old': 'string 1', 'new': 'another string', 'operation': <Operation.VALUE_CHANGED: 1>}
subject with id 4371736816 has notified with () and {'id': 4371736816, 'context': <Context.DICTIONARY: 2>, 'name': 'some_int', 'old': 1234567890, 'new': 9876543210, 'operation': <Operation.VALUE_CHANGED: 1>}
subject with id 4371736816 has notified with () and {'id': 4371739120, 'context': <Context.DICTIONARY: 2>, 'name': 'inner_str', 'old': 'string 2', 'new': 'just another string', 'operation': <Operation.VALUE_CHANGED: 1>}
subject with id 4371736816 has notified with () and {'id': 4371738496, 'context': <Context.LIST: 3>, 'new': 6, 'operation': <Operation.VALUE_ADDED: 2>}
subject with id 4371736816 has notified with () and {'id': 4371738496, 'context': <Context.LIST: 3>, 'old': 3, 'operation': <Operation.VALUE_REMOVED: 3>}
subject with id 4371736816 has notified with () and {'id': 4371738496, 'context': <Context.LIST: 3>, 'index': 2, 'old': 4, 'new': 7, 'operation': <Operation.VALUE_CHANGED: 1>}
subject with id 4371736816 has notified with () and {'id': 4371736816, 'context': <Context.DICTIONARY: 2>, 'name': 'some_list', 'old': [1, 2, 7, 5, {'inner_str': 'just another string'}, 6], 'new': [5, 4, 3, 2, 1, 0], 'operation': <Operation.VALUE_CHANGED: 1>}
subject with id 4371736816 has notified with () and {'id': 4371737344, 'context': <Context.DICTIONARY: 2>, 'name': 'some_other_str', 'old': 'string 3', 'new': 'yet another string', 'operation': <Operation.VALUE_CHANGED: 1>}
subject with id 4371736816 has notified with () and {'id': 4371736816, 'context': <Context.DICTIONARY: 2>, 'name': 'some_dict', 'old': {'some_other_str': 'yet another string'}, 'new': {'some_other_str': 'string 4'}, 'operation': <Operation.VALUE_CHANGED: 1>}
subject with id 4371736816 has notified with () and {'id': 4371738496, 'context': <Context.DICTIONARY: 2>, 'name': 'some_other_str', 'old': 'string 4', 'new': 'string 5', 'operation': <Operation.VALUE_CHANGED: 1>}
Quickstart (Build)
nox
Interesting Links
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
responsive-data-1.0.4.tar.gz
(10.5 kB
view hashes)
Built Distribution
Close
Hashes for responsive_data-1.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a3ab01faeab95465935a9f905fb37d7a0fdeb3b93657a39fa380d47ccab3d29 |
|
MD5 | 55a73e4656b0fffcd7db174c2032b27c |
|
BLAKE2b-256 | 6ed7a052855640ab2b26d1782ce7e3d577e4620a5163f7348821313d7bb351fc |