Skip to main content

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

Metadata

Release files for python-perl-storable 0.1.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 python-perl-storable 0.1.0
File Size Uploaded
python-perl-storable-0.1.0.tar.gz 13.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-perl-storable 0.1.0
File Interpreter ABI Platform
python_perl_storable-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 25.6 kB

Release files / python-perl-storable-0.1.0.tar.gz

Download URL python-perl-storable-0.1.0.tar.gz
Size 13.0 kB
Tags Source
SHA-256 checksum
How to use checksums
001637e8b96d5c0bdd74059417582b6c819ac0bbffdec12e43b7aefb43f9b6b3
BLAKE2b-256 checksum
How to use checksums
51a13da9327dc319a02c719469c2b10308c2dacd7794b71c2e2806f64f5521d8
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / python_perl_storable-0.1.0-py3-none-any.whl

Download URL python_perl_storable-0.1.0-py3-none-any.whl
Size 12.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
93d068df2df1088c7ece447302491eec8f0d0a484a67f3b84a00fa1914218317
BLAKE2b-256 checksum
How to use checksums
6093b67a5efdf67e863fcd27715a4111517b835dd2ef99e7cc0a276d057ba09c
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.1

2 release files

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