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.

Source Distribution

python-perl-storable-0.1.0.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

python_perl_storable-0.1.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file python-perl-storable-0.1.0.tar.gz.

File metadata

  • Download URL: python-perl-storable-0.1.0.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for python-perl-storable-0.1.0.tar.gz
Algorithm Hash digest
SHA256 001637e8b96d5c0bdd74059417582b6c819ac0bbffdec12e43b7aefb43f9b6b3
MD5 ac84b4b2eec9b3c1e98578dac34c58b6
BLAKE2b-256 51a13da9327dc319a02c719469c2b10308c2dacd7794b71c2e2806f64f5521d8

See more details on using hashes here.

File details

Details for the file python_perl_storable-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: python_perl_storable-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for python_perl_storable-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 93d068df2df1088c7ece447302491eec8f0d0a484a67f3b84a00fa1914218317
MD5 bcf457249f22df3820958b7a864200c1
BLAKE2b-256 6093b67a5efdf67e863fcd27715a4111517b835dd2ef99e7cc0a276d057ba09c

See more details on using hashes here.

Supported by

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