Skip to main content

python_perl_storable - распаковывает структуру из формата perl-storable

Project description

python_perl_storable

NAME

python_perl_storable - распаковывает структуру из формата perl-storable

VERSION

0.1.0

DESCRIPTION

from python_perl_storable import freeze, thaw

class A:
    def getX(self):
        return self.x

storable_binary_string = freeze({'x': A(x=6), 's': "Здравствуй, Мир!"})

data = thaw(
	storable_binary_string, 
	classes={'A::A': A}, 
	iconv=lambda s: s.decode('windows-1251')
)

print(data) # -> {'x': <__main__.A instance at 0x7f7f532e1050>, 's': "Здравствуй, Мир!"}

print(data['x'].getX()) # -> 6

print(data['s'])        # -> Здравствуй, Мир!

SYNOPSIS

В языке perl есть свой формат бинарных данных для упаковки любых структур: хешей, списков, объектов, регулярок, скаляров, файловых дескрипторов, ссылок, глобов и т.п. Он реализуется модулем https://metacpan.org/pod/Storable.

Данный формат довольно популярен и запакованные в бинарную строку данные различных проектов на perl хранятся во внешних хранилищах: mysql, memcached, tarantool и т.д.

Данный змеиный модуль предназначен для распаковки данных, полученных из таких хранилищ, в структуры python и для упаковки данных питона, чтобы поместить их в хранилище.

FUNCTIONS

thaw

ARGUMENTS

  • storable - бинарная строка
  • classes - словарь с классами. Необязательный параметр
  • iconv - функция для конвертации строк не в utf8. Необязательный параметр

freeze

ARGUMENTS

  • data - данные питона: строка, число, словарь, список, объект и т.д.
  • magic - булево значение. Необязательно. Добавляет к выводу магическое число 'pst0'

RETURNS

Бинарная строка с данными в формате Perl Storable

SCRIPT

# Заморозить-раморозить:
$ echo '[123, "Хай!"]' | pypls freeze | pypls thaw

# Передавать замороженные данные в бинарном виде:
$ echo '[123, "Хай!"]' | pypls freeze -b | pypls thaw -b

# Передавать код в параметре:
$ pypls freeze --data '[123, "Хай!"]' | pypls thaw

# Добавить магическое число и обесцветить замероженную строку:
$ pypls freeze -m -s --data '[123, "Хай!"]' | pypls thaw

# Перекодировать строки (bytes останутся как есть):
$ pypls freeze --data '[123, "Хай!"]' -i cp1251 | pypls thaw -i cp1251

INSTALL

$ pip install python-perl-storable

REQUIREMENTS

  • data-printer
  • argparse

LICENSE

Copyright (C) Yaroslav O. Kosmina.

This library is free software; you can redistribute it and/or modify it under the same terms as Python itself.

AUTHOR

Yaroslav O. Kosmina darviarush@mail.ru

LICENSE

MIT License

Copyright (c) 2020 Yaroslav O. Kosmina

Project details


Download files

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

Files for python-perl-storable, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size python_perl_storable-0.1.0-py3-none-any.whl (12.6 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size python-perl-storable-0.1.0.tar.gz (13.0 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page