Skip to main content

Build Status Codacy Badge Coverage Status Documentation Status

CalPack

Packets in Python Simplified.

This python package is everything you need to "transmorgrify" your packets:

Calvin and Hobbes Strip

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.

Example Diagram

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.

Release files for calpack 2018.6.0

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

Source distribution (sdist)

Source distribution for calpack 2018.6.0
File Size Uploaded
calpack-2018.6.0.tar.gz 10.3 kB Details

Release files / calpack-2018.6.0.tar.gz

Download URL calpack-2018.6.0.tar.gz
Size 10.3 kB
Tags Source
SHA-256 checksum
How to use checksums
3d55ddb7b1048ee9b99340b4e5f4bccf642856d8682636460430f2d41dc5c539
BLAKE2b-256 checksum
How to use checksums
2dfd4e0dd85e46a3148d81cc7eb326edfb1760e4b2124f32ec678fd2d28601ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

2018.6.0 This release

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

0.0.3

1 release file

0.0.2

1 release file

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