Skip to main content

Presentacion

Esta libreria proporciona una abstraccion generica para el uso de paquetes de datos sobre comunicaciones. Permitiendo una logica de comunicacion por mensajes estructurados.

Los paquetes de datos son presentados como un diccionario (dict), y serializados en bytes en formato JSON (UTF-8) para su envio, o deserializados de bytes en formato JSON (UTF-8) a un diccionario (dict) en su recepcion, de manera que el intercambio de mensajes estructurados es simple y potente

Instalacion

Para instalar la libreria unicamente ejecuta en un terminal:

$ pip install datapackage-messages

Control

La libreria requiere que se le proporcione acceso a dos funciones:

  • write(data: bytes): funcion de escritura. Debe retornar un valor booleano
  • read(): funcion de lectura. Debe retornar bytes

Internamente permite el envio ordenado de paquetes de datos completos, y la recepcion de paquetes de datos ordenados por orden de recepcion, con funciones de alto nivel:

  • send_datapackage(data_package: dict) -> bool
  • receive_datapackage(timeout: int = None) -> dict

Operacion bloqueante: si hay un paquete de datos disponible en la cola, retorna el primero recibido (mas antiguo), si no lo hay, espera hasta que haya uno, o expire el tiempo limite (si aplica)

Implementacion

La libreria convierte los datos (diccionarios) en secuencias de bytes serializadas en formato JSON, aplicando un delimitador para definir la limitacion entre un paquete de datos y otro. De esta manera, cada paquete de datos enviado se envia como una unidad logica atomica, asegurandose del orden y estructura, delegando la fiabilidad de entrega al transporte subyacente. Por parte de la recepcion, los paquetes de datos son reconstruidos a partir de bytes serializados, y almacenados de manera ordenada en una cola interna de paquetes: cada llamada a: receive_datapackage retorna el primer paquete de datos recibido pendiente en la cola (FIFO); posteriormente se descarta de la cola y se retorna el siguiente

Uso

Importacion

from datapackage import Datapackage

Instanciacion

datapackage = Datapackage(
    read_function=read_func,
    write_function=write_func
)

# Se utilizaron funciones de ejemplo. Puede trabajar sobre cualquier funcion que opere conceptualmente sobre un flujo de datos secuenciales

Envio de paquete de datos

data = {
    "TIMESTAMP":1234,
    "DATA":"¡Hola, mundo!"
}

datapackage.send_datapackage(data)

Recepcion de paquete de datos

received_response = datapackage.receive_datapackage()

Indicaciones

  • La libreria no implementa cifrado, compresion, ni procesamiento de datos.
  • No se impone un tamaño limite para los paquetes de datos; pero es recomendable no transmitir paquetes de datos demasiado grandes.
  • La fiabilidad de entrega depende totalmente del transporte subyacente; la libreria solo proporciona fiabilidad en el orden de recepcion.
  • El delimitador de paquetes de datos utilizado y transmitido podria colisionar con el contenido.
  • La libreria no expone mecanismos para pasar parametros dinamicos a las funciones subyacentes de escritura y lectura; dichas funciones deben encapsular internamente su propia logica.

Metadata

Release files for datapackage-messages 0.1.15

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

Source distribution (sdist)

Source distribution for datapackage-messages 0.1.15
File Size Uploaded Provenance
datapackage_messages-0.1.15.tar.gz 3.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for datapackage-messages 0.1.15
File Interpreter ABI Platform
datapackage_messages-0.1.15-py3-none-any.whl Python 3 none any Details

Total release size: 8.2 kB

Release files / datapackage_messages-0.1.15.tar.gz

Download URL datapackage_messages-0.1.15.tar.gz
Size 3.9 kB
Tags Source
SHA-256 checksum
How to use checksums
105f30ac75530ab490e068a9d56aea41ec8f60e323d78b84c149fedfba465291
BLAKE2b-256 checksum
How to use checksums
1e7642f5011d10a58c676eb66d5eecda5ab62e4c72c3f3990ac449f93181f25d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / datapackage_messages-0.1.15-py3-none-any.whl

Download URL datapackage_messages-0.1.15-py3-none-any.whl
Size 4.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0eb2c2bde2ab74947b624bb4d3a4f3e0f1980ea4cb6472663f907413f51414f8
BLAKE2b-256 checksum
How to use checksums
50d3d827058367e37c8fc63417c5b08897650409af040432193f7db335b118a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for datapackage-messages 0.1.15

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.

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