Packets in Python made Simple
Project description
CalPack
Packets in Python Simplified.
This python package is everything you need to "transmorgrify" your packets:
This package is intended to make creating and/or parsing packets (structured bytecode) on the fly quick and easy. This is a wrapper around
the ctypes
module built-in to python. This package is designed
with influence from Django's modeling and will look familiar to those that have used it.
A quick explanation of Packets and how to use them
Packets are structured bytecode used for passing information from one place to another. The most common example is that of a TCP/IP Packet, but isn't necessarily limited to networking packets. Here's a quick example. Let's say we want to make a "smart" washing machine by attaching a Raspberry Pi that then talks to your other smart devices and alerts you when a load of laundry is done and how many loads of laundry you've done that day.
One way to communicate between the Raspberry Pi and your other devices is to send status "packets" or byte data across a network. Let's say we want to know the following in our packet:
- Status - a Boolean that represents whether the Washing Machine is running or stopped
- Number of Loads - an Integer that represents the number of loads done that day
To create this packet in CalPack
is simple:
from calpack import models
class MachineStatus(models.Packet):
Status = models.BooleanField()
Num_Loads = models.IntField()
On our monitoring device (the Raspberry Pi), we can easily create the byte data for the packet by using our new packet:
status_pkt = MachineStatus(
Status=True,
Num_Loads=12
)
# Send the byte data using an assumed custom `send` funcion
send(status_pkt.to_bytes())
And converting the recieved byte data is simple as well:
# assuming a `receive` function and returns the byte data of the sent packet
received_data = MachineSatus.from_bytes(receive())
print(received_data.status)
Installation
This package is maintained in GitHub and packaged for deployment on PyPi.
Simply using pip install calpack
will get this installed.
SHOW ME THE DOCS
Documentation is host on read the docs
Python 2 and 3
Currently this module is designed to work for both Python 2.7+ and 3.3+, however, with the term of life for Python 2 nearing, this package will eventually port entirely over to Python 3.
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
File details
Details for the file calpack-2018.6.0.tar.gz
.
File metadata
- Download URL: calpack-2018.6.0.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d55ddb7b1048ee9b99340b4e5f4bccf642856d8682636460430f2d41dc5c539 |
|
MD5 | b49812f748c934c905164bfbd7cbd598 |
|
BLAKE2b-256 | 2dfd4e0dd85e46a3148d81cc7eb326edfb1760e4b2124f32ec678fd2d28601ef |