Skip to main content

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 command redis-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 need aiosqlite and greenlet 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 with uvicorn (or install uvicorn[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 and hypercorn;
  • For ASGi with uvicorn: wsproto is an alternative to websockets.

Project details


Release history Release notifications | RSS feed

This version

0.5.0

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.5.0.tar.gz (121.6 kB view details)

Uploaded Source

Built Distribution

frid-0.5.0-py3-none-any.whl (136.5 kB view details)

Uploaded Python 3

File details

Details for the file frid-0.5.0.tar.gz.

File metadata

  • Download URL: frid-0.5.0.tar.gz
  • Upload date:
  • Size: 121.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.2

File hashes

Hashes for frid-0.5.0.tar.gz
Algorithm Hash digest
SHA256 513ab574543fad4303486f3d7a3e5b3f8266b424a46d41ed5280ea888f95f0c2
MD5 b24abb3a4d73ecfa0636f2484f857123
BLAKE2b-256 7b95b23e52af3c67a82633b6892b1d935b4fda090c89bae0ed1e62c122b4cb6b

See more details on using hashes here.

File details

Details for the file frid-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: frid-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 136.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.2

File hashes

Hashes for frid-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6b6b219c0642b95694fe685582a9e3c34d179957b82f58d05e743fab0183ba1b
MD5 30ff351b9ed212ac27c700c21305031f
BLAKE2b-256 a1622dfa0a6afd7c2cbd30965b8358e4d4f2d62948d5e5e97e4e1ff967f87235

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