Typed, async‑first Python client for the Pletyvo decentralized platform and it's protocols (Python ≥ 3.9)
Project description
[!WARNING] This is an unstable version. Changes may be backwards incompatible
py-pletyvo
Typed, async‑first Python client for the Pletyvo decentralized platform and it's protocols (Python ≥ 3.9)
Install
pip install -U pletyvo
Usage
Engine
To begin using the client, you need to create an engine — the core component responsible for all communication with the Pletyvo gateway. You can create one using pletyvo.DefaultEngine:
import pletyvo
engine: pletyvo.abc.Engine = pletyvo.DefaultEngine(
config=pletyvo.Config(
url="http://testnet.pletyvo.osyah.com",
network="AAEAAAAB",
),
)
The pletyvo.Config accepts:
url: The gateway endpoint.network | None: the network identifier encoded as abase64string. By default, has an already set network on the node side
Service
A service is a high-level interface that aggregates protocol-specific HTTP services. This top-level object internally composes pletyvo.DAppService & pletyvo.DeliveryService. The service requires a signer — an object responsible for producing cryptographic signatures over event bodies. The signer must implement the dapp.abc.Signer interface.
import pletyvo
service = pletyvo.Service.di(
engine=engine,
signer=signer,
)
Want full control?
You can instantiate each service manually by passing required dependencies.
import pletyvo
service = pletyvo.Service(
dapp=pletyvo.DAppService(
hash=pletyvo.HashService(...),
event=pletyvo.EventService(...),
),
delivery=pletyvo.DeliveryService(
channel=pletyvo.ChannelService(...),
post=pletyvo.PostService(...),
message=pletyvo.MessageService(...),
)
)
Dependency graph
dApp
The dApp protocol defines how signed events are created, verified, and published on the Pletyvo network. Each dapp.Event consists of dapp.EventBody and a corresponding signature, both of which are required for persistence. You can create a dApp service using either the shorthand or manual constructor:
The dApp service itself does not construct or validate signatures — it only transmits fully-formed signed events.
import pletyvo
dapp_service = pletyvo.DAppService.di(
engine=engine,
)
dapp_service = pletyvo.DAppService(
hash=pletyvo.HashService(...),
event=pletyvo.EventService(...),
)
Cryptography: signing with dapp.AuthHeader
Most dApp calls that create or update data must be signed with an ED25519 keypair; read‑only requests work without it.
py‑pletyvo lets you obtain a keypair from a random seed, raw bytes, or a file. If you prefer BIP‑39 mnemonics, generate a seed with an external helper such as osyah/homin and load it into the signer.
from pletyvo import dapp
signer: dapp.abc.Signer
signer = dapp.ED25519.gen()
signer = dapp.ED25519.from_file(...)
signer = dapp.ED25519(...)
Pletyvo: decentralized applications (UA)
Delivery
The delivery layer exposes three narrow services — pletyvo.ChannelService, pletyvo.PostService, and pletyvo.MessageService — bundled under pletyvo.DeliveryService.
import pletyvo
delivery_service = pletyvo.DeliveryService.di(
engine=engine,
signer=signer,
event=event_service,
)
delivery_service = pletyvo.DeliveryService(
channel=pletyvo.ChannelService(...),
post=pletyvo.PostService(...),
message=pletyvo.MessageService(...),
)
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pletyvo-0.1.0.tar.gz.
File metadata
- Download URL: pletyvo-0.1.0.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
028781d5d7f5da1e0bf699bd460b3b64e17fa4b4abbbe9ce0010eb48268e745c
|
|
| MD5 |
dbbf4c6e9c2a6e3e6dd71e5496de6a76
|
|
| BLAKE2b-256 |
278d868f9b01bca4d28629ec5a9e0ac6bd87fcb5ab8a0a99df5d15d0081caf68
|
File details
Details for the file pletyvo-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pletyvo-0.1.0-py3-none-any.whl
- Upload date:
- Size: 22.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bebe83aa3be1829a83d0169439a62c7c59faf55098b643d8406f383aa7382c8d
|
|
| MD5 |
fe64e1b1b4427c68c76fb8e73efe0deb
|
|
| BLAKE2b-256 |
aa335e757e5b1376f11638b1512b932a2df20110260f5d0a870450eb30f18d3f
|