Skip to main content

Python Perl Storable module

Project description

https://travis-ci.org/CowboyTim/python-storable.svg?branch=develop

Overview

This is a Python module that is be able to read Perl storable files. Storable is a nice and efficient binary format for Perl that is very popular. A lot of other serialization/deserialization modules exist that are even more or less standardized: JSON, XML, CSV,.. etc. Storable is more or less Perl specific.

To ease integration between Perl - where storable sometimes is the only option - and Python this module is a bridge.

The module has been tested to work with Python 2.7 and upwards.

Warning

Perl Scalar Handling

Care has to be taken when dealing with Perl “scalars”. They are a bit “magical” in that they can behave like different types depending on how they are used. This is currently not supported directly in Python, and neither does this library provide a suitable abstraction!

The way this is currently handled is that types are “guessed” in a fairly iffy manner! The value is tried to be converted to different types (at the time of this writing: float → int → ASCII-string). The first one that matches wins. This means that The Perl scalar “123” will always be returned as an integer

Quick Usage

from storable import retrieve
data = retrieve('/path/to/file.storable')

from storable.output import serialize
# only works (so far) for JSON-able types and recursion-limited depth
# This will not serialize to the exact same object in perl as retrieve/thaw-ing
# but will be readable by perl to load json-like values
serialized_bytes = serialize({'x': 'bar', 'y': 1, 'z': 1.23, 'w':[], 'v':[1,2,3]})

Project details


Release history Release notifications

This version
History Node

1.1.0

History Node

1.0.0.post2

History Node

1.0.0.post1

History Node

1.0.0

History Node

0.1.0

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
storable-1.1.0-py2.py3-none-any.whl (11.6 kB) Copy SHA256 hash SHA256 Wheel py2.py3 Feb 9, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page