Flexibly Represented Interactive Data
Project description
FRID: Flexibly Represented Interactive Data
This Python package is a tool for data manipulation.
Supported data types include:
- All JSON types: string, integer, floating point, boolean, null, array (as Python lists), and object (as Python dictionaries).
- Additional data types: binary types (bytes/bytearray/memoryview) and date types (date/time/datetime).
- Base classes are provided for user-extensible data structures, allowing users to convert between any customized data structures and string representations.
Current key features include:
- A data serialization/deserialization tool:
- Data can be dumped into and loaded from a string representation that is more concise than the JSON format.
- The library is capable of encoding data in fully JSON- or JSON5-compatible formats, including escape sequences in strings to support additional data types.
- A number of utilities functions and classes, including some asyncio utilities.
- A key/value store supporting memory, file system, redis, and sqlalchemy as backends.
- Web application support tools, such as:
- Converting data from HTTP request bodies based on content type.
- Converting data types to HTTP requests and setting the correct headers.
- Sending streaming responses if the data of the body comes from an asynchronous iterator.
- A mimimal web server routing framework, supporting both WSGi and ASGi.
- Websocket support for ASGi.
Dependencies:
The package do not have required dependencies, but it needs a few optional dependencies to run some features:
redis
: for Redis support; also a system commandredis-server
to run unit tests.sqlalchemy
: for SQL support, with some additional packages depending on backend; to run async key/value store with Sqlite, one needaiosqlite
andgreenlet
to run the unit tests. For Postgres, the following are needed:psycopg[binary]
for sync Postgres support,asyncpg
for async Postgres support.
- For web servers:
gunicorn
to run WSGi unit tests.uvicorn
to run ASGi unit tests.
- For websocket support (ASGi only):
websockets
withuvicorn
(or installuvicorn[standard]
); it also allows us to run websockets' threading-based sync client for unit tests.websocket-client
to run websocket-client-based unit tests.
Other possibilities that haven't been tested:
- For ASGi:
daphne
andhypercorn
; - For ASGi with
uvicorn
:wsproto
is an alternative towebsockets
.
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
frid-0.6.0.tar.gz
(126.2 kB
view details)
Built Distribution
frid-0.6.0-py3-none-any.whl
(141.2 kB
view details)
File details
Details for the file frid-0.6.0.tar.gz
.
File metadata
- Download URL: frid-0.6.0.tar.gz
- Upload date:
- Size: 126.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7993c0bf4c29bda90ab26d56c6e41ab4c9535ce847c81cb7cced1ad00472dedb |
|
MD5 | 9771629bd6047a947bca77ff21fa4d4f |
|
BLAKE2b-256 | b4e2f37cb149fa1a0045f68804bc410291bea422e8d0090a4a2813c22bb9e4e4 |
File details
Details for the file frid-0.6.0-py3-none-any.whl
.
File metadata
- Download URL: frid-0.6.0-py3-none-any.whl
- Upload date:
- Size: 141.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e6339d2130e57d86d959e09321a7cf5af1f626f0c523f15004f16ca97ecdab0 |
|
MD5 | a0d9d1f23601edb619a05b6f26f8145c |
|
BLAKE2b-256 | 7c30751981bb1ab5832a5a44a89e525d0efa089f22860fc8f7c8bd37e66acd0d |