Skip to main content

Python pickling and marshal protocol over any network interface.

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

PicklePipe
==========

.. image:: https://img.shields.io/travis/SethMichaelLarson/picklepipe/master.svg
:target: https://travis-ci.org/SethMichaelLarson/picklepipe
:alt: Linux and MacOS Build Status
.. image:: https://img.shields.io/appveyor/ci/SethMichaelLarson/picklepipe/master.svg
:target: https://ci.appveyor.com/project/SethMichaelLarson/picklepipe
:alt: Windows Build Status
.. image:: https://img.shields.io/codecov/c/github/SethMichaelLarson/picklepipe/master.svg
:target: https://codecov.io/gh/SethMichaelLarson/picklepipe
:alt: Test Suite Coverage
.. image:: https://img.shields.io/codeclimate/github/SethMichaelLarson/picklepipe.svg
:target: https://codeclimate.com/github/SethMichaelLarson/picklepipe
:alt: Code Health
.. image:: https://readthedocs.org/projects/picklepipe/badge/?version=latest
:target: http://picklepipe.readthedocs.io
:alt: Documentation Build Status
.. image:: https://pyup.io/repos/github/sethmichaellarson/picklepipe/shield.svg
:target: https://pyup.io/repos/github/sethmichaellarson/picklepipe/
:alt: Dependency Versions
.. image:: https://img.shields.io/pypi/v/picklepipe.svg
:target: https://pypi.python.org/pypi/picklepipe
:alt: PyPI Version
.. image:: https://img.shields.io/badge/say-thanks-ff69b4.svg
:target: https://saythanks.io/to/SethMichaelLarson
:alt: Say Thanks to the Maintainers

Python pickling protocol over any network interface. Also provides a basic interface to implement your own serializing pipes.

This project was started and released in under 24 hours while I was on holiday break.

Getting Started with PicklePipe
-------------------------------

PicklePipe is available on PyPI can be installed with `pip <https://pip.pypa.io>`_.::

$ python -m pip install picklepipe

To install the latest development version from `Github <https://github.com/SethMichaelLarson/picklepipe>`_::

$ python -m pip install git+git://github.com/SethMichaelLarson/picklepipe.git


If your current Python installation doesn't have pip available, try `get-pip.py <bootstrap.pypa.io>`_

After installing PicklePipe you can use it like any other Python module.
Here's a very simple demonstration of scheduling a single job on a farm.

.. code-block:: python

import picklepipe

# Create a pair of connected pipes.
pipe1, pipe2 = picklepipe.make_pipe_pair(picklepipe.PicklePipe)

# Send an object in one end.
pipe1.send_object('Hello, world!')

# And retrieve it from the other.
obj = pipe2.recv_object(timeout=1.0)

assert obj == 'Hello, world!'

# Also can be used to send objects to remote locations!
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('host', 12345))
pipe = picklepipe.PicklePipe(sock)
pipe.send_object('Hello, world!')
pipe.close()

API Reference
-------------

The `API Reference on readthedocs.io <http://picklepipe.readthedocs.io>`_ provides API-level documentation.

Support / Report Issues
-----------------------

All support requests and issue reports should be
`filed on Github as an issue <https://github.com/SethMichaelLarson/picklepipe/issues>`_.
Make sure to follow the template so your request may be as handled as quickly as possible.
Please respect contributors by not using personal contacts for support requests.

Contributing
------------

We happily welcome contributions, please see `our guide for Contributors <http://picklepipe.readthedocs.io/en/latest/contributing.html>`_ for the best places to start and help.

License
-------

PicklePipe is made available under the MIT License. For more details, see `LICENSE.txt <https://github.com/SethMichaelLarson/picklepipe/blob/master/LICENSE.txt>`_.


Changelog
=========

Development
-----------

* (Add feature or bug fix along with author.)

Release 1.1.0 (December 29, 2016)
---------------------------------

* Create the :class:`picklepipe.JSONPipe` for serializing JSON data.

Release 1.0.0 (December 28, 2016)
---------------------------------
* Create initial implementation of :class:`picklepipe.PicklePipe`.
* Create :meth:`picklepipe.make_pipe_pair` to create a connected pair of :class:`picklepipe.PicklePipe` instances.
* Added support for creating own serialization pipes with :class:`picklepipe.BaseSerializationPipe`.
* Added support for the ``marshal`` object serializer with :class:`picklepipe.MarshalPipe`
* :class:`picklepipe.PicklePipe` now uses ``cPickle`` module if available.
* Make all pipe types selectable using selectors.
* Add the ``max_size`` attribute for limiting memory usage of pipes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

picklepipe-1.1.0.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

picklepipe-1.1.0-py2.py3-none-any.whl (12.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file picklepipe-1.1.0.tar.gz.

File metadata

  • Download URL: picklepipe-1.1.0.tar.gz
  • Upload date:
  • Size: 20.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for picklepipe-1.1.0.tar.gz
Algorithm Hash digest
SHA256 c5ca3277d06f3d76e6703ed5e42f9f6bc52a37a37e8b83d8667528fdb4965219
MD5 8a81651614ac3878b26fe9965bd1cfb3
BLAKE2b-256 a970e119e22fa2f5fc4a0fcbf03e6425235491ed2332a1f6b5db8716a5aab214

See more details on using hashes here.

File details

Details for the file picklepipe-1.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for picklepipe-1.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 aeead382ca6aac6c78e8ce8dcdf824f7b0d0cb122a88a90164e46cea72a85338
MD5 3db4d146e53e647cb50b6b1492e16a3c
BLAKE2b-256 f6c956a2ef4688e70504eb786950e66aa3b2afb21c787f6c0c65ec97edd10618

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page